1. 程式人生 > 其它 >程式碼審計實戰一

程式碼審計實戰一

實戰練習是在一個公眾號上學習的

推薦一下,文章寫的很好,特別是選取的cms都很適合新手,文章中說這個cms漏洞比較多,沒想到是真的,我這個新手也能找到幾個漏洞 :)

我個人比較喜歡敏感函式回溯引數過程這種審計思路,這次練習的cms是熊海cms

在這裡我只說一下文章中沒有提起的漏洞,我為什麼說文章寫得很好呢,就是因為新手也能找到漏洞,這令我有更大的動力去學習

話不多說,直接搜尋關鍵字select

第一個是這種沒有變數的語句

這種沒有辦法控制,是沒有注入的

在columnlist.php中發現了一個查詢語句

看似有一個可以控制的變數,往上回溯,查詢他的來源

發現在這裡只是查詢處資料庫欄位的值

然後將查詢出的$nav的id值賦值給$navid,中間無法控制,

所以這種情況也無法注入

再往下面繼續找

這個就很明顯了,先判斷type的值,然後get到的id值直接拼接到sql語句中執行,很明顯是存在注入的

但是在最上面包含了一個檔案,checklogin.php

這裡因該是檢查是否登入,因此這個是一個後臺的sql注入,

驗證一下

下面的editlink.php也是一樣的情況,也是一個後臺的注入

後面一樣的就不說了,還有幾個這種的

然後在下面的一個top.php中發現了一個cookie注入

通過獲取cookie中user的值,然後拼接到sql語句中查詢

這個引數user是登入後才會出現在cookie中,經測試,未登入的時候新增在cookie中並沒有注入

直接訪問好像也不行,可能是模版檔案之類的,(我也不太懂,輕噴)然後我就找那些檔案包含了top.php

直接搜尋,發現全是後臺檔案,也是一個後臺的注入

隨便找一個頁面進行測試

其他的注入估計還有一些,就不再找了,下面還有一個無意中發現的一個儲存型xss

還是老方法,直接搜尋echo等輸出函式

在一個editlink.php中發現echo了好幾個東西

我以為還是從資料庫中查出來然後輸出的

往上找了一下,發現並不是

在這裡發現是通過post接收的

然後在下面更新資料庫中的值

沒有任何過濾直接儲存到了資料庫中,在後面輸出

測試一下

編輯連結

隨便找一個框輸進去payload

成功彈出cookie

--------------------------------------------------------------------

這個cms洞實在太多了。。。

未完待續