黑客攻擊常用的代碼是什么?
現在市面上最流行的攻擊手法是什么,自然是SQL Injection了,中文叫數據庫注入。
隨著B/S模式應用開發(fā)的發(fā)展,使用這種模式編寫應用程序的程序員也越來越多。但是由于程序員的水平及經驗也參差不齊,相當大一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據,這就是所謂的SQL Injection,即SQL注入。
如何手工檢測網站有此漏洞呢?假設網站的URL是http://url/list.php?id=1,哪么提交簡單的and 1=1--或是and 1=2來檢測。
http://url/list.php?id=1 and 1=1--
http://url/list.php?id=1 and 1=2--
and 在數據庫語法中,邏輯為“和”,1=1永遠又是真的,所以
http://url/list.php?id=1 and 1=1--會網站頁面不變,如果網站有漏洞的話,哪么
http://url/list.php?id=1 and 1=2--頁面就會有變化。
市面上所有的注射工具,例如sqlmap,它的error-based、stacked queries、AND/OR time-based blind和UNION query的PAYLOAD等注射判斷基本也是依據此方法。
同時今天看到一個很有意思評論:
據說車牌掛這個代碼,可以刪除交警的視屏錄像數據庫。使用drop 語句確實可以刪除數據庫或表,但是現在的程序都是需要開啟預處理的,錯誤及非法詞語程序是不讀取的。開啟預處理現在都是最基本的寫法,沒有經過處理的代碼是不安全的。