0x01 漏洞簡介
自從2019年phpStudy爆出后門事件后,2020年9月再次爆出存在nginx決議漏洞,該漏洞是phpStudy默認使用的nginx版本是Nginx1.15.11,nginx在決議檔案時,由于錯誤的配置造成檔案以錯誤的格式執行,
影響版本:
- phpStudy <= 8.1.0.7 (Windows版)
0x02 漏洞原因
1、由于用戶的錯誤配置導致 nginx 把以 .php 結尾的檔案交給 fastcgi 處理,為此可以構造 http://www.xxx.com/test.gif/xx.php
(任何服務器端不存在的php檔案均可,比如a.php)
2、但是 fastcgi 在處理 xx.php 檔案時發現檔案并不存在,這時 php.ini 組態檔中 cgi.fix_pathinfo=1
發揮作用,這項配置用于修復路徑,如果當前路徑不存在則采用上層路徑,為此這里交由 fastcgi 處理的檔案就變成了 /test.gif ,
3、 最重要的一點是 php-fpm.conf 中的 security.limit_extensions
配置項限制了 fastcgi 決議檔案的型別(即指定什么型別的檔案當做代碼決議),此項設定為空的時候才允許 fastcgi 將 .png 等檔案當做代碼決議,
0x03 環境準備
本次復現環境采用Windows版的phpstudy v8.1.0.1
- phpstudy v8.1.0.1 點擊下載 提取碼:
y6qt
安裝成功后一鍵啟動WNMP即可
0x04 漏洞復現
首先是制作一張圖片馬,注意不要使用copy命令進行制作,直接使用notepad++或者其他編輯器打開圖片,在末尾加入執行代碼即可
正常訪問圖片馬如下:
http://192.168.126.129/3.jpg
構造決議后綴訪問如下:
http://192.168.126.129/3.jpg/xxx.php
在圖片馬中寫入shell,以冰蝎碼為例
然后使用冰蝎管理工具進行連接即可
0x05 修復建議
- 建議升級phpStudy至最新版本,
參考文章
- https://zhuanlan.zhihu.com/p/214307298
- https://www.cnblogs.com/0daybug/p/13611542.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295560.html
標籤:其他