iconv导致字符串截断


May 21 2014

iconv导致字符串截断

首页 » 代码审计 » iconv导致字符串截断   

iconv导致字符串截断

by qingsh4n


1、iconv函数原型


string iconv ( string $in_charset , string $out_charset , string $str )


in_charset:输入的字符集

out_charset:输出的字符集

str:要转换的字符串

具体查看php手册:http://www.php.net/manual/zh/function.iconv.php


2、iconv导致字符串截断


iconv在字符编码转换时可能导致字符串截断。当$str中有一个字符不能被目标字符集所表示时,str 从第一个无效字符开始截断并导致一个 E_NOTICE。


例如:$d = iconv("UTF-8", "gb2312", $c);该代码是将变量$c从UTF-8编码转换为gb2312。那么当$c中存在一个不能被gb2312表示的字符时,那么就会截断

该字符之后的内容


3、fuzz脚本
1
2
3
4
5
6
7
8
    
<?php
$a = "1.php";
$b = ".jpg";
for($i=0; $i<200; $i++){
    $c = $a.chr($i).$b;
    $d = iconv("UTF-8", "gb2312", $c);
    echo "$i ==> ".$d."\n";
}

可以发现当$i为128(0x80)时输出的字符串截断为1.php。为什么0x80开始截断,可以看utf8和gbk的编码范围http://www.docin.com/p-178554948.html


4、漏洞案例

http://www.wooyun.org/bugs/wooyun-2014-048293


5、注意

测试时发现在linux环境下不会截断,在windows下成功。

如果您喜欢本博客,欢迎点击图片定订阅到邮箱填写您的邮件地址,订阅我们的精彩内容:

正文部分到此结束

文章标签: 代码审计

版权声明:若无特殊注明,本文皆为( mOon )原创,转载请保留文章出处。

也许喜欢: «Mysql 漏洞利用(越权读取文件,实战怎么从低权限拿到root密码) | asp木马溢出密码工具(内部工具)»

你肿么看?

你还可以输入 250/250 个字

 微笑 大笑 拽 大哭 亲亲 流汗 喷血 奸笑 囧 不爽 晕 示爱 害羞 吃惊 惊叹 爱你 吓死了 呵呵

评论信息框

这篇文章还没有收到评论,赶紧来抢沙发吧~