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