我是靠谱客的博主 糟糕枕头,最近开发中收集的这篇文章主要介绍mysql 16进制 绕过_sql注入绕过,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.空格过滤绕过

可用

/**/

制表符(url编码为%09)

换行符(%0a)

括号

反引号  代替空格

mysql数据库有一个特性。在条件语句中,在 where id =1 后面加上 “=1”,成为where id =1 =1 ,就是对前面所有结果&1,查询的结果与原来一样。

where id =1 =0 就是对于前面所有结果&0 ,查询的结果为除去原有查询结果的其他数据,输出的是除去1以外的信息。利用MYSQL的此特性,构造括号绕过payload,可以进行bool注入。

id =1 =(ascii(mid(database() from (1) for(1)))=99)

输出的结果是id=1的结果,则说明是&1,数据库名的第一个字符ascll码为99

输出的不是id =1 的结果,则说明是&0,数据库名的第一个字符的ascll码不是99

from 和 for 绕过逗号过滤

2.内联注释绕过

myssql会执行放在/! ……/中的语句,可以利用这个特性绕过特殊符号过滤

/*50010!union*/ /*!select*/

其中,500010表示mysql的版本号,5.00.10,当实际数据库版本高于内联注释中的版本号时,就会执行内联注释中的代码。

3.大小写绕过

黑名单中可能只针对大写小写特殊符号

4.双写关键字绕过

selectselect

5.编码绕过

漏洞代码:

if(preg_match(' /select/i ' ,$_GET["id"])) {die("ERROR");} /*pre_match函数对GET型id参数进行了过滤,并对大小写情况进行了判断*/

else{

$id = $_GET['id'];

$sql = "SELECT * FROM user WHERE id =$id LIMIT 0,1"

$result = mysql_qurey($sql);

}

双重url编码绕过

id =1 and 1=2 union se%256cent 1,2 database()

十六进制编码绕过

MYSQL可以识别十六进制并对其进行自动转换

Unicode编码绕过

6.等价函数字符替换绕过

用like 或 in 代替 = 进行查询

sleep函数可用benchmark函数代替

ascii函数可用hex 、bin函数代替

最后

以上就是糟糕枕头为你收集整理的mysql 16进制 绕过_sql注入绕过的全部内容,希望文章能够帮你解决mysql 16进制 绕过_sql注入绕过所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部