(转)宽字节编码类型的XSS】的更多相关文章

今晚又看了一遍PKAV-心上的瘦子写的xss腾讯系列的例子,收获挺大的,其中对宽字节注入有了更深的了解,又查找了一些相关的资料,整理一下,以备以后查阅 参考文档: http://book.2cto.com/201301/14515.html http://itindex.net/detail/47408-xss-%E5%AD%A6%E4%B9%A0-xss http://www.wooyun.org/bugs/wooyun-2010-015969 GB2312.GBK.GB18030.BIG5.…
/// <summary> /// 按不同的字节编码,通过字节数去截取字符串 /// 数据库UTF-8 1个数字.字母.英文符号算1个长度 1个中文.中文符号算3个长度 /// </summary> /// <param name="origStr">需截取的字符串</param> /// <param name="bytesLength">需截取的字节长度</param> /// <pa…
SQL注入:宽字节注入(GBK双字节绕过) 2015-06-09lyiang 宽字节注入的作用是非常大的,实际上在代码层的防御一般不外乎两种,一是反斜杠转义,而就是replace替换成空字节,之前的替换空字节也就是各种bypass,想办法绕过代码层定制的黑名单,那么,转义的话,就不像替换那么好绕了 要么不用被转义的字符,要们就只能想办法构造了,这时候,便有了一个很牛逼的构造方法,GBK双字节绕过,实际也算是宽字节注入,这个可以看看一本书 <双字节编码 php的隐形杀手> 宽字节注入的方法也很简…
简介 宽字节跨站漏洞多发生在GB系统编码. 对于GBK编码,字符是由两个字节构成,在%df遇到%5c时,由于%df的ascii大于128,所以会自动拼接%5c,吃掉反斜线.而%27 %20小于ascii(128)的字符就会保留.通常都会用反斜线来转义恶意字符串,但是如果被吃掉后,转义失败,恶意的xss代码可以继续运行. 什么是宽字节 GB2312.GBK.GB18030.BIG5.Shift_JIS等这些都是常说的宽字节,实际为两字节.(英文字母占据一个字节,汉字占据两个字节).宽字节带来的安全…
编码方式就分两类:ANSI编码.Unicode编码.这两类编码都兼容ASC码. ------------------------------------------------------------------------------------------------------- ANSI编码: ANSI编码是指各国制订的自己文字的编码:  中国大陆: gb2312 -> GBK -> GB18030 中国台湾省:big5(繁体) 韩国:Euc-kr 日本:Shift_JIS 等等………
首先什么是SQL注入: 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令. SQL注入有什么危害? 危害:数据泄露.脱库.篡改网站.破坏数据库.植入后门.getshell(获取网站权限) 为什么会有SQL注入漏洞? 后端代码在执行的过程将用户输入的数据也当做代码来执行,违背一个原则:代码和数据相分离(本质问题) 前段传递的数据可以随意控制,参数可控:后端对前段传递过来的数据没有过滤或者过滤不严谨,最终导致SQL注入(…
尽管现在呼吁所有的程序都使用unicode编码,所有的网站都使用utf-8编码,来一个统一的国际规范.但仍然有很多,包括国内及国外(特别是非英语国家)的一些cms,仍然使用着自己国家的一套编码,比如gbk,作为自己默认的编码类型.也有一些cms为了考虑老用户,所以出了gbk和utf-8两个版本. 我们就以gbk字符编码为示范,拉开帷幕.gbk是一种多字符编码,具体定义自行百度.但有一个地方尤其要注意: 通常来说,一个gbk编码汉字,占用2个字节.一个utf-8编码的汉字,占用3个字节.在php中…
首先:不要使用 mysql_escape_string(),它已被弃用,请使用 mysql_real_escape_string() 代替它. mysql_real_escape_string() 和 addslashes() 的区别在于: 区别一: addslashes() 不知道任何有关MySQL连接的字符集.如果你给所使用的MySQL连接传递一个包含字节编码之外的其他编码的字符串,它会很愉快地把所有值为字符'.".\和\x00的字节进行转义.如果你正在使用不同于8位和UTF-8的其它字符,…
0x00 概述 - 什么是宽字节注入? 宽字节注入就是因为gbk编码方式需要两个ascii码组合来解码,所以形象的叫做宽字节,这个作为了解即可 -宽字节注入的条件 1) 数据库查询设置为GBK编码 2) 使用了addslashes(),mysql_real_escape_string(),mysql_escape_string()这类的过滤函数 - 宽字节注入的原理 假设我们传递一个参数id=1’,当我们输入这个单引号的时候,那么会被认为是非法的字符,会被过滤函数添加“/”给过滤掉,所以我们想要…
1.AddSlashes() 首先来观察一下是如何通过构造吃掉转义字符的 先将less 34的网页编码换成gbk 加上一些输出 echo "Before addslashes(): " . $uname1 . "<br/>"; $uname = addslashes($uname1); $passwd= addslashes($passwd1); echo "After addslashes(): " . $uname . "…