使用concat/**/()和version()。花式报错注入使用Floor()、Updatexml()、Extractvalue()、Exp()、Name_const和几何函数报错注入。替代ascii可以使用Hex()、Bin()和Ord()函数来替代ascii。这些技巧和方法可以帮助我们在注入测试中应对函数过滤问题,从而继续执行注入测试以获取敏感信息。
在进行盲注时,我们可能遇到注入函数被过滤的情况。此时,通过使用其他函数,可以达到相同的效果。以下是一些替代方法,可以帮助我们在注入过程中应对函数过滤问题。
字符串截取函数通常,我们使用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