国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

PHP 代碼審計:(一)文件上傳

vslam / 702人閱讀

摘要:代碼審計一文件上傳概述在網站的運營過程中,不可避免地要對網站的某些頁面或內容進行更新,這時便需要使用到網站上的文件上傳功能。

PHP 代碼審計:(一)文件上傳 0x00 概述

在網站的運營過程中,不可避免地要對網站的某些頁面或內容進行更新,這時便需要使用到網站上的文件上傳功能。如果不對被上傳文件進行限制,或限制被繞過,該功能便有可能會被利用于上傳可執行文件、腳本到服務器上,今兒進一步導致服務器淪陷。

由此可見,了解上傳漏洞的前提是了解文件上傳這個功能,以及其中的原理。如果只知道有文件上傳這個東西,以及可能會出現漏洞,那么跟不知道一個樣。

具體來說,一些用戶上傳的文件還是PHP腳本,這些PHP腳本上傳到服務器上能夠被用戶通過服務器直接訪問,其中包含的一些命令就會被執行。文件上傳的功能就是如此強大,如果你的網站在文件上傳方面控制得不夠好,就會淪陷。

導致文件上傳漏洞的原因較多,主要包含:

服務器配置不當

開源編輯器上傳漏洞

本地文件上傳限制被繞過

過濾不嚴或被繞過

文件解析漏洞導致文件執行

文件路徑截斷

...

其中,開源編輯器漏洞和文件上傳漏洞原理一樣,只不過多了一個編輯器。上傳的時候還是會把我們的腳本上傳上去。

過濾不嚴這個非常常見,后面的例子中我們會看到。比如大小寫問題,網站只驗證是否是小寫,我們就可以把后綴名改成大寫。

然后是文件解析漏洞。比如 Windows 系統會涉及到這種情況:文件名為1.php;.jpg,IIS 6.0 可能會認為它是jpg文件,但是執行的時候會以php文件來執行。我們就可以利用這個解析漏洞來上傳。再比如 Linux 中有一些未知的后綴,比如a.php.xxx。由于 Linux 不認識這個后綴名,它就可能放行了,攻擊者再執行這個文件,網站就有可能被控制。

最后是路徑截斷,就是在上傳的文件中使用一些特殊的符號,使文件在上傳時被截斷。比如a.php%00.jpg,這樣在網站中驗證的時候,會認為后綴是jpg,但是保存到硬盤的時候會被截斷為a.php,這樣就是直接的php文件了。

常用來截斷路徑的字符是: