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

宽字节注入及其防御

作者: 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

相关文章

  • 宽字节注入及其防御

    0x00什么是宽字节? 即用两个字节储存一个字符比如GB2312,GBK,GB18030,BIG5,Shift_J...

  • 长亭chaitin.cn的技术面

    宽字节注入的原理 CSRF原理及防御 SSRF原理及防御 xss:expression()支持的浏览器 渗透的几个...

  • SQL注入防御绕过——宽字节注入

    01 背景知识 字符集 在了解宽字节注入之前,我们先来看一看字符集是什么。字符集也叫字符编码,是一种将符号转换为二...

  • Mysql注入-宽字节注入,二次编码注入

    宽字节注入 造成宽字节注入的原因,主要是因为使用了宽字节编码,导致一些字符被绕过 当我们注入 1' 时,若被转义成...

  • 宽字节注入

    宽字节注入 原理:宽字节(两字节)带来的安全问题主要是吃ASCII字符(一字节)的现象,使用一些特殊字符来”吃掉“...

  • 宽字节注入

    概述 首先要先了解一个宽字节注入,宽字节注入主要是源于程序员设置数据库编码与php编码设置为不同的两个编码,这样就...

  • PHP宽字节注入

    在PHPMySql语句中存在着宽字节注入漏洞,MySQL宽字节注入漏洞是SQL注入漏洞攻防技术相互促进的一个典型例...

  • sql注入 | 宽字节注入

    路漫漫其修远兮,吾将上下而求索。 mysql 在使用 GBK 编码的时候,会认为两个字符为一个汉字,例如%aa%...

  • sql注入-宽字节注入

    宽字节注入原理 当数据库编码方式为gdk时,一个汉字会占用两个字节,平常字符会占一个字节 例如:你 url编码之后...

  • 一步一步学习 Web 安全 3.2 二次编码注入

    原理 二次编码和上一节宽字节注入异曲同工,同样也是构造数据绕过转义。代码使用转义防御后又使用了 urldecode...

网友评论

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

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