当注入函数被过滤时的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 阅读 11 次 更新于 2025-07-21 07:04:31 我来答关注问题0
  •  文暄生活科普 SQL注入:各种绕过检测的姿势

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

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

    宽字节注入: 原理:当PHP连接MySQL时,如果设置了character_set_client=gbk等宽字节字符集,可能会导致特定的编码问题。例如,%df%27可以将程序中过滤的反斜杠覆盖掉,从而形成注入漏洞。 示例:在存在宽字节注入的情况下,如果提交id=1%df’and 1=1%23,%df和组合成汉字,此时单引号依然存在,形成注入...

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

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

  •  阿暄生活 防止sql注入漏洞用什么函数

    核心方法:不要直接将用户输入拼接到SQL语句中,而是使用参数化查询。这是防止SQL注入的最佳实践。示例:在PHP中,可以使用PDO(PHP Data Objects)进行参数化查询,如$stmt->execute(['username' => $userInput])。使用数据库访问库提供的防注入函数:特定函数:例如,MySQLi提供的mysqli_real_escape_...

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

    宽字节注入是当PHP连接MySQL时,设置ser character_set_client=gbk时导致的问题。在这种情况下,%df%27可以将程序中过滤的\(%5c)吃掉,形成注入漏洞。例如,在id=1存在宽字节注入时,/1.php?id=-1’and 1=1%23中的单引号会被转义成\',但提交id=-1%df’and 1=1%23时,%df和\(%5c)...

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

报错相关话题

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