sqli-labs Less29-Less31
Posted 骑着七彩祥云的少年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqli-labs Less29-Less31相关的知识,希望对你有一定的参考价值。
Less-29
第29关被称为世界上最好的WAF,但我们直接开始做的时候,发现它与第1关一样,这显然是不对的。这一次29-32关在其他地方,同时还需要配置下环境
配置jspstudy环境
sqli-labs-master文件夹下面还有tomcat文件,这才是真正的关卡,里面的jspstudy需要搭建环境jspstudy
jspstudy的下载包:https://www.xp.cn/download.html
下载完成后,将压缩包放进虚拟机中解压,路径放在与phpstudy同等路径下,解压后,双击安装,
接着我们将之前解压的tomcat文件中的sqli-labs文件复制到WWW文件中
打开其中的Less-29,右击用Notepad打开index.jsp,我们看到选中的地方,括号里的网址所指向的目录,这是将要打开的原来65关Less-29的index.php所在的位置,根据自己的情况来修改,我这里的地址如图所示:
我们接下来需要修改Jsp Study的端口号,因为php Study默认端口为80,不修改可能会因为端口占用而无法启动,按照下图操作即可:
我们通过火狐登陆,输入网址是原来的65关,加上:8080是jsp,此时页面还有点异常
我们需要在后面加上index.jsp?id=1的时候,返回正常了
输入 ?id=1\'--+ 报错,说明和第一关不一样,我们配置成功
开始正式的29关
参数污染:jsp/tomcat使用getgetParameter("id")获取到的是第一个值,php/apache使用$_GET["id"]获取的是第二个值,那么第一个id纯数字,第二个id的值,也就是,需要注入两个参数,第二个参数才是可以实现sql注入的
使用两个id的命令:index.jsp?id=1&id=2请求,服务器配置情况,客户端请求首先过tomcat,tomcat解析第一个参数,接下来tomcat去请求apache(php)服务器,apache解析最后一个参数。那最终返回客户端的应该是id=2的参数。
即jsp/tomcat使用getParameter("id")获取到的是第一个值,php/apache使用$_GET["id"]获取的是第二个值,那么第一个id纯数字,第二个id的值我们往往在tomcat服务器处做数据过滤和处理,功能类似为一个WAF。而正因为解析参数的不同,我们此处可以利用该原理绕过WAF的检测。该用法就是HPP(HTTP Parameter Pollution),http参数污染攻击的一个应用。HPP可对服务器和客户端都能够造成一定的威胁。
apache 解析后面的参数 http://127.0.0.1:8080/sqli-labs/Less-29/index.jsp?id=1&id=2\'--+
接下来我们在后面的id进行注入,语句为联合查询的语句,请参照第一关的语句,这里只举第一句为例
http://127.0.0.1:8080/sqli-labs/Less-29/index.jsp?id=1&id=-2\'union select 1,2,group_concat(schema_name)from information_schema.schemata --+
Less-30
这一关的包裹形式变为了双引号,其他地方均与29关相同,此处省略
Less-31
此处包裹变为“),其他均与29,30关相同,不再赘述
http://127.0.0.1:8080/sqli-labs/Less-31/index.jsp?id=1&id=-2") union select 1,2,3--+
以上是关于sqli-labs Less29-Less31的主要内容,如果未能解决你的问题,请参考以下文章
SQLi-labs Page-2_Less-29---Less-37
sqli-labs less23 Error based - strip comments (基于错误的去除注释的GET型注入)