某大学新版学工系统SQL注入与WAF绕过

本文揭秘了一次在校内SRC活动中发现的学工系统SQL注入漏洞,涉及敏感信息处理和Bypass WAF技巧。作者详细描述了漏洞发现过程、利用自动化工具如Xray和SQLMAP,以及绕过安全防护的方法,强调了系统安全和编程技能在此类挑战中的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

声明:本文所做所有操作已得到学校官方授权,漏洞已经报送并确认修复,认出来的同学请勿将本文用于非法用途


在挖掘校内SRC时发现核心系统之一学工系统存在SQL注入,遂有此文


前期的信息收集:

①**大学的学生工作管理系统,在校期间几乎所有学生的业务办理都会经过这个系统。是非常敏感的业务点

②系统对外网开放,需要经过学校的cas系统进行认证才能进入(但对于校内学生来说问题不大)

③该系统上了某知名安全的商业waf,在之后的渗透中很大一部分时间是在尝试着对waf进行绕过




网站打开是这样的:

在这里插入图片描述

一般来说这种系统涉及到的信息比较多而敏感,交互也比较复杂,很容易出现水平越权,信息泄露之类的问题。之前也挖到过,但不是本文的重点。

为了测试效率我们使用xray配合rad对网站整体进行一些扫描

在这里插入图片描述

扫描完毕查看报告,可以看到几个疑似SQL注入的漏洞,但是否是假阳性需要手工进行进一步的确认。

在这里插入图片描述

通过报错及xray提供的信息我们知道该系统使用的是Oracle数据库,且出现的可能是报错注入

在这里插入图片描述

这个时候自然想的是SQLMAP等自动化的脚本来帮我们取数据了,但由于有waf的存在我们需要先找到绕过waf的方式

尝试失败的截图我就不放出来了,最后我找的成功的方式是使用增加垃圾数据包的方法让waf直接放行从而绕过。



参考的主要是这个师傅的文章

https://xz.aliyun.com/t/7578?page=34



按照师傅的方法,我们需要生成一些垃圾数据,这里直接照搬脚本:

import random

ls = [chr(i) for i in range(33,125)]
ls.remove("#") # 防止url被注释
ls.remove("*") # 方便使用sqlmap报数据
s = ""
for i in range(10000):
    s = s+random.choice(ls)
print(s)



生成效果如下:


在这里插入图片描述

填充垃圾数据前后响应对比:

在这里插入图片描述

在这里插入图片描述

waf绕过之后我们就能进行利用了,将抓到的包放进sqlmap中跑即可,记得用*号设置注入点。


SQLMAP能成功探测出一样的注入

在这里插入图片描述

但在利用时除了些许的问题,SQLMAP取不回数据:

在这里插入图片描述

开启 -v 并将等级调到最高,看返回的结果。最终发现网站会自动对传入的括号用单引号括起来:

在这里插入图片描述



在这里插入图片描述

这样其实相当于逗号不能用了。不过问题不大,通过一些等价的表述我们依旧能够拿到数据,而且对于SRC的挖掘而言我们的目的已经达到了。

我们可以看一哈系统中有哪些表,简单验证一下这个漏洞:

在这里插入图片描述

以及最后的一个为了自动化拿数据写的脚本(敏感信息就不放源码了):

在这里插入图片描述
在这里插入图片描述

总结:



①存储大量信息且频繁和用户进行交互的系统是非常容易出问题的点,是SRC挖掘需要重点关注的对象

②Bypass waf是非常考验技术和耐心的一个点,这次是运气好成功绕过,以后还要加深学习

③即使绕过了waf由于网站本身的复杂性,自动化的工具可能需要自行改造或者重新编写,一个好的编程能力对于一个白帽子来说是不可或缺的。





以上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

h1nt

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值