SQL注入绕过safedog姿势及原理

今天继续给大家介绍渗透测试相关知识,本文主要内容是SQL注入绕过safedog的姿势及原理。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、绕过union select联合注入防御

当我们面对安全狗的防护,想要对目标站点进行SQL注入的渗透测试时,会发现安全狗会拦截带有union select的字段,直接使用SQL传统的union联合注入,URL构造如下:

http://192.168.136.7/sqli/Less-2/?id=-1 union select 1,2,3

则会遭到安全狗的拦截,如下所示:
在这里插入图片描述
经过多次尝试,使用如下的payload可以绕过安全狗的防御

http://192.168.136.7/sqli/Less-2/?id=-1 union--+tctctc%0A select 1,2,3

上述url访问后页面如下所示:
在这里插入图片描述
为什么上述payload能够绕过安全狗的防御呢,让我们来仔细看一下上述payload中关键的部分:
在union和select关键字中间,添加了如下内容:

union--+tctctc%0A select

要理解上述payload,主要是理解为什么上述SQL语句能够成功执行,以及安全狗将上述SQL语句判定为什么。
在上述payload中,–是注释符,在安全狗认为,–后面的所有内容均为注释,因此没有出现union和select的联合注入威胁,因此被绕过。
而对于数据库而言,尽管–后面的内容被认为是注释,但是需要注意的是%0A在URL编码中是换行符的意思,即%0A后面的内容被换行,因此–注释的仅仅是tctctc这些我们故意构造的绕过安全狗的数据,因此上述SQL语句可以被数据库正常执行!

二、绕过database数据库名查询的防御

安全狗还会对查询database数据库的SQL语句进行防御,例如,如果我们访问如下的URL:

http://192.168.136.7/sqli/Less-2/?id=-1 union--+tctctc%0A select 1,2,database()

那么会被安全狗所拦截,结果如下所示:
在这里插入图片描述
上述payload被拦截的原因,就是出现了database()关键字,那么我们如何绕过该关键字呢?
我们可以利用MySQL数据库特性来绕过该限制,构造payload如下所示:

http://192.168.136.7/sqli/Less-2/?id=-1 union--+tctctc%0A select 1,2,database/**/()

该pyaload与之前的payload不同之处在于,在database和括号之间插入了/**/,这在MySQL数据库中可以正常执行,但是在安全狗中认为分割了database(),因此被绕过,该payload执行结果如下所示:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值