0x00 前言
最近几个月做了比较多的渗透测试,在渗透测试的过程当中,往往碰到一些没有常见及常规的漏洞,这时候,老师傅告诉我要去看一下逻辑漏洞,为了便于后续测试的时候不会丢掉漏掉,就把一些常见的逻辑漏洞列出来了。
0x01 逻辑漏洞概述
逻辑漏洞是指由于程序逻辑不严或逻辑太复杂,导致一些逻辑分支不能够正常处理或处理错误,一般出现在任意密码修改(没有旧密码验证)、越权访问、密码找回、交易支付金额等。
0x02 常见的逻辑漏洞
1. 注册:
短信轰炸/验证码安全问题/密码爆破/邮箱轰炸
用户任意注册/批量注册
枚举用户名
XSS (在这里的话其实就是说遇到框你就插xss即可)
2.登录:
短信轰炸/验证码安全问题/密码爆破/邮箱轰炸
SQL注入
撞库
抓包把password字段修改成空值发送
认证凭证替换/比如返回的数据包中包含账号,修改账号就能登陆其他账号
Cookie仿冒
修改返回包的相关数据,可能会登陆到其他的用户
3.找回密码:
短信邮箱轰炸/短信邮箱劫持
重置任意用户密码/验证码手机用户未统一验证
直接跳过验证步骤
4.购买支付/充值(主要还是利用抓包需要仔细的去看每一个可用参数):
交易金额/数量修改,替换支付模块 (这里也就是更换了支付的模块金额**)**
交易信息订单编码/导致信息泄露
整数溢出,int最大值为2147483647,超过最大值
修改充值账户
支付绕过
5.抽奖活动:
刷奖品/积分
并发(同时执行,看是否会多次减少次数)
6.优惠券/代金券:
并发逻辑漏洞(burp或者fd批量获取优惠劵等)
修改优惠券金额/数量
7.订单信息:
订单信息遍历/泄露
订单信息泄露导致用户信息泄露
删除他人订单
8.会员系统:
修改个人信息上传文件,上传带弹窗的html
如遇上上传xlsx/docx,可能存在xxe,上传恶意的文档盲测
图片上传也可能遇到imagereagick命令执行,上传恶意图片
视频上传如果使用ffmpeg<3.2.4(视频按帧分割成图片),上传恶意avi盲测ssrf
用户横向越权访问/遍历/导致用户信息泄露
SQL注入/个人简介处存储XSS 个人信息注册的名称也可以插入xss
9.传输过程:
明文传输账号密码
修改信息处无session/token导致csrf
POST/COOKIE注入
10.评论:
POST注入/存储XSS
无session/token导致CSRF
0x03 常见的漏洞位置
1.验证码问题:
万能验证码
返回包中存在验证码
删除验证码或者cookie中的值可以爆破账号密码
2.短信轰炸:
一直重放
删除修改cookie,重放数据包
遍历参数发送数据包
手机号后面加空格或者前面加其他的比如+86或者逗号分号等,然后重发数据包
请求参数修改大小写,或者添加请求参数比如&id=1
一个站的登陆处可能做了防护,但是再找回密码处可能没有安全防护,或者在注册流程中没有安全防护,所以说多测试接口
如果对手机号一天次数进行了限制的话,还可以在进行发送一次短信,DO intercept之后修改为成功回显
3.水平越权:
主要登陆后还是修改参数,主要找到多个接口不断测试
关注网页源代码,有时候会有表单,但是被bidden(隐藏标签)给隐藏起来了,可以修改返回包然后尝试获取数据检测
多个账号,主要分析请求参数
4.数据泄露:
在找回密码处,填写数据后抓包查看返回信息,有可能存在敏感数据返回
5.任意用户密码重置:
目前大部分都是在修改密码处参数修改
有些是前端验证
0x04 支付逻辑漏洞
(该部分参考Freebuf文章,作者名字:听闻他叫无剧)
1.边界值问题 : 正常的逻辑是用户购买商品,然后价格累加得到一个总价进行扣款。这个时候就会产生逻辑问题:如果说用户购买的商品是负数了,那么计算的总数就是负数。反过来钱给用户
2.顺序执行缺陷:正常的逻辑是a-b-c-d 循环渐进的进行流程操作。这个时候就会产生逻辑问题:可以直接从中绕过某一个过程进入到下一步操作。如果说有一项是支付的操作,那么也就会产生支付绕过,如果说有一项是验证机制,就会绕过验证直接进入下一步。
3.金额直接传输导致篡改:直接对下单的金额进行修改值,这里可以使用fd或者burp抓包
4.确定支付之后还可以加入购物车:把商品放入购物车点击下单支付,会跳转到微信,支付宝等第三方支付平台。这个时候还可以继续在购物车中加入商品,支付结束之后,商家发放的商品是现在的购物车里面的东西。
5.请求重放:购买成功之后,继续重放请求,可以让购买的商品一直增加。购买成功之后,会有一个银行对商户网站跳转的过程,如果反复进行操作,有几率会导致商品反复购买和增加,但是不需要付更多的钱。
6.请求参数干扰:金钱做了签名认证之后,修改后不通过,但是在里面仍然会有一个参数对金额产生影响导致问题产生。
7.订单替换:订单替换发生在支付之后的事件处理,同时向服务器发起二次支付请求一个多一个少,支付金额少的,然后支付之后进行替换,告知服务器订单支付完成,并且过程可以反复的回放。
8.欺诈:需要两个收款人,一个是正常的商家,一个是伪造的商家
9.单位替换:产生在paypal类似的国际支付的场景。
10.用户替换:在支付过程中发生用户替换现象,首先登陆自己的账户,然后取得另外一个人的账户名等有效信息,在业务流程中用对方的用户名替换自己的用户名,用对方的余额购买完成后,再替换自己的账户名,这样就形成别人的钱买自己的东西
11.强制攻击:强制攻击发生在暴力破解的情况下,如果一个商家运用一个自己的网店,接入第三方支付接口,由于设计上的不当导致商家与第三方支付约定的密钥Key可以单独被MD5加密,导致可以使用MD5碰撞技术对密钥进行破解,攻击者可以设计简单的密钥加密信息使得MD5加密是可以用MD5碰撞技术进行暴力破解。
12.秘钥泄漏:内置支付功能的app为了设计上的方便有可能会把Md5或者是RSA的私钥泄漏导致攻击者反编译apk之后获取密钥信息使得交易信息可以被篡改。
13.函数修改:apk反编译之后的函数修改,可能导致商家在最后一步向支付方提交订单时未验证信息的准确性,仍然被篡改。
14.heart bleed:SSL(安全套接层)协议是使用最为普遍网站加密技术,而OpenSSL则是开源的 SSL 套件,为全球成千上万的web服务器所使用。Web服务器正是通过它来将密钥发送给访客然后在双方的连接之间对信息进行加密。URL中使用 https打头的连接都采用了SSL加密技术。在线购物、网银等活动均采用SSL技术来防止窃密及避免中间人攻击。
大佬文章推荐,有许多场景模拟(但是需要有isecquan圈子账号):
https://mingxin.live/article/%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E%E6%80%BB%E7%BB%93/
来源 Qc !
最后
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。
无害实验室拥有对此文章的修改和解释权如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的
本文始发于微信公众号(无害实验室sec):src 逻辑漏洞挖掘checklist
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论