Sqli-Labs:Less 34 & Less 37

2018-08-12  本文已影响0人  Hyafinthus

Less 34

基于错误_POST_单引号_字符型_addslashes()_宽字节注入

时隔多天终于又看到了 POST 亲切的界面。
这关有几种注入方式,《注入天书》中介绍因 POST 不能进行 URLencode,可使用 UTF-8 转 UTF-16 或 UTF-32,实践中发现正常的宽字节注入仍有效,猜测是编码的问题,待解决。

一个参考:Unicode令人混淆的概念,编码这种东西应该要系统地学习。

0x01. 宽字节注入

宽字节注入和 GET 中并无差别,原理在 Less 32 中已详细介绍,使用%bb%27%bb%5c%5c%27代替'均可,在这里同样可以平级越权:

uname=%bb' or 1 limit 1,1#&passwd=1

通过修改偏移limit可以平级越权得到其他账号的回显信息。
这里的符号也可以换成 URL 编码:#=%23'=%27(空格)=%20=+等。

已经绕过了addslashes()的过滤,确定了单引号闭合且无其他过滤,剩下的同 POST 最基本注入,可见 Less 11。

0x02. 编码转换注入

《注入天书》中,介绍了将 UTF-8 的'转换为 UTF-16 的�'实现注入的方法。这个字符我也不知道是什么。

Unicode和UTF编码转换网站上的转换结果:

直接复制进 Burp:

注意:这里的or 1or 1=1的简化写法,只要是永真条件均可,同样的还有or trueor 2>1等。

0x03. POST盲注

本关有正确回显和错误回显,且除了addslashes()无任何过滤,无论是 Bool 还是 Time 盲注都可以做到,参考前面的 POST 盲注脚本。

Less 37

基于错误_POST_单引号_字符型_mysql-real-escape-string()_宽字节注入

在 Less 36 中已介绍了mysql_real_escape_string()这个函数的原理,可以知道mysql_real_escape_string()addslashes()的注入方式是一样的。

至此,Page 2 的过滤绕过部分已经完成,如果你跟到这里,恭喜你跟着我在这个门里走了两步了【笑。

上一篇下一篇

猜你喜欢

热点阅读