原文来自SecIN社区—作者:WiHat
最近在总结逻辑漏洞相关的材料,翻到自己的一些渗透测试报告,便从中摘取一些有意思的逻辑漏洞挖掘实战案例拿出来分享一下!很多大表哥已经写过关于逻辑漏洞的详细介绍,短信轰炸、任意密码重置到“0元”购买商品等等都是典型的案例,大表哥们的姿势也都很丰富,我就不班门弄斧了。下文只是将实战过程中遇到的一些比较有意思的案例记录下来,和大表哥们一起分享,请表哥们轻喷。
1.绕过XX平台邀请码注册机制
国内某手机厂商的开发者社区存在邀请码注册机制,需要有邀请码后方可完善资料,但无奈本社畜没有,也不能问人要,问了人家也不会给我。
点击“完善信息”,抓数据包,在提示框中输入“邀请码”——我随意填写了000000,接着点击“提交”,此时抓取该数据包并放行,然后修改响应数据包中的数据,将{“code”:0,“data”:false}改为{“code”:0,“data”:true},放行后,发现浏览器已经可以到注册页面进行身份信息的注册了,如下图所示:
2.某商城0元购买商品
某商城结算时,抓取数据包,修改总金额、商品数量等均无法绕过限制,实现0元购买。接着,修改了快递方式,选择到付时需要支付一定的费用(类似于快递费等),此时提交订单,抓取数据包,将该费用修改为负数,服务器响应交易成功,且无需支付任何费用:
3.某平台“修改”任意帖子
参加某企的众测项目,遇到一个很奇怪的逻辑漏洞(越权)。该站点有发帖功能,测试时注册了两个账号,首先,A账号登录后,修改自己发的帖子,点击修改,抓取数据包,将keyID改为账号B的某个帖子的keyID,放行后,帖子就变了账号B的了。那如何让别人的帖子变成我们的呐?那就涉及下面的这个漏洞了!
这个漏洞,发现的也是很偶然。关于上一段的漏洞,经过一阵子的头脑风暴,想不出很好的办法。看到有个“悬赏”的功能,使用账号A修改一个帖子,点击“是否悬赏”,然后抓包,修改keyID,将其改为账号B的某个帖子的的keyID,放行;然后,正确修改帖子的信息后,点击“修改”,完成后,账号B的这个帖子就变成了A账号的了。
4.某考试平台导出任意成绩单
某平台的考试管理中,可以导出该账号的考试成绩单。接着,发现修改考试项目的ID,即URL中的http://xxxx.com/cand/export_mark/100222/10000726中100222,修改为其他用户的ID,测试时使用了100202,发现可以查看,但由于有些场次不属于该ID的,故而去爆破了最后一个ID,即上述URL中的10000726,得到了如下的结果:
整个过程中,先利用链接http://xxxx.com/cand/export_mark/100222/10000443爆破第一个参数(即此处的100202)得到存在的考试项目;接着,利用这个项目的ID组成新的URL,如http://xxxx.com/cand/export_mark/100202/10000443,再对最后的考试场次(即此处的10000443)进行爆破,获得属于100202项目的场次,这样,即可获得所有的考试的考试成绩、名单和照片等敏感信息。
5.复杂的“用户标识”与狗屎运
这个漏洞相对上述4个而言,运气成分占了大部分。在某个挂号系统众测中,查看测试账号的“我的问诊”,发现数据包的body中包含一个mainid参数,经过测试发现该请求将根据mainid值返回当前用户的问诊记录信息。但这个值是随机生成的,没有规律,则无法通过遍历获取其他账户的问诊记录。
在浏览某个医生的主页时,页面下方有评论以及患者咨询记录。而在BurpSuite中,发现响应中包含了医生和患者的个人敏感信息,其中就包括这个mainid值:
将这些mainid替换到“我的问诊”数据包中,获取到了这些患者的就诊记录。另外,发现问诊记录中与医生的聊天记录亦可通过修改该id查看任意用户的聊天记录:
如果表述有不正确的地方,请表哥们斧正。谢谢!
来源:freebuf.com 2020-11-24 15:57:08 by: SecIN技术社区
请登录后发表评论
注册