DBShop前台RCE
前言
?處理重裝系統(tǒng)的Controller在判斷是否有鎖文件后用的是重定向而不是exit,這樣后面的邏輯代碼還是會(huì)執(zhí)行,導(dǎo)致了數(shù)據(jù)庫重裝漏洞和RCE。
正文
?InstallController.php中除了indexAction大多數(shù)的Action都是使用checkInstallStep()來判斷系統(tǒng)是否已經(jīng)安裝,但是該方法中判斷完后并沒有exit,而是return+重定向,這樣返回之前的Action后還是會(huì)執(zhí)行接下來的代碼。
?
再看下checkMysqlConnectAction,該方法一是用于檢測數(shù)據(jù)庫是否連接成功,同時(shí)還用請求中的參數(shù)更新數(shù)據(jù)庫配置文件
當(dāng)數(shù)據(jù)庫能成功連接時(shí),會(huì)將配置參數(shù)寫入/data/Database.ini.php
?
其中這五個(gè)地方是受我們控制的,但是由于程序?qū)?/span>username和password做了校驗(yàn),不讓有單引號(hào),由于在寫入配置之前會(huì)先進(jìn)行連接測試,所以port和localhost也不能隨意修改,于是只能利用dbname了。
先在數(shù)據(jù)庫中創(chuàng)建如下數(shù)據(jù)庫
構(gòu)造請求
返回true后再看/data/Database.ini.php
?
訪問首頁
?
當(dāng)然也可以直接綁定遠(yuǎn)程的惡意mysql服務(wù)器,然后結(jié)合MySQL LOAD DATA LOCAL INFILE來讀取任意客戶端文件
轉(zhuǎn)載于:https://www.cnblogs.com/jinqi520/p/11274729.html
總結(jié)
以上是生活随笔為你收集整理的DBShop前台RCE的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 易优cms后台RCE以及任意文件上传漏洞
- 下一篇: HTTP、TCP、UDP,Socket,