phpcms的/phpcms/libs/classes/attachment.class.php中,對輸入?yún)?shù)$ext未進行類型限制,導致邏輯漏洞的產(chǎn)生?!咀⒁猓涸撗a丁為云盾自研代碼修復方案,云盾會根據(jù)您當前代碼是否符合云盾自研的修復模式進行檢測,如果您自行采取了底層/框架統(tǒng)一修復、或者使用了其他的修復方案,可能會導致您雖然已經(jīng)修復了改漏洞,云盾依然報告存在漏洞,遇到該情況可選擇忽略該漏洞提示】
解決方法:
首先找到這個文件/phpcms/libs/classes/attachment.class.php
修復處有1處。
搜索如下代碼(143行):
function download($field, $value,$watermark = '0',$ext = 'gif|jpg|jpeg|bmp|png', $absurl = '', $basehref = '')
|
如下圖:
將144行后添加如下代碼:
if($ext !== 'gif|jpg|jpeg|bmp|png'){
if(!in_array(strtoupper($ext),array('JPG','GIF','BMP','PNG','JPEG'))) exit('附加擴展名必須為gif、jpg、jpeg、bmp、png');
}
|
//此方法借用【王靖宇博客】指出后更正 2016/9/19 網(wǎng)址:http://blog.sayphp.com/?p=568
修改后如下圖:
修改完后保存上傳更新,然后在阿里云點擊修復即可。