点评:发布时间: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。






发布时间: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,和'和'将成为两个字符。


可以成功地引入

试验方法:


下列程序(方法)可能是攻击性的,仅用于安全研究和教学。

如果(定义('in_discuz ')){


退出('access否认);


}


定义('codetable_dir ',discuz_root。。 / / /包括表);


类中国{


var =;


VaR iconv_enabled美元= false;


VaR unicode_table美元=阵();


数组


(


sourcelang= >,


targetlang= >,


gbtounicode_table= > 'gb-unicode表,


big5tounicode_table= > 'big5-unicode表,


);

中国(sourcelang功能targetlang美元,美元,美元forcetable = false){


美元->配置{ 'sourcelang} =美元-> _lang($ sourcelang);


美元->配置{ 'targetlang} =美元-> _lang($ targetlang);


如果(!function_exists(rsquo;iconvrsquo;))美元->配置{ 'targetlang}!= big5prime ‘!forcetable美元){ $ forcetable){ '


美元-> iconv_enabled =真;


{人}


美元-> iconv_enabled = false;


美元-> OpenTable();


}


}


功能_lang(合LangCode){


langcode = strtoupper美元(美元langcode);


如果(substr(LangCode,0, 2)= = { ‘GBrsquo;)


返回‘GBKrsquo;;


} elseif(substr(LangCode,0, 3)= = { ‘BIGrsquo;)


返回big5prime ‘;


} elseif(substr(LangCode,0, 3)= = { ‘UTFrsquo;)


返回utf-8prime ‘;


} elseif(substr(LangCode,0, 3)= = { ‘unirsquo;)


返回unicodersquo ‘;


}


}

功能_hex2bin($ hexdata){


为($我= 0;$我< strlen($ hexdata);$我= 2){


bindata美元= CHR(hexdec(substr(hexdata美元美元,我,2)));


}


返回的bindata;


}


Chinese.class.php(UTF-8无法使用)


searchid = 22