未授权访问漏洞
原理讲解
未授权访问漏洞,是在攻击者不需要输入密码,没有获取到登录权限、没有对应的token、session、cookie 等凭证即可访问敏感内容造成的漏洞
通俗来讲就是不需要任何登陆相关操作 直接点击攻击者构造的链接访问 或者构造数据包调用某接口即可访问敏感数据造成的漏洞 后端鉴权逻辑问题或者根本没有鉴权
案例分析
通用系统未授权访问漏洞
Nacos (8848端口)未授权访问
Active MQ 未授权访问
Atlassian Crowd 未授权访问
CouchDB 未授权访问
Docker 未授权访问
Dubbo 未授权访问
Druid 未授权访问
Elasticsearch 未授权访问
FTP 未授权访问
Hadoop 未授权访问
JBoss 未授权访问
Jenkins 未授权访问
Jupyter Notebook 未授权访问
Kibana 未授权访问
Kubernetes Api Server 未授权访问
LDAP 未授权访问
MongoDB 未授权访问
Memcached 未授权访问
NFS 未授权访问
Rsync 未授权访问
Redis 未授权访问
RabbitMQ 未授权访问
Solr 未授权访问
Spring Boot 未授权访问
Spark 未授权访问
VNC 未授权访问
Weblogic 未授权访问
ZooKeeper 未授权访问
Zabbix 未授权访问
实战案例
挖掘技巧
未登录:rad、jjjjjjjjjs、js审计、findsomething、接口文档(swagger.html)、目录扫描、fuzz获取接口、 构造数据包、
已登陆:直接利用工具进行被动测试 直接删除cookie凭证不行怎么办?-->绕过 例如token=NULL.....
推荐工具
GitHub - ttstormxx/jjjjjjjjjjjjjs: 爬网站JS文件,自动fuzz api接口,指定api接口(针对前后端分离项目,可指定后端接口地址),回显api响应
GitHub - momosecurity/FindSomething: 基于chrome、firefox插件的被动式信息泄漏检测工具
burp被动测试未授权:GitHub - smxiazi/xia_Yue: burp 插件 xia_Yue(瞎越) 主要用于测试越权、未授权
burp被动发现并测试接口文档:GitHub - API-Security/APIKit: APIKit:Discovery, Scan and Audit APIs Toolkit All In One.
swagger接口文档泄露:GitHub - jayus0821/swagger-hack: 自动化爬取并自动测试所有swagger接口
逻辑漏洞
原理讲解
逻辑漏洞是指攻击者利用业务/功能上的设计缺陷,获取敏感信息或破坏业务的完整性
通俗来讲就是 后端设计的某个功能的代码逻辑有缺陷,攻击者可以利用逻辑的缺陷损害厂商的利益或者他人的利益
案例分析
水平越权
将类似id,phone,username修改为其他平级用户的,让后端认为是在对其他用户进行操作
垂直越权
将以上类似参数(还有role)修改为管理员的 role=1 id=0或1 username=admin
越权推荐工具
GitHub - smxiazi/xia_Yue: burp 插件 xia_Yue(瞎越) 主要用于测试越权、未授权
短信轰炸&邮箱轰炸
有的人认为这可能不是漏洞,但是他是,因为发一次短信厂商是会扣钱的,对收到短信的人也是一种骚扰
凭证可爆破导致账号接口
登陆凭证固定或可伪造
逾期申请
若超过期限后不能申请,那么可以在数据包中修改时间为期限之前的时间,即可申请
登陆凭证泄露
前端验证登陆绕过
将false改为true fail改为success 0改为1
人脸识别绑定XX卡绕过
密码重置连接可伪造
在点击链接进行重置密码的时候,该链接可以伪造,导致任意用户密码重置
链接为http://aaa.com/mimachongzhi/aWQ9MQ==
aWQ9MQ==base64解码为id=1 替换id即可重置他人密码
修改密码验证绕过
修改密码的时候,发送验证码之前将手机号该为自己的手机号,将自己手机收到的验证码填上成功修改密码
修改密码的时候,参数step,表示步骤1,2,3直接将step改为3跳过中间的验证步骤直接修改密码
验证码复用
支付漏洞——四舍五入
后端限制金额位数为小数点2位 充值0.009会四舍五入为0.01,白嫖0.001
签约逻辑漏洞
1.每次下单的时候会有一个订单路径,记住这个订单路径例如为http://xxx.com/dingdan/...
比如第一次是用支付宝支付的,后面再换微信支付那么后端就会认为对比认为这次微信支付是首月,因为跟支付宝不一样嘛。后面再切换支付宝支付。
并发逻辑漏洞——逻辑漏洞之王
并发是指一个处理器同时处理多个任务 没有合理对共享资源进行互斥访问 利用条件竞争造成的漏洞
万物皆可并发:优惠卷领取(每人限领1份)、购买商品(金额有限)、首次优惠、钱包提现
工具推荐:GitHub - PortSwigger/turbo-intruder: Turbo Intruder is a Burp Suite extension for sending large numbers of HTTP requests and analyzing the results.
也可以是burp自带的 intruder模块
任意文件创建 可以创建任意后缀的文件但是在代码中文件内容被设定好了的是固定的 不能作为恶意文件 无法直接getshell
目录穿越即上传的文件可以到任意的目录位置包括网站的根目录,这样就可以直接访问得到了。如果没有目录穿越,文件上传到了别的目录可能没有权限访问或者被路由拦截
public function save(SystemCrudDataService $service, $id = 0)
{
$data = $this->request->postMore([
['pid', 0],//上级菜单id
['menuName', ''],//菜单名
['fileName', ''],//文件名 可以是任意扩展名包括php
['modelName', ''],//模块名称
['tableComment', ''],//表备注
['tableField', []],//表字段
['tableIndex', []],//索引
['filePath', []],//生成文件位置 可以目录穿越 ../../../ 到达根目录
['isTable', 0],//是否生成表
['deleteField', []],//删除的表字段
]);
.......................
$this->services->createCrud($id, $data); //创建文件
.......................
}
public function savefile(Request $request, SystemFileServices $service, $id)
{
$comment = $request->param('comment'); //获取要写入的内容
$filepath = $request->param('filepath'); //获取文件路径 也可以进行目录穿越
...............
$res = $service->savefile($filepath, $comment); //将内容写入固定文件中
...............
}