比较有意思的几个漏洞挖掘记录

科技   2024-11-05 08:31   湖南  
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

来源:奇安信攻防社区,作者:红猪

原文:https://forum.butian.net/share/3692


现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安设为星标”,否则可能看不到了


sql注入

某条数据,点击详情的数据包,单引号报错


再加一个正常

本以为是一次平平无奇的sql注入,没想到绕了一天才绕过去,下面放几张测试失败的截图

首先就是404,不知道规则是啥样的,下面语句应该是没问题的就会404,1=1让语句不通就会500


试了下orcale的注入方法,又爆403,这里'||55||'会返回空数据,'||1/0||'会爆500,这里判断语句能想到的都试了,全403,最奇怪的是只有语句正确才会403,少写一个D就会500,不知道这什么匹配逻辑,不过试了一些插入空白字符啥的也都不行


这里我又跑了一遍字典,全404、500、403,期间尝试结合分块传输、参数污染、垃圾数据、白名单、高并发均未绕过去

最终经过我的不断测试,插入下面payload回显特别慢,最终显示数据量太大,不过in这个关键字我理解的不是很透彻,有懂的师傅可以解答下
'OR+1+in+1+and+'a'+in+'a


当1 in 5 的时候整个结果为false,返回为空


直接注下user的长度
'OR+1+in+length(user)+and+'a'+in+'a

只有相等时会卡死,很明显为7位


直接用instr函数注用户名
'OR+1+in+instr(user,'u')+and+'a'+in+'ainstr函数代表后面那个字符在前面字符串第一次出现的位置例如:instr('user','u')返回1instr('user','us')返回1instr('user','s')返回2

第一位为S


第二位为H,其他同理


任意用户名密码重置

玩的某个游戏,手机号换了,申诉成功给我发了邮件,可以看到id和token


这里直接更换id访问,进行更改密码,显示错误


简单测了测,id随便改,token为空


直接修改密码成功


这里因为不知道目标账号的id,只能随机修改,因为手机号基本就跟id绑定,于是找到了申诉的功能点,这里输入手机号


可以看到返回了id

下一步就是要知道目标的手机号,经过我的不懈寻找,在游戏app的登录界面,有个忘记账号功能


这里游戏uid是公开的,资料就能看到,不过手机号只有前三位和后四位


在官网找回密码处,这里输入手机号抓个包


输入不对的手机号会提示错误,因为我们知道前三位还有后四位,爆破起来还是很快的


最后只得到几个真实存在的手机号,这时候就可以去游戏app登陆界面去对比,手机号正确的话,返回的UID是一样的,这里也可以抓包写个脚本去判断,因为真实存在手机号就几个,我就直接手动尝试的


确定了目标手机号就知道了id,就可以想修改谁的密码就可以修改谁的了


某站测试记录

目标站主域名有两个,a和b代替 ,这里主要目标是a,b应该是以前用的,首先是爆破出来了两个demo站demo.atest.com和demo.btest.com

会提示ip无法访问,访问demo.btest.com


另外一个也一样


这里直接插xff头绕过的
X-Forwarded-For: 127.0.0.1X-Forwarded:127.0.0.1Forwarded-For:127.0.0.1Forwarded:127.0.0.1X-Requested-With:127.0.0.1X-Forwarded-Proto:127.0.0.1X-Forwarded-Host:127.0.0.1X-remote-lP:127.0.0.1X-remote-addr:127.0.0.1True-Client-lP: 127.0.0.1X-Client-lP:127.0.0.1Client-lP: 127.0.0.1X-Real-IP:127.0.0.1Ali-CDN-Real-IP:127.0.0.1Cdn-Src-lp:127.0.0.1Cdn-Real-lp:127.0.0.1CF-Connecting-lP:127.0.0.1X-Cluster-Client-lP:127.0.0.1WL-Proxy-Client-lP:127.0.0.1Proxy-Client-lP:127.0.0.1Fastly-Client-lp: 127.0.0.1True-Client-lp: 127.0.0.1X-Originating-lP:127.0.0.1X-Host: 127.0.0.1X-Custom-lP-Authorization:127.0.0.1

这里是创建订单成功了,返回了一个地址,https://cashier.xxxx.xxxx


访问之后


因为这是订单信息,所以我猜测前面子域名是后台的

构造https://cashier.atest.com 访问之后401,添加xff头直接访问


这里a网站应该也是一样的规则


因为是测试后台,这里直接将test删除,访问https://cashier.a.com 显示无法访问,修改xff头仍然失败


只能从测试站入手了,首先是爆破出来了用户密码,但是却无法登录,不过返回了token,这里前端看到了webpack的接口信息


在JS存在好多接口和接口配置包的构造并且还有API路径


抓个登录接口的包看下格式拼接就好

有的接口有未授权,有的接口需要权限,但是爆破成功的数据包里面是有返回token的,于是带着这个token访问就可以了,但是均为测试站点的数据


于是猜测管理后台地址也是有这些接口的,直接更换请求的host,成功获取到真实数据


关注我们

 还在等什么?赶紧点击下方名片开始学习吧 



知 识 星 球



仅前1-400名: 99¥,400-600名128¥,600-800名: 148¥,800-1000+名168¥所剩不多了...!


推 荐 阅 读





潇湘信安
一个不会编程、挖SRC、代码审计的安全爱好者,主要分享一些安全经验、渗透思路、奇淫技巧与知识总结。
 最新文章