在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
发布时间:2008-08-04 SBEUGID:SEBUGV2008083778 影响版本: Discuz!4.0.0 Discuz!4.1.0 Discuz!5.0.0 Discuz!5.5.0 Discuz!6.0.0 Discuz!6.1.0 描述: Discuz!论坛系统是一个采用 PHP 和 MySQL 等其他多种数据库构建的高效论坛解决方案。Discuz! 在代码质 量,运行效率,负载能力,安全等级,功能可操控性和权限严密性等方面都在广大用户中有良好的口碑 由于 PHP 对 多字节字符集的支持存在问题,在各种编码相互转换过程中,有可能引发程序溢出和程序错误 提交一个 ' 转意成 \' 然后转成gbk的,\和'就变成两个字符了 '就可以成功的引入 测试方法: 以下程序(方法)可能带有攻击性,仅供安全研究与教学之用.风险自负! if(defined('IN_DISCUZ')) { exit('Access Denied'); } define('CODETABLE_DIR', DISCUZ_ROOT.'./include/tables/'); class Chinese { var $table = ''; var $iconv_enabled = false; var $unicode_table = array(); var $config = array ( 'SourceLang' => '', 'TargetLang' => '', 'GBtoUnicode_table' => 'gb-unicode.table', 'BIG5toUnicode_table' => 'big5-unicode.table', ); function Chinese($SourceLang, $TargetLang, $ForceTable = FALSE) { $this->config['SourceLang'] = $this->_lang($SourceLang); $this->config['TargetLang'] = $this->_lang($TargetLang); if(!function_exists(’iconv’) && $this->config['TargetLang'] != ‘BIG5′ && !$ForceTable) { $this->iconv_enabled = true; } else { $this->iconv_enabled = false; $this->OpenTable(); } } function _lang($LangCode) { $LangCode = strtoupper($LangCode); if(substr($LangCode, 0, 2) == ‘GB’) { return ‘GBK’; } elseif(substr($LangCode, 0, 3) == ‘BIG’) { return ‘BIG5′; } elseif(substr($LangCode, 0, 3) == ‘UTF’) { return ‘UTF-8′; } elseif(substr($LangCode, 0, 3) == ‘UNI’) { return ‘UNICODE’; } } function _hex2bin($hexdata) { for($i=0; $i < strlen($hexdata); $i = 2) { $bindata .= chr(hexdec(substr($hexdata, $i, 2))); } return $bindata; } chinese.class.php (utf-8不能利用) searchid=22 |
请发表评论