對某黑產微盤交易系統的代碼審計


對某黑產微盤交易系統的漏洞挖掘

 

 

附上源碼#

鏈接: https://pan.baidu.com/s/1KDISzDnOFlThR9CD4AjQJQ 提取碼: 6rsw

安裝好是這樣的:

 

 

 

登錄后台:

http://192.168.190.147/admin/index/index.html

admin   2807016..

 

 

 

 

進后台 添加了一個用戶名為123 密碼為test1234的用戶 方便我們測試。

 

 

 

這次從功能測試到審計

 

0x01 注入漏洞

 

隨便點擊一個進去 測試后發現這個pid參數存在注入

 

 

 

 

http://192.168.190.147/index/goods/goods/pid/23'/token/6f2a0b00bceb07ed7a327f392d7f0755.html

 

 

 

這里用的thinkphp框架的路由 入口文件+模塊/控制器/操作

所以此處注入對應的文件在 index模塊(aplication應用目錄)下的goods控制器的goods操作(函數)

 

 

 

這里因為我們是功能測試出來pid這個變量貌似有注入,所以我們關注這個變量走向即可

 

 

 

Input方法是接收這個參數變量 不多講

 

 

可以看到在接收了PID變量后帶入了GetProData函數,看看這個函數怎么定義的

 

GetProData函數中的235行開始到237行進行了數據庫查詢操作,可以看到變量pid237直接帶入where函數作為pi.pid參數的值進行查詢,沒有任何過濾導致注入,直到這里我們才確定是真的有注入

 關於tp5自帶的數據庫查詢方法函數大佬們可以多看看手冊即可

 

 

 

 

0x02 后台登錄繞過漏洞

 

后台地址:http://192.168.190.147/admin/index/index.html

 

我們先登錄正常管理賬號。

 

 

 

抓包分析

 

 

 

發現有兩個請求的包

 

第一個:

 

 

Forward第一個后,抓取到第二個:

 

測試發現第一個包發送后第二個包中的cookie里面有個denglu 里面帶着有個參數uid,很有可能是用戶的標號,極有可能后台通過第二個包判斷登錄權限,我們重新打開一個沒有登錄的頁面

 

denglu=think%3A%7B%22otype%22%3A%223%22%2C%22userid%22%3A%221%22%2C%22username%22%3A%22admin%22%2C%22token%22%3A%223c341b110c44ad9e7da4160e4f865b63%22%7D

 

 

 

 

我們帶上那個正常包的cookie字段中的denglu這個參數

 

 

登錄成功,但是不確定是否有漏洞,因為這里的uidusername可以偽造,但是有個token參數,如果是隨機生成那么是不存在越權,所以我們繼續看源碼確定漏洞。


找到admin下的login控制器

 

 

 

 

往下找 可以看到這處

 

 

 

這里的token只是對一個字符串”nimashabi”進行md5加密,也就說是固定的,所以我們cookie加那個固定的denglu參數直接可以越權,存在漏洞

 

 

 

0x03 后台Getshell

 

Getshell部分我們重點關心上傳點和寫入文件之類的功能。后台發現此處有個上傳點,這里是修改前台相關信息和圖標的。

 

 

 

 

我們查看元素,看看接收文件上傳的php在什么位置

 

 

 

/admin/setup/editconf.html

 

Admin模塊下的setup控制器的editconf函數,找到對應位置

 

 

 

 

可以看到這里沒有任何類型判斷 直接上傳

 

 

 

我們來測試一下,上傳一個一句話后訪問前台

 

 

 

 

 

0x04前台越權改密碼

 

 

 

我們首先注冊兩個用於來測試,一個賬號名為”客戶”,一個為”黑闊”

 

 

我們來前台修改密碼,嘗試csrf漏洞

 

 

先登錄”客戶”賬號,登錄成功后點擊修改密碼,抓包

 

來到這里修改

 

 

 

 

因為格式問題 填寫賬號手機號的時候先改成手機號的長度,抓包

 

 

 

 

這里手機號就代表用戶名,我們這里登錄的是手機號為1”客戶”帳號,嘗試把手機號改成2(另一個名為“黑闊”賬號的手機號就為2),新密碼改成111111,關於手機驗證碼在真實環境中爆破即可

 

 

 

 

 

我們來看下源碼,確認漏洞。

 

 

 

因為剛才那個修改的密碼的包請求的是這個html,我們看看這個模塊里表單提交的地址是什么

 

 

 

 

找到了修改密碼操作的位置 login/repass

 

 

關鍵代碼 首先是接收post過來的值 里面包含我們手機號,先帶入數據庫查詢手機號是否存在

 

 

 

其次對驗證碼校驗,這個我們可以爆破,最后直接修改密碼,存在漏洞。

 

 

 

 

0x05 前台getshell

 

因為前面0x02可以繞過登錄,只需要cookie加上那個管理的信息就可以,加上0x02可以直接上傳 ,我們直接構造管理員的上傳包可以直接getshell

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM