seay 代碼審計中總結:
常見的代碼審計思路有以下四種:
1) 根據敏感關鍵字回溯參數傳遞過程
2) 查找可控變量,正向追蹤變量傳遞過程
3) 尋找敏感功能點,通讀功能點代碼
4) 直接通讀全文代碼
一:根據敏感關鍵字回溯參數傳遞過程
根據敏感函數來逆向追蹤參數的傳遞過程,是目前使用得最多的一種方式,因為大多數漏洞是由于函數的使用不當造成的。另外非函數使用不當的漏洞,如 SQL 注入,也有一些特征,比如 Select、 Insert 等,再結合 From 和 Where 等關鍵字,我們就可以判斷這是否是一條 SQL 語句,通過對字元串的識别分析,就能判斷這個 SQL 語句裡面的參數有沒有使用單引号過濾,或者根據我們的經驗來判斷。
像 HTTP 頭裡面的 HTTP_ CLIENT_ IP 和 HTTP_ X_ FORWORDFOR 等擷取到的 IP 位址經常沒有安全過濾就直接拼接到 SQL 語句中,并且由于它們是在$_ SERVER 變量中不受 GPC 的影響,那我們就可以去查找 HTTP_ CLIENT_ IP 和 HTTP_ X_ FORWORDFOR 關鍵字來快速尋找漏洞。