天天看點

代碼審計【根據功能點定向審計】BugFree ZSWin重裝案例

(哦對了!這些CMS代碼不要安裝在伺服器上,先不說它們用來代碼審計本身就是有漏洞的,而且在網上下載下傳下來,也不能保證沒有源碼是否被篡改而留有後門,就安裝在本地進行代碼審計的練習即可)

我們先下載下傳BugFree的源代碼

​​http://47.94.132.67/tools/index.php?share/file&user=1&sid=HDwfQMeK​​

BugFree安裝檔案在install\index.php下,我們打開檔案:

代碼審計【根據功能點定向審計】BugFree ZSWin重裝案例

 确實可以在安裝的時候,檢查了install.lock鎖檔案是否存在,如果不存在的話就不進入該條件判斷語句,存在則由header重定向至index.php

由于沒有die()或者exit(),這個跳轉隻是HTTP頭的跳轉,下方的代碼仍然會執行

雖然浏覽器會自動跳轉到首頁,但是我們可以使用burpsuite進行攔截,進而來到安裝頁面

代碼審計【根據功能點定向審計】BugFree ZSWin重裝案例

 在安裝了一次之後,我們在burpsuite裡面再次通路install/頁面,可以看到又一次來到了安裝界面

重裝漏洞的危害:

  1,在安裝時寫入配置檔案時getshell

    因為我們安裝的時候都會填寫一些配置資訊,填寫的時候如果CMS沒有正确過濾的話,我們就可以成功寫入一句話木馬進而getshell

  2,重裝後登入背景getshell

    重裝了之後都會給管理者一個初始密碼,拿到初始密碼之後我們登入背景,尋找能夠getshell的點,如頭像上傳之類的地方繞過上傳一句話木馬進而getshell

在安裝時寫入配置檔案時getshell

我們可以看這個例子:

首先下載下傳zswin源代碼:http://47.94.132.67/tools/index.php?share/file&user=1&sid=kNZVTzab

該部落格CMS也存在重裝漏洞,并且我們可以嘗試在配置檔案中寫入shell

安裝好部落格之後,我們通路

​​http://127.0.0.1/zswinsns-blog2.6/install.php?m=install&c=index&a=setconf​​

又來到了安裝頁面,證明重裝漏洞存在,這裡我們主要展示在配置檔案中寫入shell

代碼審計【根據功能點定向審計】BugFree ZSWin重裝案例

 而我們在這裡填寫的内容,會儲存在ZswinSNS-Blog2.6\App\User\Conf的config.php檔案中

代碼審計【根據功能點定向審計】BugFree ZSWin重裝案例

 我們可以看到輸入的資料是使用單引号包裹的

是以我們在重裝時可以這樣填寫資料表字首

zs_');phpinfo();//      

 

代碼審計【根據功能點定向審計】BugFree ZSWin重裝案例

也就是這樣,很明顯語句到了config.php檔案中就會變成:

define('UC_TABLE_PREFIX', 'zs_');phpinfo()//');      

 即資料庫表字首還是zs_,但是還在config.php檔案裡面執行了phpinfo()函數,當然在這裡我們也可以寫入一句話木馬

代碼審計【根據功能點定向審計】BugFree ZSWin重裝案例

 建立成功後,我們去通路config.php即:​​http://127.0.0.1/zswinsns-blog2.6/App/User/Conf/config.php​​

代碼審計【根據功能點定向審計】BugFree ZSWin重裝案例

 成功回顯了phpinfo.php

不過這個時候我們去通路網站首頁的時候,有報錯資訊

代碼審計【根據功能點定向審計】BugFree ZSWin重裝案例

 應該是修改了表字首之後資料庫裡的表沒有正确的建立,進而導緻通路網站也出錯了,除了寫入木馬一無是處 :)

參考連結:

​​https://sosly.me/index.php/2018/04/03/php_daimashenji2/​​

​​https://threezh1.com/2019/05/18/PHP%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1%E4%B9%8B%E9%87%8D%E8%A3%85%E6%BC%8F%E6%B4%9E/#%E6%BC%8F%E6%B4%9E%E5%A4%8D%E7%8E%B0-1​​