在实习的渗透测试项目中,遇到的数据库系统绝大部分是 SQL Server。也算是了解和熟悉 Mssql 的一个重要过程吧。
0x01 基础
常用查询
|
|
常用内置函数
|
|
like 查询大小写敏感模式
|
|
- 举例分析 Chinese_PRC_CS_AI_WS
- 前半部份:指 UNICODE 字符集,
Chinese_PRC_指针对大陆简体字 UNICODE 的排序规则。 _BIN二进制排序_CI(CS)是否区分大小写,CI不区分,CS区分_AI(AS)是否区分重音,AI不区分,AS区分_KI(KS)是否区分假名类型,KI不区分,KS区分_WI(WS)是否区分宽度,WI不区分,WS区分
- 前半部份:指 UNICODE 字符集,
实现 limit m,n
查询结果中第 7 条到第 9 条记录,如 MySql 中的 limit 7,3
|
|
0x02 关于xp_cmdshell
|
|
彻底防御xp_cmdshell方法:修复sql注入漏洞、删除 xplog70.dll 组件
0x03 利用数据类型转换报错注入
- and 可用:
?key=aa'+and+db_name()>1 - and 不可用:
?key='%2buser^1 - convert 转换类型:
?key=a'%2b(convert(int, @@version))
0x04 Tricks
set 绕过 select 过滤
|
|
有趣的绕过例子
输入单引号时会报错

尝试%23和–+-的注释来判断后端数据库系统类型。语句出错的时候返回200并报错。正确的时候是302。可知为mssql。
服务端对数据进行了拦截和过滤,拒绝处理请求。然而可利用varchar^int来爆出数据。
|
|

拦截有点厉害。尝试了许多select方式都不行。
|
|
不过还是存在规则缺陷的。
|
|

可爆出任意数据
|
|