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

Upload-Lab第六關(guān):如何巧妙利用大小寫(xiě)繞過(guò)黑名單驗(yàn)證?

來(lái)源:聚銘網(wǎng)絡(luò)    發(fā)布時(shí)間:2024-09-02    瀏覽次數(shù):
 
本文通過(guò)利用黑名單驗(yàn)證的缺陷和大小寫(xiě)繞過(guò)技巧,可以成功繞過(guò)服務(wù)器的文件上傳限制。

在第6關(guān),我們將面對(duì)一個(gè)黑名單驗(yàn)證機(jī)制,服務(wù)器通過(guò)檢測(cè)文件擴(kuò)展名來(lái)拒絕上傳特定類(lèi)型的文件(例如 .php 文件)。但由于驗(yàn)證邏輯不完善,可以利用大小寫(xiě)繞過(guò)等技巧進(jìn)行繞過(guò)。如下是第六關(guān)的關(guān)鍵源碼:

通過(guò)觀察上述代碼發(fā)現(xiàn),同時(shí)過(guò)濾掉.htaccess和.ini。但是沒(méi)有使用strtolower()函數(shù),可以使用大小寫(xiě)繞過(guò)黑名單把.php格式改為 .Php上傳上去之后,就會(huì)自動(dòng)解析為.php

解法步驟

(1) 準(zhǔn)備webshell文件:

創(chuàng)建一個(gè)簡(jiǎn)單的 PHP 文件 webshell.Php,內(nèi)容如下:


(2) 上傳文件:

在第6關(guān)的文件上傳界面,選擇webshell.Php文件并上傳。上傳成功如下圖所示:

(3) 驗(yàn)證上傳結(jié)果

如果上傳成功,你可以通過(guò)URL訪問(wèn)該文件,驗(yàn)證是否能夠正常執(zhí)行PHP代碼。在本次復(fù)現(xiàn)過(guò)程中,通過(guò)訪問(wèn)這個(gè)文件的URL提示如下報(bào)錯(cuò):

經(jīng)過(guò)檢查也沒(méi)有發(fā)現(xiàn)任何問(wèn)題,本關(guān)卡使用的環(huán)境如下:

  • nginx-1.24.0
  • php-5.3

有知道的小伙伴,麻煩評(píng)論區(qū)告訴我一聲

在windows平臺(tái)下也測(cè)試過(guò)一遍,還是不能正常解析到Php后綴的文件。如下圖:

總結(jié)

第6關(guān)通過(guò)利用黑名單驗(yàn)證的缺陷和大小寫(xiě)繞過(guò)技巧,可以成功繞過(guò)服務(wù)器的文件上傳限制。這一關(guān)展示了在實(shí)際開(kāi)發(fā)中簡(jiǎn)單黑名單驗(yàn)證的不足之處,強(qiáng)調(diào)了安全驗(yàn)證中細(xì)節(jié)的重要性


 
 

上一篇:【一周安全資訊0831】《網(wǎng)絡(luò)安全技術(shù) 網(wǎng)絡(luò)安全 第7部分:網(wǎng)絡(luò)虛擬化安全》公開(kāi)征求意見(jiàn);Uber因違反GDPR被罰2.9億歐元

下一篇:2024年9月2日聚銘安全速遞