首页    新闻    下载    文档    论坛     最新漏洞    黑客教程    数据库    搜索    小榕软件实验室怀旧版    星际争霸WEB版    最新IP准确查询   
名称: 密码:      忘记密码  马上注册
安全知识 :: 专题文章

php utf8 decode漏洞


http://www.gipsky.com/
漏洞说明: php是一款被广泛使用的编程语言,可以被嵌套在html里用做web程序开发。但是在php里使用的某些编码函数在处理畸形的utf8序列时会产生不正确的结果,这样在某些情况下可能会引起应用程序的安全漏洞,绕过某些逻辑过滤等等。



漏洞成因:php在处理utf8编码时,对畸形的序列处理不当,如



...

0xc0a7

0xe0c0a7

0xf0c0c0a7

...



均会被错误地解码为一个0×27,这样就导致安全漏洞的产生。譬如utf8_decode函数的源代码如下:

PHPAPI char *xml_utf8_decode(const XML_Char *s, int len, int *newlen, const XML_Char *encoding)

{

int pos = len;

char *newbuf = emalloc(len 1);

unsigned short c;

char (*decoder)(unsigned short) = NULL;

xml_encoding *enc = xml_get_encoding(encoding);

*newlen = 0;

if (enc) {

decoder = enc->decoding_function;

}

if (decoder == NULL) {

/* If the target encoding was unknown, or no decoder function

* was specified, return the UTF-8-encoded data as-is.

*/

memcpy(newbuf, s, len);

*newlen = len;

newbuf[*newlen] = ‘\0′;

return newbuf;

}

while (pos > 0) {

c = (unsigned char)(*s);

if (c >= 0xf0) { /* four bytes encoded, 21 bits */

c = ((s[0]&7)http://www.80sec.com/php-utf8-decode-vul.html
<< 李一男2003年在港湾给开发人员培训时的语录 著名ip查询站点IP138页面被挂马 >>
评分
10987654321
API:
gipsky.com& 安信网络
网友个人意见,不代表本站立场。对于发言内容,由发表者自负责任。

系统导航

 

Copyright © 2001-2010 安信网络. All Rights Reserved
京ICP备05056747号