【sqli-labs】 less29 GET- Error based -Impidence mismatch -Having a WAF in front of web application (GET型基于错误的带有WAF注入)

这关有点意思,有一点需要事先注意,这关玩的是login.php而不是默认的index.php

再注入之前需要先了解一下HPP(HTTP Parameter Pollution),详情参照这篇 http://blog.csdn.net/eatmilkboy/article/details/6761407

对于这关的WAF需要了解一点就是,WAF和web程序的业务逻辑是无关的,WAF只是起这简单的参数过滤作用而已,这样就可以解释为什么sql语句用的id而WAF判断的是id1

换句话说,没有了WAF就是less1的东西了

看一下过滤

$_SERVER['QUERY_STRING'] 获取的是?后面的值

 

java_implimentation函数用于提取id参数的值返回赋值给id1,然后用whitelist函数判断是否全为数字

^ 起始位置

$ 结束位置

/d 数字

+ 重复1次以上

那么构造这样的请求

http://192.168.136.128/sqli-labs-master/Less-29/login.php?id=1&id=2

 

http://192.168.136.128/sqli-labs-master/Less-29/login.php?id=1&id=0' union select 1,2,3%23

 

posted @ 2018-01-29 20:39  omnis  阅读(275)  评论(0编辑  收藏  举报