美文网首页
宽字节注入及其防御

宽字节注入及其防御

作者: YuriPuck | 来源:发表于2018-09-21 19:07 被阅读21次

    0x00什么是宽字节?

    即用两个字节储存一个字符
    比如GB2312,GBK,GB18030,BIG5,Shift_JIS
    高8位>128

    0x01宽字节注入原理

    image.png

    0x02程序上的体现(白盒)

    1.mysql编码为双字节编码

    mysql_query("SET NAMES gbk");
    

    2.使用preg_replace进行转义

    $string = preg_replace('/'. preg_quote('\\') .'/', "\\\\\\", $string);          
    $string = preg_replace('/\'/i', '\\\'', $string);                               
    $string = preg_replace('/\"/', "\\\"", $string);              
    

    3.使用addslashes进行转义

    $string= addslashes($string);  
    

    4.使用mysql_real_escape_string进行转义

    $string= mysql_real_escape_string($string);
    

    0x03防御宽字节注入

    1.使用utf-8
    2.mysql_real_escape_string,mysql_set_charset('gbk',$conn)
    3.设置参数,character_set_client=binary

    相关文章

      网友评论

          本文标题:宽字节注入及其防御

          本文链接:https://www.haomeiwen.com/subject/nhyznftx.html