PHP文件出現(xiàn)漏洞的原理及解決方案
2、PHP遠(yuǎn)程文件包含漏洞獲得網(wǎng)站W(wǎng)ebShell
同樣還是采用相同的服務(wù)器代碼,其中PHP配置文件中,allow_url_fopen和allow_url_include兩個(gè)參數(shù)都必須是ON的狀態(tài)。
目標(biāo)服務(wù)器地址:192.168.20.35
攻擊者遠(yuǎn)程服務(wù)器:192.168.210.102
在攻擊者個(gè)人服務(wù)器上,放置了一個(gè)惡意文件(index.txt),如下:
該文件可以向目標(biāo)服務(wù)器上創(chuàng)建一個(gè)hack.php腳本文件,并向其中寫入一句話木馬(已被Base64加密),這里要注意的是惡意文件不能是php可解析的擴(kuò)展名,也就是不能以php結(jié)尾。
攻擊者通過遠(yuǎn)程文件包含漏洞,觸發(fā)該文件(在file參數(shù)處寫入http://192.168.210.35/index.txt即可),如下:
然后攻擊者就可以通過連接工具,遠(yuǎn)程連接木馬并獲得網(wǎng)站W(wǎng)ebShell
防御方案
1、設(shè)置白名單
代碼在進(jìn)行文件包含時(shí),如果文件名可以確定,可以設(shè)置白名單對傳入的參數(shù)進(jìn)行比較。
2、過濾危險(xiǎn)字符
由于Include/Require可以對PHP Wrapper形式的地址進(jìn)行包含執(zhí)行(需要配置php.ini),在Linux環(huán)境中可以通過”../../”的形式進(jìn)行目錄繞過,所以需要判斷文件名稱是否為合法的PHP文件。
3、設(shè)置文件目錄
PHP配置文件中有open_basedir選項(xiàng)可以設(shè)置用戶需要執(zhí)行的文件目錄,如果設(shè)置目錄的話,PHP僅僅在該目錄內(nèi)搜索文件。
4、關(guān)閉危險(xiǎn)配置
PHP配置中的allow_url_include選項(xiàng)如果打開,PHP會通過Include/Require進(jìn)行遠(yuǎn)程文件包含,由于遠(yuǎn)程文件的不可信任性及不確定性,在開發(fā)中禁止打開此選項(xiàng),PHP默認(rèn)是關(guān)閉的。
5、提升安全開發(fā)意識
任意文件包含漏洞的主要出現(xiàn)在能夠解析處理腳本文件的函數(shù)上,沒有對輸入的變量進(jìn)行過濾,導(dǎo)致任意文件包含,進(jìn)而導(dǎo)致惡意代碼執(zhí)行。在開發(fā)處理這類功能函數(shù)上,一定要遵循編程規(guī)范;在代碼核心處,對變量進(jìn)行過濾限制,設(shè)置文件路徑或者白名單,避免執(zhí)行任意文件包含。

發(fā)表評論
請輸入評論內(nèi)容...
請輸入評論/評論長度6~500個(gè)字
最新活動更多
-
8月5日立即報(bào)名>> 【在線會議】CAE優(yōu)化設(shè)計(jì):醫(yī)療器械設(shè)計(jì)的應(yīng)用案例與方案解析
-
8月14日立即報(bào)名>> 【在線研討會】解析安森美(onsemi)高精度與超低功耗CGM系統(tǒng)解決方案
-
精彩回顧立即查看>> 《2024智能制造產(chǎn)業(yè)高端化、智能化、綠色化發(fā)展藍(lán)皮書》
-
精彩回顧立即查看>> 7月30日- 8月1日 2025全數(shù)會工業(yè)芯片與傳感儀表展
-
精彩回顧立即查看>> 全數(shù)會2025(第六屆)機(jī)器人及智能工廠展
-
精彩回顧立即查看>> OFweek 2025 具身機(jī)器人動力電池技術(shù)應(yīng)用大會
推薦專題
- 1 AI產(chǎn)業(yè)的新高度!英偉達(dá)成為全球首家市值破4萬億美元的公司
- 2 傳魏建軍與賈躍亭合作,長城汽車出海美國
- 3 一文讀懂:到底什么是 “具身智能” ?
- 4 黃仁勛:與雷軍長期合作,共探AI智駕
- 5 具身智能泡沫爭議下,華映資本尋找「穿越周期者」
- 6 中國平安們欲靠AI守“陣地”
- 7 官宣:智元機(jī)器人借殼上市,A股人形機(jī)器人第一股!
- 8 華為讓渡“三界”銷售主導(dǎo)權(quán),智界高管:終于能全力奔跑了
- 9 借仿生手實(shí)現(xiàn)突圍,國產(chǎn)靈巧手破局“不可能三角”
- 10 DeepSeek R2加持,中國AI與芯片產(chǎn)業(yè)迎來新一輪協(xié)同進(jìn)化