SQL注入在比賽中的應用
SQL注入在比賽中的應用
什麼是SQL注入?
mysql注入的幾種型別
字元型注入
在name裡輸入加一個 ’ 來閉合第四行的 ‘ ,通過聯合查詢獲得更多資訊
數字型注入
使用單引號保護並過濾內容
布林型盲注
id = 1’ 無回顯
id = 1’ and ‘1’=‘1 回顯
盲注用到的幾個函式:
通過二分法最後確認長度為8
利用substr函式與ascii函式構造猜測資料庫名ascii碼的值得語句,因為現在只知道長度不知道具體內容
通過二分法確認第一字母的ascii為115
猜表名
猜列名
基於時間盲注
通過設定sleep函式的數值,如果設定的數字數值越大,返回時間越慢,說明存在時間注入漏洞
寬位元組注入
發生位置:php傳送請求到mysql時字符集使用charactersetclient設定值進行了一次編碼
修復:將字符集設定為utf-8
二次編碼注入
其他
magic_quotes_gpc
為什麼這個安全專案被關閉?
缺陷
變數編碼解碼
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