逻辑漏洞验证码识别
越权/未授权
1、水平越权:同级别的用户之间权限的跨越
2、垂直越权:低级别用户到高级别用户权限的跨越
3、未授权访问:通过无级别用户能访问到需验证应用
靶场cms:metinfo4.0
下载:https://www.metinfo.cn/upload/file/update/MetInfo4.0.zip
xia_Yue
检测插件推荐:
https://github.com/smxiazi/xia_Yue
https://github.com/VVeakee/auth-analyer-plus
两个插件都差不多,就只演示一个
安装好后导入burp
先添加两个普通会员
先用另一个浏览器登录普通用户huiyuan1,获取cookie
将此cookie添加到插件的低权限认证这里(若有token字段或其他的字段也添加上去)
用抓包的浏览器登录管理员利用插件测试垂直越权和未授权
来到修改自己信息的页面
输入好后提交,插件会自动帮我们测试越权和未授权
第一个包就是刚刚修改个人信息的数据包
可以看见地权限和未授权那里打了勾勾,证明返回数据包长度和原来一样,存在未授权和垂直越权
上图是低权限数据包,可以看见cookie被改为了我的普通会员huiyuan1的cookie,看返回包和源数据包一样,那么确实存在越权和未授权
支付逻辑漏洞
挖掘
找到关键的数据包:可能一个支付操作有三四个数据包,我们要对数据包进行挑选。
分析数据包:支付数据包中会包含很多的敏感信息(账号,金额,余额,优惠等)
要尝试对数据包中的各个参数进行分析。
不按套路出牌:多去想想开发者没有想到的地方,如算法拼接,关闭开启返优惠券等
PC端尝试过,APP端也看看,小程序也试试
数据篡改
cms靶场下载地址:https://www.damicms.com/downes/dami.zip
搭建好后,选择产品,点击立即购买,开启抓包
猜测参数qty是数量、price是价格
修改一下数量
产品替换
产品替换意思就是在提交订单的时候替换产品属性,导致低价买高价物品
例如这里大米手机cms 5400 大米测试产品 6000
大米手机cms 的数据包参数
m=Member&a=gobuy&iscart=0&id=70&name=%E5%A4%A7%E7%B1%B3%E6%89%8B%E6%9C%BACMS&qty=1&price=5400>ype=%E7%81%B0%E8%89%B2&pic=/dami/Public/Uploads/thumb/thumb_1393218295.jpg
大米测试产品 数据包参数
m=Member&a=gobuy&iscart=0&id=127&name=%E5%A4%A7%E7%B1%B3%E6%B5%8B%E8%AF%95%E4%BA%A7%E5%93%81&qty=1&price=6000>ype=%E7%81%B0%E8%89%B2&pic=/dami/Public/Uploads/thumb/thumb_1393218295.jpg
发现了id不一样,猜测id就是产品属性
将大米手机cms的id替换上去
可以发现,大米测试产品变为5400元了
优惠卷复用、盗用
可以猜测这个use_coupon的值就是代表优惠卷id
数值溢出
将数值加上运算符号,使得达到意想不到的效果
下图是将积分变化为金额的位置
如果在兑换余额上把兑换积分数改为-1
会怎么样
可以看见,积分居然增长了
四舍五入
我们以充值为例,余额值一般保存到分为止,那么如果我充值0.001元也就是1厘,一般开发会在前端判断我们的数字,或者将最后一位四舍五入,使用支付宝或者微信充值是直接报错的,因为第三方一般只支持到分(0.01)。
那我们如果充值0.019呢,由于支付宝或微信只判断到分,所以导致只能支付0.01,而由于我们支付成功,前端会将9四舍五入,直接变成0.02,所以等于直接半价充值。
循环利用优惠卷
合同签约漏洞
验证码逻辑漏洞
响应包返回短信验证码
响应包中带了短信验证码
验证码爆破
找回密码时使用位数较少的短信验证码,或者验证码没有设置有效时间限制,导致攻击者借助自动化工具在一定时间范围内爆破获得短信验证码,从而导致重置任意账号密码。
如下是忘记密码功能点,首先输入图片验证码和手机号获取手机验证码
对短信验证码进行爆破
爆破成功
就是因为这里对验证码没有时间限制,所以造成漏洞
重定向用户
我们输入正确的手机号和正确的短信验证码,然后进入重置密码的最后一步,也就是输入新的密码,输入密码后提交到服务端的post数据包需要包含当前用户的身份信息。而一般网站是通过用户名或用户ID来标识用户身份的,那么我们就可以通过修改用户名、ID去修改其他用户的密码了。
输入自己的邮箱获取验证码后 抓包点击下一步
在这里修改就成功了
修改响应包
如果是前端(客户端)根据服务端返回的数据判断是否验证成功,那么可以更改响应包绕过
将返回包替换为成功的返回包数据
验证成功
验证码识别
白嫖:https://github.com/smxiazi/NEW_xp_CAPTCHA
收费:https://github.com/smxiazi/xp_CAPTCHA
下载jar插件和python文件
下载好后,首先下载或者更新ddddocr库
先启动python文件
测试
https://xdzx.xueda.com/login?type=user
如上图,想要获取手机验证码就得先输入图片验证码
发送成功的响应包如上所示
通过html定位到图片验证码url
接下来配置插件
将code参数更改为@xiapao@1@ ,线程设置为1,测试
连续很多都是9999,证明成功了,实现短信轰炸