逻辑漏洞+未授权访问漏洞讲解 (教案)

未授权访问漏洞

原理讲解

未授权访问漏洞,是在攻击者不需要输入密码没有获取到登录权限、没有对应的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 - chaitin/rad

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(瞎越) 主要用于测试越权、未授权

短信轰炸&邮箱轰炸

有的人认为这可能不是漏洞,但是他是,因为发一次短信厂商是会扣钱的,对收到短信的人也是一种骚扰

公益src不收 企业src部分收

凭证可爆破导致账号接口

手机验证码可爆破

密码可爆破-->造成弱口令

但是如果密码不可爆破?

登陆凭证固定或可伪造

nacos 固定key

逾期申请

若超过期限后不能申请,那么可以在数据包中修改时间为期限之前的时间,即可申请

登陆凭证泄露

短信验证时返回验证码

或者其他相关登陆凭证

前端验证登陆绕过

例如修改返回包

将false改为true fail改为success 0改为1

人脸识别绑定XX卡绕过

将返回包false改为true.....

密码重置连接可伪造

在点击链接进行重置密码的时候,该链接可以伪造,导致任意用户密码重置

链接为http://aaa.com/mimachongzhi/aWQ9MQ==

aWQ9MQ==base64解码为id=1 替换id即可重置他人密码

修改密码验证绕过

修改密码的时候,发送验证码之前将手机号该为自己的手机号,将自己手机收到的验证码填上成功修改密码

修改密码的时候,参数step,表示步骤1,2,3直接将step改为3跳过中间的验证步骤直接修改密码

验证码复用

不同手机号收到的验证码可以重复使用

同一手机号收到的两次或多次验证码可以重复使用(低危)

支付漏洞——四舍五入

后端限制金额位数为小数点2位 充值0.009会四舍五入为0.01,白嫖0.001

签约逻辑漏洞

首月1元次月20元

1.每次下单的时候会有一个订单路径,记住这个订单路径例如为http://xxx.com/dingdan/...

1元支付之后,再点击这个连接又可以1元支付了

2.后端验证是否是首月充值出现了逻辑漏洞

比如第一次是用支付宝支付的,后面再换微信支付那么后端就会认为对比认为这次微信支付是首月,因为跟支付宝不一样嘛。后面再切换支付宝支付。

并发逻辑漏洞——逻辑漏洞之王

并发是指一个处理器同时处理多个任务 没有合理对共享资源进行互斥访问 利用条件竞争造成的漏洞

万物皆可并发:优惠卷领取(每人限领1份)、购买商品(金额有限)、首次优惠、钱包提现

并发造成sql语句报错(可交SRC)

工具推荐: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

任意文件创建+目录穿越+任意文件写入=getshell

任意文件创建 可以创建任意后缀的文件但是在代码中文件内容被设定好了的是固定的 不能作为恶意文件 无法直接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); //将内容写入固定文件中
...............

    }

思考:任意文件创建+目录穿越=?

Tips

一个有某个漏洞那么整个站可能有多个接口存在该漏洞

对功能点、数据包参数分析透彻 才能挖到别人挖不倒的逻辑漏洞

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值