安全動(dòng)態(tài)

Upload-Lab第三關(guān):如何巧妙應(yīng)對(duì)黑名單文件后綴檢測(cè)?

來源:聚銘網(wǎng)絡(luò)    發(fā)布時(shí)間:2024-08-23    瀏覽次數(shù):
 
黑名單檢測(cè)是一種常見的安全措施,它通過檢查上傳文件的后綴來阻止特定類型的文件(如 .php, .exe)被上傳。

關(guān)卡介紹

在Pass03中,我們面臨的挑戰(zhàn)是繞過文件上傳功能的黑名單檢測(cè)機(jī)制。黑名單檢測(cè)是一種常見的安全措施,它通過檢查上傳文件的后綴來阻止特定類型的文件(如 .php, .exe)被上傳。在這一關(guān),我們需要找到一種方法,上傳一個(gè)可以執(zhí)行的惡意文件,同時(shí)繞過黑名單檢測(cè)。

Pass03的源碼

解題思路

為了繞過黑名單檢測(cè),可以嘗試以下幾種方法:

  • 雙重后綴名:利用系統(tǒng)只檢測(cè)第一個(gè)后綴名,而實(shí)際執(zhí)行第二個(gè)后綴名。
  • 大小寫混淆:某些系統(tǒng)對(duì)后綴名的檢測(cè)是大小寫敏感的。
  • 文件名后綴添加特殊字符:在后綴名后添加一些特殊字符,可能會(huì)繞過檢測(cè)。
  • 使用其他可執(zhí)行后綴:如果服務(wù)器支持多種腳本語言,可以嘗試其他語言的可執(zhí)行文件后綴。

題目中提示不允許上傳.asp,.aspx,.php,.jsp后綴文件!就用下面的替代被禁止的那些。

  • ASP: asa/cer/cdx
  • ASPX: ashx/asmx/ascx
  • PHP: php4/php5/phtml
  • JSP: jspx/jspf

實(shí)踐步驟

(1) 使用其他可執(zhí)行后綴

創(chuàng)建一個(gè)包含簡(jiǎn)單PHP代碼的文件,內(nèi)容如下所示,將該文件命名為 shell.php4


文件上傳成功,如下圖,可以查看返回的上傳路徑。

文件上傳成功

通過訪問文件上傳的路徑,看到一句話木馬原樣輸出了,說明 .php4 后綴名的文件它不解析。

這里再回想一下,代碼能否解析取決于配置文件里如何設(shè)置,所以,只能通過經(jīng)驗(yàn)去判斷。通過查看配置文件發(fā)現(xiàn),智能解析php php3 phtml這三種的后綴。如下圖:

接著,我們嘗試?yán)孟旅娴囊痪湓抴ebshell,并把后綴修改成.phtml,重新上傳。


成功上傳后,通過訪問該webshell的路徑。如下圖:

網(wǎng)上也有一些解法說可以通過.htaccess文件上傳。關(guān)于.htaccess文件利用第四關(guān)有詳細(xì)的講解。


這個(gè)文件里面的含義就是將所有文件解析為php。例如上傳個(gè)jpg格式的一句話也可以繞過了,再用蟻劍進(jìn)行連接就可以了。

但是,由于該關(guān)卡中,把上傳的文件重新命名了。關(guān)鍵代碼如下:

上傳的文件都被重新命名了,所以,上傳.htacces這個(gè)文件不起作用了。如下圖所示:

防御措施

為了防止類似的攻擊,開發(fā)人員應(yīng)采用白名單檢測(cè)機(jī)制,僅允許特定類型的文件上傳。此外,還應(yīng)對(duì)上傳的文件進(jìn)行嚴(yán)格的內(nèi)容檢查,確保其安全性。

總結(jié)

在第三關(guān)中,通過嘗試多種方法,我們成功繞過了文件上傳的黑名單檢測(cè)機(jī)制。這一過程不僅加深了我們對(duì)文件上傳漏洞的理解,也提高了我們識(shí)別和防御此類漏洞的能力。


 
 

上一篇:中央網(wǎng)信辦、工信部組織開展專項(xiàng)行動(dòng) 提升重點(diǎn)城市IPv6流量

下一篇:2024年8月23日聚銘安全速遞