1. 程式人生 > 實用技巧 >SQL注入在比賽中的應用

SQL注入在比賽中的應用

SQL注入在比賽中的應用

什麼是SQL注入?

在這裡插入圖片描述

mysql注入的幾種型別

字元型注入

在這裡插入圖片描述
在name裡輸入加一個 ’ 來閉合第四行的 ‘ ,通過聯合查詢獲得更多資訊

數字型注入

在這裡插入圖片描述

使用單引號保護並過濾內容

在這裡插入圖片描述

布林型盲注

在這裡插入圖片描述
id = 1’ 無回顯
id = 1’ and ‘1’=‘1 回顯

id = 1’ and ‘1’='2 無回顯
盲注用到的幾個函式:
在這裡插入圖片描述
通過二分法最後確認長度為8

在這裡插入圖片描述
利用substr函式與ascii函式構造猜測資料庫名ascii碼的值得語句,因為現在只知道長度不知道具體內容
在這裡插入圖片描述通過二分法確認第一字母的ascii為115
在這裡插入圖片描述
猜表名
在這裡插入圖片描述
猜列名

基於時間盲注

在這裡插入圖片描述
通過設定sleep函式的數值,如果設定的數字數值越大,返回時間越慢,說明存在時間注入漏洞

寬位元組注入

發生位置:php傳送請求到mysql時字符集使用charactersetclient設定值進行了一次編碼

在這裡插入圖片描述
修復:將字符集設定為utf-8

二次編碼注入

在這裡插入圖片描述

其他

magic_quotes_gpc

當該選項被設定為ON,所有的

為什麼這個安全專案被關閉?

在這裡插入圖片描述

缺陷

在這裡插入圖片描述

變數編碼解碼

stripslashes()這個其實就是decode-addslashes()
其他字串轉換函式
在這裡插入圖片描述

例:
在這裡插入圖片描述
當magic_quotes_gpc=on時,
提交?id=%2527,可以繞過(因為裡邊沒有特殊字元)
得到sql語句為
SELECT * FROM article WHERE arcticleid=‘’’

二次攻擊

與二次編碼不同
特點:
在這裡插入圖片描述
資料庫出來的變數沒有進行過濾
資料庫轉義符合:
mysql/oracle轉義符合同樣是
提交‘通過魔術引號變化為\’,當update進入資料庫時,通過反轉義重新變為‘,
mssql的轉義字元為‘
提交‘通過魔術引號變化為\’,mssql會把它當為一個字串直接處理

魔術引號帶來的新型攻擊

“\”符號不僅僅是轉義符合,在WIN系統下也是目錄轉跳的符號。
這個特點可能導致php應用程式產生一些漏洞
在這裡插入圖片描述

magic_quotes_runtime

在這裡插入圖片描述
資料庫查詢檔案和檔案讀取函式

magic_quotes_sybase

在這裡插入圖片描述

自動化注入

用sqlmap的tamper指令碼unmagicquotes.py
python sqlmap.py -u “http://wargame.kr:8080/SimpleBoard/read.php?idx=1’–tamper"unmagicquotes.py” -batch