「代碼審計01」幾種常見的漏洞種類以及代碼審計工具

前言

代碼審計是在經過黑盒測試完畢,也就是檢查應用的基本功能是否符合產品業務需求下進行的。需要有一定的編碼基礎以及對漏洞形成原理的基本認知,通過工具或者經驗檢測中代碼中可能出現的bug。在不同平臺(windows,linux),不同PHP版本下測試,比如PHP的很多新版本會對一些指令廢棄刪除,但是在舊版本中卻能使用,而該版本下的指令即有可能會被人發現漏洞。

PHP核心配置

PHP配置對於大多數人都是通過php.ini設置,但其實是有配置範圍的,比如一些指令配置只能通過php.ini配置,也有一些可以在PHP腳本中設置,通過ini_set()函數,詳細可以查詢PHP_INI.*的列表和ini_set使用方法。

代碼審計工具

1.seay源代碼審計工具

「代碼審計01」幾種常見的漏洞種類以及代碼審計工具

2. HackBar漏洞驗證輔助(火狐瀏覽器擴展)

「代碼審計01」幾種常見的漏洞種類以及代碼審計工具

代碼審計思路

1. 查看敏感函數追蹤參數

2. 全部通讀一遍源碼瞭解邏輯

3. 按功能點審計追蹤

常見的幾種漏洞類型

1. SQL注入

2. XSS漏洞(跨站腳本攻擊)

3. CSRF漏洞(跨站請求偽造)

4. 文件操作漏洞

5. 代碼執行漏洞

6. 命令執行漏洞

7. 變量覆蓋漏洞

8. 業務邏輯漏洞

9. 越權與提權

10. 二次注入

11. ……等等

「代碼審計01」幾種常見的漏洞種類以及代碼審計工具

小結&待續

由於在代碼審計中會涉及到很多知識點,所以這裡只先總結一個引文。瞭解幾種常見的漏洞類型,而這些漏洞也都有特定的例子可以挖掘,需要在工作或學習中不斷積累分析,並且找到最好的防範方案解決。比如程序中需要中需要注意的就是接收與輸出。接收是獲取用戶提交過來的數據或操作,先人經驗說:”不要相信用戶的任何操作”。所以用戶可能是一個腳本,自然就存在XSS,爆破,CSRF,操作越權等等的風險。而輸入可能是由我們接收完用戶輸入直接反射性輸入或把接收數據存儲後再根據業務邏輯存儲型輸出。所以每一個函數或方法編寫時對參數的校驗過濾以及返回值的轉換處理等等都必不可少。而應用的功能點比如評論,登陸註冊,找回密碼,獲取驗證碼,上傳文件圖片,提現抽獎,積分等都最會是別人盯上找漏洞的地方,除了通過限制次數,IP防止暴力登陸往往還不夠。單說獲取IP地址,HTTP_CLIENT_IP,HTTP_X_FORWARDED_FOR,REMOTE_ADDR都可以獲取,而前兩者可以使用http header偽造,這時候對於一個IP的真實性需要比較一下這三種獲取方式的不同點再來實現功能。還有驗證碼,有圖片驗證,滑動驗證,語音驗證,短信驗證等,但網上也存在圖片識別,打碼平臺相應的工具。只能說防範手段在升級,漏洞也在不斷升級,代碼審計必不可少。


分享到:


相關文章: