某大学新版学工系统SQL注入与WAF绕过
本文最后更新于:2022年4月13日 下午
声明:本文所做所有操作已得到学校官方授权,漏洞已经报送并确认修复,认出来的同学请勿将本文用于非法用途
在挖掘校内SRC时发现核心系统之一学工系统存在SQL注入,遂有此文
前期的信息收集
①大学的学生工作管理系统,在校期间几乎所有学生的业务办理都会经过这个系统。是非常敏感的业务点
②系统对外网开放,需要经过学校的cas系统进行认证才能进入(但对于校内学生来说问题不大)
③该系统上了某知名安全的商业waf,在之后的渗透中很大一部分时间是在尝试着对waf进行绕过
肾透
网站打开是这样的:
一般来说这种系统涉及到的信息比较多而敏感,交互也比较复杂,很容易出现水平越权,信息泄露之类的问题。之前也挖到过,但不是本文的重点。
为了测试效率我们使用xray配合rad对网站整体进行一些扫描
扫描完毕查看报告,可以看到几个疑似SQL注入的漏洞,但是否是假阳性需要手工进行进一步的确认。
通过报错及xray提供的信息我们知道该系统使用的是Oracle数据库,且出现的可能是报错注入
这个时候自然想的是SQLMAP等自动化的脚本来帮我们取数据了,但由于有waf的存在我们需要先找到绕过waf的方式
尝试失败的截图我就不放出来了,最后我找的成功的方式是使用增加垃圾数据包的方法让waf直接放行从而绕过。
参考的主要是这个师傅的文章
https://xz.aliyun.com/t/7578?page=34
按照师傅的方法,我们需要生成一些垃圾数据,这里直接照搬脚本:
1 |
|
生成效果如下:
填充垃圾数据前后响应对比:
waf绕过之后我们就能进行利用了,将抓到的包放进sqlmap中跑即可,记得用*号设置注入点。
SQLMAP能成功探测出一样的注入
但在利用时除了些许的问题,SQLMAP取不回数据:
开启 -v 并将等级调到最高,看返回的结果。最终发现网站会自动对传入的括号用单引号括起来:
这样其实相当于逗号不能用了。不过问题不大,通过一些等价的表述我们依旧能够拿到数据,而且对于SRC的挖掘而言我们的目的已经达到了。
我们可以看一哈系统中有哪些表,简单验证一下这个漏洞:
以及最后的一个为了自动化拿数据写的脚本(敏感信息就不放源码了):
总结
①存储大量信息且频繁和用户进行交互的系统是非常容易出问题的点,是SRC挖掘需要重点关注的对象
②Bypass waf是非常考验技术和耐心的一个点,这次是运气好成功绕过,以后还要加深学习
③即使绕过了waf由于网站本身的复杂性,自动化的工具可能需要自行改造或者重新编写,一个好的编程能力对于一个白帽子来说是不可或缺的。