摘要:大學(xué)網(wǎng)站使用了名為的開源程序,青年使用一個(gè)已經(jīng)公開的漏洞進(jìn)入后臺(tái)青年使用后臺(tái)上傳限制不嚴(yán)的缺陷上傳了一個(gè)控制主機(jī)贈(zèng)送我國國旗。這些程序都是國內(nèi)開源程序中的佼佼者,也比較注重安全性。此時(shí)后臺(tái)程序的安全性成為一個(gè)短板。
一、前言
不知怎的最近甚是思念校園生活,思念食堂的炒飯。那時(shí)會(huì)去各種安全bbs上刷刷帖子,喜歡看別人寫的一些關(guān)于安全技巧或經(jīng)驗(yàn)的總結(jié);那時(shí)BBS上很多文章標(biāo)題都是:成功滲透XXX,成功拿下XXX。這里便以一篇入侵菲律賓某大學(xué)的文章引出文章的主題,我們先簡要看一下過程。大學(xué)網(wǎng)站使用了名為joomla的開源web程序,(1)青年使用一個(gè)joomla已經(jīng)公開的漏洞進(jìn)入web后臺(tái)(2)青年使用joomla后臺(tái)上傳限制不嚴(yán)的缺陷上傳了一個(gè)webshell(3)控制主機(jī)贈(zèng)送我國國旗。
???????
原來入侵一臺(tái)主機(jī)如此容易,管理員果斷給web程序打上安全補(bǔ)丁。管理員的工作是結(jié)束了,作為安全從業(yè)人員再一想是不是joomla后臺(tái)這里可以上傳webshell是不是有問題呢,如果joomla后臺(tái)不能上傳webshell,是不是可以減少入侵的可能和損失。下面進(jìn)入本文的主題:web后臺(tái)程序的安全性。
國內(nèi)很多站點(diǎn)都是基于開源論壇、cms搭建的,比如discuz、phpwind、dedecms等。這些程序都是國內(nèi)開源web程序中的佼佼者,也比較注重安全性。平時(shí)大家關(guān)注比較多的是sql注入、xss這些可以直接竊取用戶數(shù)據(jù)的漏洞。網(wǎng)上因?yàn)槿蹩诹畋蝗肭值陌咐龜?shù)不勝數(shù),此外用戶數(shù)據(jù)泄漏事件時(shí)而發(fā)生,單純靠密碼防護(hù)的后臺(tái)被突破,被社工的可能性越來越大。獲取一個(gè)管理后臺(tái)密碼后,再結(jié)合后臺(tái)程序的任意代碼執(zhí)行、文件包含或命令注入等漏洞得到一個(gè)shell,竊取用戶資料不是什么難事。此時(shí)后臺(tái)程序的安全性成為一個(gè)短板。
??????
Discuz是一款流行的論壇程序,筆者這里就以它的后臺(tái)程序?yàn)槔唵畏治鲆幌缕浒踩裕旅嬷苯涌匆恍┞┒窗咐―iscuz最新版本已打補(bǔ)丁)。
Tips:下文提到的$settingnew是discuz后臺(tái)存儲(chǔ)表單數(shù)據(jù)的變量,后臺(tái)用戶可控。
案例一:用戶輸入數(shù)據(jù)過濾邏輯不當(dāng)漏洞文件:X3sourceadmincpadmincp_setting.php
分析:
alice修改$settingnew["extcredits"]非數(shù)組
if(is_array($settingnew["extcredits"]))?{ foreach($settingnew["extcredits"]?as?$key?=>?$value)?{
給$settingnew["initcredits"][1]傳入phpinfo();,非數(shù)組繞過intval轉(zhuǎn)換
$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執(zhí)行
eval("$_G["setting"]["initcredits"]?=?round($initformula);");案例二:二次注入
???????
簡單介紹一下二次注入,惡意用戶alice在A處傳入惡意數(shù)據(jù)并被存儲(chǔ)到數(shù)據(jù)庫,在A處不直接導(dǎo)致安全問題;B處引用到A處存儲(chǔ)的數(shù)據(jù),從而觸發(fā)安全問題。
漏洞文件:X3sourceadmincpadmincp_setting.php
分析:
alice上傳一個(gè)圖片木馬假設(shè)為1.gif; alice設(shè)置$settingnew["seccodedata"]["type"]值為1.gif