绕过W*S-WAF的MSSQL注入

admin 2023年6月2日08:43:57评论40 views字数 1572阅读5分14秒阅读模式

由于微信公众号推送机制改变了,快来星标不再迷路,谢谢大家!

绕过W*S-WAF的MSSQL注入

绕过W*S-WAF的MSSQL注入
绕过W*S-WAF的MSSQL注入
绕过W*S-WAF的MSSQL注入
目录
○ 第一个网站
◇ 确定列数与显示位

◇ 查库名
◇ 查表名
◇ 查列名
◇ information_schema
◇ 查数据
◇ 另一个payload,用%0a代替空格绕过w*s waf
◇ 登录后台
○ 第二个网站
◇ 确认列数
◇ 查表名
◇ 查列名
◇ 查数据
◇ 另一个payload,用%0a代替空格绕过w*s waf
◇ 登录后台
○ 声明

第一个网站
NO.1
前几天参加了一个小hw,遇到了两个SQL注入,记录一下,也是对文章关于mssql注入的知识分享的实战运用。

id=38 后面添加 and 1=1 -- ,发现 W*S-WAF 拦截,版本号:Server: w*s/1.6 。
测试发现拦截了空格,空格可通过 + 或 %0a 绕过

绕过W*S-WAF的MSSQL注入

确定列数与显示位
输入代码查询列数
可以看到显示位是2和6

绕过W*S-WAF的MSSQL注入

查库名
输入代码查看库名
确定数据库是mssql,查询库名和当前用户名:dg2018db和dbo

绕过W*S-WAF的MSSQL注入

查询dbo.sysobjects表中用户创建的表,获取其对应的id和name

绕过W*S-WAF的MSSQL注入

查询下一个表名

绕过W*S-WAF的MSSQL注入

绕过W*S-WAF的MSSQL注入

查列名

这里有个坑,查询列名的时候因为已经知道了表名的id值,所以where只需要使用id即可,不再需要xtype了。

绕过W*S-WAF的MSSQL注入

查询下一个列名

利用代码查询下一个列名

列名: Ad_Id,Ad_Name,Ad_Password

绕过W*S-WAF的MSSQL注入

绕过W*S-WAF的MSSQL注入

information_schema

值得一提的是,除了借助sysobjects表和syscolumns表获取表名、列名外,mssql数据库中也兼容information_schema,里面存放了数据表表名和字段名。

查到的表名有以下

'Admin','Anli','AnliType','Article','ArticleType','Banner','Banquan','Fuwu','GdImage','Intro','Kefu','KeyWords','Lx','Message','Product','Type1'

查询Amin表中的列名有:

'Ad_Id','Ad_Name','Ad_Password'

绕过W*S-WAF的MSSQL注入

查数据
密码是明文存储:admin/khkj18

绕过W*S-WAF的MSSQL注入

另一个payload,用%0a代替空格绕过w*s waf

这里使用"+"运算符将Ad_name和Ad_password查询的结果(两个字符串)给聚合连接起来,并返回一个名为"a"的列,其中包含所有管理员的用户名和密码,用"-"分隔。

绕过W*S-WAF的MSSQL注入

登录后台

绕过W*S-WAF的MSSQL注入

第二个网站
绕过W*S-WAF的MSSQL注入
NO.2
在 tid=EwMLN3nd') 后面添加 and '1'='1' -- ,发现也是W*S-WAF拦截,版本号:Server: w*s/1.6 。

跟上一个网站一样,空格可通过 + 或 %0a 绕过。

绕过W*S-WAF的MSSQL注入

确认列数
利用代码确认列数
查看当前数据库名是tczr2018

绕过W*S-WAF的MSSQL注入

查表名
查询dbo.sysobjects表中用户创建的表,获取其对应的id和name

绕过W*S-WAF的MSSQL注入

查列名
这里有个坑,查询列名的时候因为已经知道了表名的id值,所以where只需要使用id即可,不再需要xtype了。
查询admin的表

绕过W*S-WAF的MSSQL注入

查询下一个列名

绕过W*S-WAF的MSSQL注入

字段如下:

'account','createtime','email','grade','Id','modifytime','name','order','password','phone','remark','state'

查数据
后台账密:admin/tc2019119zr

绕过W*S-WAF的MSSQL注入

另一个payload,用%0a代替空格绕过w*s waf
这里使用"+"运算符将account,name和password查询的结果(三个字符串)给聚合连接起来,并返回一个名为"a"的列,其中包含所有管理员的账户用户名和密码,用"~"分隔。
登录后台

绕过W*S-WAF的MSSQL注入

声明
绕过W*S-WAF的MSSQL注入
NO.3
本文作者:she1by
本文编辑:Yusa
感谢 she1by 师傅 (๑•̀ㅂ•́)و✧

原文始发于微信公众号(渗透安全团队):绕过W*S-WAF的MSSQL注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月2日08:43:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   绕过W*S-WAF的MSSQL注入https://cn-sec.com/archives/1781067.html

发表评论

匿名网友 填写信息