作者:李安@星闌科技PortalLab
原文鏈接:https://mp.weixin.qq.com/s/XBsBNAzyciWwCRP3bMZnOw
漏洞描述
Lanproxy 0.1 存在路徑遍歷漏洞,該漏洞允許目錄遍歷讀取/../conf/config.properties來獲取到內部網連接的憑據。
Lanproxy
lanproxy是一個將局域網個人電腦、服務器代理到公網的內網穿透工具,支持tcp流量轉發,可支持任何tcp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面...)
漏洞版本
Lanproxy 0.1
修復前:

修復補丁:https://github.com/ffay/lanproxy/commit/7787a143f9abf31ada4588e11741c92f0e145240

修復方式:如果在路徑中檢測到../ ,直接返回 Forbidden。
漏洞成因:對用戶輸入的路徑、沒有進行過濾、攻擊者可以使用該漏洞去訪問任意文件。
環境搭建

漏洞復現
拉取源碼
git clone https://github.com/ffay/lanproxy.git
回退到漏洞修復之前
cd lanproxy/
git reset --hard f768adb1fca4dbcb83c16778d9f3407bb8b2f524
maven編譯項目
mvn package
項目編譯完成后、會在項目根目錄下創建distribution目錄、包含服務端、客戶端。

config.properties


漏洞測試
1、運行啟動命令:
sh distribution/proxy-server-0.1/bin/startup.sh
2、訪問http://127.0.0.1:8090端口、出現如下界面、環境啟動成功:

3、測試Payload:/%2F..%2F/conf/config.properties

在使用Payload后、獲取到config.properties 配置文件。該文件中包含:管理頁面用戶名、密碼、以及ssl相關配置。
漏洞分析
開啟debug模式
Lanproxy 的啟動腳本 distribution/proxy-server-0.1/bin/startup.sh 、 debug 參數可以開啟調試模式。調試端口為8000。

sh distribution/proxy-server-0.1/bin/startup.sh debug
IDEA 配置

動態調試
將斷點打到 src/main/java/org/fengfei/lanproxy/server/config/web/HttpRequestHandler.java#outputPages,先通過URI實例,獲取到uriPath(請求路徑):/%2F..%2Fconf%2Fconfig.properties

接下來,會判斷該路徑是否為/,是/返回 index.html,否則返回獲取到的uriPath。
PAGE_FOLDER 是獲取當前程序所在的目錄。

緊接著、會拼接PAGE_FOLDER與uriPath。

然后、生成一個新的File實例,rfile,然后判讀是否是目錄、還會檢查該文件是否存在。

最后,使用 RandomAccessFile() 去讀取文件。到這一步,已經可以讀取到 config.properties 文件。

修復建議
安裝最新Lanproxy版本,可以通過源碼或者最新的安裝包進行更新。
源碼:https://github.com/ffay/lanproxy
安裝包:https://file.nioee.com/d/2e81550ebdbd416c933f/
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1997/
暫無評論