由于微信公众号推送机制改变了,快来星标不再迷路,谢谢大家!
◇ 确定列数与显示位
◇ 查库名
◇ 查表名
◇ 查列名
◇ information_schema
◇ 查数据
◇ 另一个payload,用%0a代替空格绕过w*s waf
◇ 登录后台
○ 第二个网站
◇ 确认列数
◇ 查表名
◇ 查列名
◇ 查数据
◇ 另一个payload,用%0a代替空格绕过w*s waf
◇ 登录后台
○ 声明
在 id=38 后面添加 and 1=1 -- ,发现 W*S-WAF 拦截,版本号:Server: w*s/1.6 。
测试发现拦截了空格,空格可通过 + 或 %0a 绕过
确定列数与显示位
输入代码查询列数
可以看到显示位是2和6
查库名
输入代码查看库名
确定数据库是mssql,查询库名和当前用户名:dg2018db和dbo
查询dbo.sysobjects表中用户创建的表,获取其对应的id和name
查询下一个表名
查列名
这里有个坑,查询列名的时候因为已经知道了表名的id值,所以where只需要使用id即可,不再需要xtype了。
查询下一个列名
利用代码查询下一个列名
列名: Ad_Id,Ad_Name,Ad_Password
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'
查数据
密码是明文存储:admin/khkj18
另一个payload,用%0a代替空格绕过w*s waf
这里使用"+"运算符将Ad_name和Ad_password查询的结果(两个字符串)给聚合连接起来,并返回一个名为"a"的列,其中包含所有管理员的用户名和密码,用"-"分隔。
登录后台
跟上一个网站一样,空格可通过 + 或 %0a 绕过。
确认列数
利用代码确认列数
查看当前数据库名是tczr2018
查表名
查询dbo.sysobjects表中用户创建的表,获取其对应的id和name
查列名
这里有个坑,查询列名的时候因为已经知道了表名的id值,所以where只需要使用id即可,不再需要xtype了。
查询admin的表
查询下一个列名
字段如下:
'account'
,
'createtime'
,
'email'
,
'grade'
,
'Id'
,
'modifytime'
,
'name'
,
'order'
,
'password'
,
'
phone'
,
'remark'
,
'state'
查数据
后台账密:admin/tc2019119zr
另一个payload,用%0a代替空格绕过w*s waf
这里使用"+"运算符将account,name和password查询的结果(三个字符串)给聚合连接起来,并返回一个名为"a"的列,其中包含所有管理员的账户用户名和密码,用"~"分隔。
登录后台
本文编辑:Yusa
感谢 she1by 师傅 (๑•̀ㅂ•́)و✧
原文始发于微信公众号(渗透安全团队):绕过W*S-WAF的MSSQL注入
- 我的微信
- 微信扫一扫
-
- 我的微信公众号
- 微信扫一扫
-
评论