当注入函数被过滤时的Mysql注入小技巧

使用concat/**/()和version()。花式报错注入使用Floor()、Updatexml()、Extractvalue()、Exp()、Name_const和几何函数报错注入。替代ascii可以使用Hex()、Bin()和Ord()函数来替代ascii。这些技巧和方法可以帮助我们在注入测试中应对函数过滤问题,从而继续执行注入测试以获取敏感信息。
当注入函数被过滤时的Mysql注入小技巧
在进行盲注时,我们可能遇到注入函数被过滤的情况。此时,通过使用其他函数,可以达到相同的效果。以下是一些替代方法,可以帮助我们在注入过程中应对函数过滤问题。
字符串截取函数通常,我们使用substr()函数截取字符串。当substr()被过滤时,可以使用以下函数:
left(str, length)从字符串的左边第length位开始截取字符串。
用法示例:left('www.baidu.com',8) 结果为:www.baid
right(str,length)从字符串的右边第length位开始截取字符串。
用法示例:right('www.baidu.com',8) 结果为: aidu.com。
substring(str,index,len)截取特定长度的字符串。
用法示例:(1)从字符串的第8个字符开始读取直至结束,使用:substring('www.baidu.com',8) 结果为: du.com。 (2)从字符串的第8个字符开始,只取3个字符,使用:substring('www.baidu.com',8,3) 结果为:du.
mid(str,start,length)截取str 从start开始,截取length的长度。
用法与substr()类似,此处不赘述。
substring_index(str, delim, count)按关键字进行读取。
用法示例:(1)截取第二个“.”之前的所有字符:SELECT SUBSTRING_INDEX('www.baidu.com', '.', 2) 结果:www.baidu。 (2)截取倒数第二个“.”之后的所有字符:SELECT SUBSTRING_INDEX('www.baidu.com', '.', -2) 结果:baidu.com。如果关键字不存在,则返回整个字符串:SELECT SUBSTRING_INDEX('www.baidu.com', 'zkaq', 1) 结果: baidu.com。
替代逻辑运算符在注入测试中,我们经常使用and、or等逻辑运算符。当这些运算符被过滤时,可以使用以下替代方法:
替代and使用"&&"替代“and”。例如:Index.php?id = 1 && 1=1。
替代or使用”||”替代“or”。例如:Index.php?id = 1.1 || 1=1。
替代异或运算符”^”使用”XOR”替代”^”。例如:select 1=1 XOR 1=1。
替代等于号”=”可以使用多种方法替代等于号:
使用between:select database() between 0x61 and 0x7a;使用in:SELECT * FROM user WHERE uid IN (2,3,5)使用like:Index.php?id = 1.1 or 1 like 1使用正则代替等号:SELECT ‘Hern’ REGEXP ‘[0-9]’;替代逗号”,”可以使用union select * from (select 1)a join (select 2)b join (select 3)c 替代逗号。
替代空格可以使用特殊字符如 %20 %09 %0a %0b %0c %0d %a0 代替空格,它们不会被php的\s进行匹配。使用 /*!/ 或者 # 也可以代替空格进行分隔。
替代NULL\N 替代 null。例如:select *from duomi_admin where id=\N。
一些小技巧在注入过程中,可以利用以下技巧替代一些特定函数或实现某些功能:
替代sleep()函数BENCHMARK(100000,SHA1('1')) 与sleep()函数效果相似。
函数名和括号之间加入特殊字符例如,使用concat/**/()和version()。
花式报错注入使用Floor()、Updatexml()、Extractvalue()、Exp()、Name_const和几何函数报错注入。
替代ascii可以使用Hex()、Bin()和Ord()函数来替代ascii。
这些技巧和方法可以帮助我们在注入测试中应对函数过滤问题,从而继续执行注入测试以获取敏感信息。2024-09-19
mengvlog 阅读 104 次 更新于 2025-09-10 05:21:49 我来答关注问题0
  •  翡希信息咨询 当注入函数被过滤时的Mysql注入小技巧

    当注入函数被过滤时,可以采取以下Mysql注入小技巧:一、字符串截取函数替代 left:从字符串的左边第length位开始截取字符串。right:从字符串的右边第length位开始截取字符串。substring:截取特定长度的字符串,可以灵活指定起始位置和长度。mid:与substr用法类似,从指定位置开始截取指定长度的字符串。substri...

  •  翡希信息咨询 Sql 注入:宽字节注入+二次注入

    一、宽字节注入 1. 定义与原理:宽字节注入是在进行php连接mysql时,当设置character_set_client=gbk时导致的一个编码转换的注入问题。当存在宽字节注入时,特定的编码组合(如%df%27)可以绕过过滤机制,形成注入漏洞。2. 形成原因:设置Mysql服务器客户端数据编码为GBK。在执行GBK转码时,特定的编码组...

  •  文暄生活科普 SQL注入:各种绕过检测的姿势

    4)特殊字符转义与宽字节注入 常见的转义方式包括自定义转义函数、调用函数addslashes()和调用函数mysql_real_escape_string()。宽字节注入可以绕过这些转义方式。5)防火墙保护与http参数污染 防火墙的过滤可能导致安全问题。例如,在sqlilabs中,防火墙过滤非数字,但函数java_implimentation()存在逻辑错误,导...

  •  文暄生活科普 Sql 注入:宽字节注入+二次注入

    防御宽字节注入的方法包括在执行查询之前设置character_set_client为binary,使用mysql_set_charset设置编码,然后使用mysql_real_escape_string过滤参数,或者使用PDO方式并禁用preparcd statements的仿真效果。二次urldecode注入是当Web应用程序进行参数过滤以防止注入时,如果使用了urldecode或rawurldecode函数,则可...

  •  翡希信息咨询 sql注入之堆叠注入

    堆叠注入利用了MySQL允许在同一条SQL语句中通过分隔符执行多条SQL语句的特性。当服务器支持并发查询,如使用PHP的mysqli_multi_query函数时,攻击者可以构造包含多条SQL语句的请求,从而实现堆叠注入。应用场景:堆叠注入常被用于绕过某些过滤机制,通过修改表名或字段名等方式获取数据。在CTF等网络安全竞赛中...

檬味博客在线解答立即免费咨询

报错相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部