感受代碼審計是一項必需要掌握的技能,但真正的代碼審計和ctf那樣只看一個index.php仍是有很大差異的。從別人的文章看起吧,下面是我參考的連接。php
cms下載地址:sql
一開始我只是大體瀏覽了一下整個cms,只知道這個cms之中存在sql注入漏洞。鑑於以前使用過大法師的神器zhe,這裏直接上手開啓自動審計。函數
自動審計完我就發現問題了,這可疑漏洞太多了。一百多個,我總不能一個一個看過去吧,那樣效率太慢了。.net
後來想到一點,我應該考慮的是可控變量的位置,從前臺找後臺對應頁面。3d
這幾個頁面纔是咱們跟進代碼查看的重點。code
找到一個fun.inc.php頁面,裏面定義了一些安全防禦函數。
以下:
htm
在第二張圖裏,打ctf的經驗告訴我,這個函數是對大小寫敏感的。也就是說,他的這些關鍵字均可以大小寫進行繞過。除了大小寫繞過以外,因爲他這裏是直接替換爲空的,因此咱們還能夠進行雙寫繞過,如: seleselectct => selectblog
接下來很顯然就是找哪裏調用了這個函數的php頁面。
114處...有點多好吧..不過,咱們能夠排除一些沒必要要的頁面,好比管理員的後臺php,以及一些管理員才能接觸到的組件。
這個地方,這裏只調用了一個防禦函數,原本第一個那個防禦函數我以爲是繞過不了的。可是這裏只調用了一個html_safe 因此,咱們能夠進行大小繞過,或者雙寫繞過。
這裏直接報錯了。咱們利用報錯注入便可。