程式碼審計實戰一
實戰練習是在一個公眾號上學習的
推薦一下,文章寫的很好,特別是選取的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洞實在太多了。。。
未完待續