摘要:大學網站使用了名為的開源程序,青年使用一個已經公開的漏洞進入后臺青年使用后臺上傳限制不嚴的缺陷上傳了一個控制主機贈送我國國旗。這些程序都是國內開源程序中的佼佼者,也比較注重安全性。此時后臺程序的安全性成為一個短板。
一、前言
不知怎的最近甚是思念校園生活,思念食堂的炒飯。那時會去各種安全bbs上刷刷帖子,喜歡看別人寫的一些關于安全技巧或經驗的總結;那時BBS上很多文章標題都是:成功滲透XXX,成功拿下XXX。這里便以一篇入侵菲律賓某大學的文章引出文章的主題,我們先簡要看一下過程。大學網站使用了名為joomla的開源web程序,(1)青年使用一個joomla已經公開的漏洞進入web后臺(2)青年使用joomla后臺上傳限制不嚴的缺陷上傳了一個webshell(3)控制主機贈送我國國旗。
???????
原來入侵一臺主機如此容易,管理員果斷給web程序打上安全補丁。管理員的工作是結束了,作為安全從業人員再一想是不是joomla后臺這里可以上傳webshell是不是有問題呢,如果joomla后臺不能上傳webshell,是不是可以減少入侵的可能和損失。下面進入本文的主題:web后臺程序的安全性。
國內很多站點都是基于開源論壇、cms搭建的,比如discuz、phpwind、dedecms等。這些程序都是國內開源web程序中的佼佼者,也比較注重安全性。平時大家關注比較多的是sql注入、xss這些可以直接竊取用戶數據的漏洞。網上因為弱口令被入侵的案例數不勝數,此外用戶數據泄漏事件時而發生,單純靠密碼防護的后臺被突破,被社工的可能性越來越大。獲取一個管理后臺密碼后,再結合后臺程序的任意代碼執行、文件包含或命令注入等漏洞得到一個shell,竊取用戶資料不是什么難事。此時后臺程序的安全性成為一個短板。
??????
Discuz是一款流行的論壇程序,筆者這里就以它的后臺程序為例簡單分析一下其安全性,下面直接看一些漏洞案例(Discuz最新版本已打補?。?。
Tips:下文提到的$settingnew是discuz后臺存儲表單數據的變量,后臺用戶可控。
案例一:用戶輸入數據過濾邏輯不當漏洞文件:X3sourceadmincpadmincp_setting.php
分析:
alice修改$settingnew["extcredits"]非數組
if(is_array($settingnew["extcredits"]))?{ foreach($settingnew["extcredits"]?as?$key?=>?$value)?{
給$settingnew["initcredits"][1]傳入phpinfo();,非數組繞過intval轉換
$settingnew["initcredits"][$i]?=?intval($settingnew["initcredits"][$i]); ...?省略?... for($i?=?1;?$i?<=?8;?$i++)?{
phpinfo();被賦值給$initformula
$initformula?=?str_replace("extcredits".$i,?$settingnew["initcredits"][$i],?$initformula); }
phpinfo()帶入eval執行
eval("$_G["setting"]["initcredits"]?=?round($initformula);");案例二:二次注入
???????
簡單介紹一下二次注入,惡意用戶alice在A處傳入惡意數據并被存儲到數據庫,在A處不直接導致安全問題;B處引用到A處存儲的數據,從而觸發安全問題。
漏洞文件:X3sourceadmincpadmincp_setting.php
分析:
alice上傳一個圖片木馬假設為1.gif; alice設置$settingnew["seccodedata"]["type"]值為1.gif