sqlilab less32-less37

less-32

过滤了单引号,双引号,斜杠,同时设置数据库为GBK编码,可以考虑宽字节注入,

 

 

 当设置gbk编码后,遇到连续两个字节,都符合gbk取值范围,会自动解析为一个汉字。用脚本来测试下哪些符合

import requests
url1 = "http://127.0.0.1:81/Less-32/?id=1"
url2 = "'"
urlcode=[]
code="1234567890abcdef"
for word1 in code:
    for word2 in code:
        urlcode.append("%"+str(word1)+str(word2))
print(len(urlcode))

for word3 in urlcode:
    url=url1+word3+url2
    res = requests.get(url=url)
    if 'error' in res.content.decode("utf-8", "ignore"):
        print(word3)

 

 

 从%81到%fe都是符合的。

 

 

 

使用python自带tamper

 

 

 


 

less-33

与上一个思路相同,在特定符号前加斜杠,

预定义字符是:

  • 单引号(')
  • 双引号(")
  • 反斜杠(\)
  • NULL

相比上一个多了空格。根据之前的思路

 

 

 使用上一个的tamper脚本同样可以因为GBK的问题绕过

 

 


 

less34

本关是post型的gbk注入

 

 

 

 

 

 


 

less-35

同样使用addslash函数,但是没有用单引号包裹

 

 

 直接使用sqlmap进行注入

 

 

 


 

less-36

使用了mysql_real_escape_string处理,该函数转义 SQL 语句中使用的字符串中的特殊字符。

下列字符受影响:

  • \x00
  • \n
  • \r
  • \
  • '
  • "
  • \x1a

 

 

 但是mysql未被设置为GBK,依旧可以突破

 

 

 

 


 

less-37

与36关使用的函数相同,但是使用post方法来注入

 

 直接使用sqlmap

 

posted @ 2020-08-07 16:03  红刃  阅读(207)  评论(0编辑  收藏  举报