我是一名前端工程师,想要转行渗透测试,以写日记的形式记录每天学习结果,逐步完善渗透测试整个体系。
昨天学习了一种新的漏洞方式叫做逻辑漏洞,描述就是由于后端开发人员逻辑不严谨,或未做校验等造成的系统漏洞。之前的记录的支付漏洞我觉得也算是逻辑漏洞。
社区里看到一篇帖子 https://bbs.zkaq.cn/t/31333.html ,大致内容为在前面的信息收集步骤已经拿到了用人单位的登录名称和用人单位的手机号,在重置密码页面测试能否修改用人单位的密码。正常情况下,需要输入用人单位手机接收的验证码才能修改用人单位的密码,文章作者输入用户单位手机号后,用抓包工具拦截,本来手机号是 130xxxxxxxx
,再后面加上自己手机号变成 130xxxxxxxx,180xxxxxxxx
,完事了发现自己手机也会收到短信验证码,输入自己手机收到的验证码最后也能修改用人单位的密码。
我分析了一下原因,这个接口应该是支持同时给多个手机号发送验证码的,后端在接收手机号的参数时会以逗号进行分割得到一个手机号数组,完事了给数组每一项都发一条验证码。如果后端是这个逻辑,为啥文章作者不直接传参自己的手机号180xxxxxxxx
,还要带上用人单位的手机号130xxxxxxxx,180xxxxxxxx
干嘛?我没法复现作者的测试环境,只能继续猜测可能后端会对用人单位以及用人单位的手机号有校验,所以传参也必须带上用人单位的手机号。
说起逻辑漏洞,我想起之前在线下工作时开发一个商城app,当时也有一个修改密码功能,我把手机号参数传给后端,后端接口直接把短信验证码作为接口响应返回给前端了。这也是一个逻辑漏洞,试想如果我知道我朋友A也用这个商城,我直接输入他的手机号,接口返回里直接就有短信验证码,我输入验证码就直接把别人的密码给改了。
更新体系树
|-- 信息收集
|-- 目录扫描
|-- dirsearch
|-- 指纹识别
|-- whatruns, wappalyzer
|-- 谷歌搜索
|-- inurl, intext, filetype
|-- 越权漏洞
|-- 收获地址, 优惠券, 个人信息等
|-- 支付漏洞
|-- 支付时抓包修改价格再发请求
|-- 逻辑漏洞
|-- 重置密码发短信直接抓包把号码改成自己的
|-- 重置密码发短信后端可能会接收多个手机号
|-- 短信验证码会在接口响应里直接返回验证码
标签:手机号,漏洞,渗透,之路,验证码,用人单位,--,密码
From: https://www.cnblogs.com/dkvirus/p/17874312.html