挖洞日记 | 记一次MSSQL注入绕waf过程

admin 2025年5月8日16:07:28评论4 views字数 1179阅读3分55秒阅读模式
本文由掌控安全学院 -  郑居中 投稿

Track安全社区投稿~  

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

在挖漏洞时,使用 xia sql 插件发现一个注入点,经过测试发现存在 waf 拦截记录一下。

在查询中发现单引号是空白页面,在加一个单引号,显示空数据,但是有回显,初步判断 pname 存在 SQL注入。

挖洞日记 | 记一次MSSQL注入绕waf过程
挖洞日记 | 记一次MSSQL注入绕waf过程
然后判断列数1'order by 9--无回显,1'order by 8--有回显,所以为 8 列。

挖洞日记 | 记一次MSSQL注入绕waf过程
挖洞日记 | 记一次MSSQL注入绕waf过程

像这种有回显、无回显,只能选择盲注,第一反应是时间盲注,那就要看是什么数据库,根据 asp 我们选择 mysql、sqlserver 数据库,不同的数据库,延时语句不一样。

mysql:sleep()

sql server:waitfor delay 0:0:8

挖洞日记 | 记一次MSSQL注入绕waf过程

但是输入 1'if(length(database())=6,sleep(3),0)-- 报错回显 502,说明存在 waf 拦截,经过测试 waf 拦截了 sleep()这个函数,那就避开 sleep()函数,先测试其他函数benchmark(),也被拦截。

挖洞日记 | 记一次MSSQL注入绕waf过程
挖洞日记 | 记一次MSSQL注入绕waf过程

在使用 length()判断数据库名称的长度时,没有 502,返回空白页面,说明 WAF 没有拦截,但是语法错误,怎么会错呢?

挖洞日记 | 记一次MSSQL注入绕waf过程

想了半天,应该时 SQL server 数据库,不支持 length()、database()函数,使用 len()、db_name()函数测试。

len()函数计算正确和错误,回显数据不一致,说明猜测正确,数据库类型为 SQL server。

挖洞日记 | 记一次MSSQL注入绕waf过程
挖洞日记 | 记一次MSSQL注入绕waf过程

那就先测出 db_name()数据库名称的长度。爆破出数据库名称长度为 15 位。

挖洞日记 | 记一次MSSQL注入绕waf过程
挖洞日记 | 记一次MSSQL注入绕waf过程

使用 sql server 数据库中的waitfor delay '0:0:8',发现还是被拦截,想到 db_name()和 len()没有被拦截,那就使用 substring()、ascii()函数一个一个计算数据库的字符。

挖洞日记 | 记一次MSSQL注入绕waf过程

?pName=1%27%20or%20ascii(substring(db_name(),1,1))>100--,使用二分法判断

挖洞日记 | 记一次MSSQL注入绕waf过程
挖洞日记 | 记一次MSSQL注入绕waf过程

?pName=1'or ascii(substring(db_name(),1,1))=104--,最后判断出 db_name 第一个字符为 104-----h

挖洞日记 | 记一次MSSQL注入绕waf过程

一个一个测是不可能的,直接写一个简单脚本跑一下。直接拿到数据库名称。

挖洞日记 | 记一次MSSQL注入绕waf过程

数据库得到了,接下来就按部就班的测试表的名称,计算第一个表的长度。

1'or%20len((select%20top%201%20name%20from%20sys.tables))%3D10--

第一个表的长度是 18,接下来就按部就班的使用脚本跑就可以。

挖洞日记 | 记一次MSSQL注入绕waf过程
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

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

挖洞日记 | 记一次MSSQL注入绕waf过程

 

原文始发于微信公众号(掌控安全EDU):挖洞日记 | 记一次MSSQL注入绕waf过程

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月8日16:07:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   挖洞日记 | 记一次MSSQL注入绕waf过程https://cn-sec.com/archives/4042266.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息