注入全方位利用-SQL注入的原理分析php
1、SQL注入本質sql
談到SQL注入前咱們先談談什麼是注入數據庫
注入攻擊的本質,是把用戶輸入的數據當作代碼執行。服務器
這裏有兩個關鍵條件:函數
第一個是用戶可以控制輸入測試
第二個是本來程序要執行的代碼,拼接了用戶輸入的數據spa
那什麼是SQL注入,就是針對SQL語句的注入,也能夠理解爲用戶輸入的數據當作SQL語句的代碼執行了blog
SQL注入是1998年一名叫作rfp的黑客發表的一篇文章所進入大衆視線的原理
2、分析注入方法程序
顯錯注入-聯合查詢(Mysql數據庫)的基本流程
判斷注入點
最古老的方法: and 1=1 頁面正常
and 1=2 頁面不正常
最簡單的方法: 頁面後面加',看是否報錯
還有一種方法: 嘗試在語句末尾加註釋,若是頁面不變可能存在注入(不太準確)
若是是數字型傳參,能夠嘗試+1 -1
例如:
http://www.xxx.com/new.php?id=1 頁面顯示id=1的新聞
http://www.xxx.com/new.php?id=1+1 頁面顯示id=2的新聞
and 1=1 and 1=2 被攔截的可能性過高了
能夠嘗試 and -1=-1 and -1=-2
或者直接 or sleep(5)
MYSQL注入
MYSQL注入(二)
滲透測試經常使用函數
GROUP_CONCAT(col) 返回由屬於一組的列值鏈接組合而成的結果
ASCII(char) 返回字符的ASCII碼值
DATABASE() 返回當前數據庫名
USER()或SYSTEM_USER() 返回當前登錄用戶名
VERSION() 返回MySQL服務器的版本
SLEEP(n) 休眠n秒