1. 程式人生 > >SQL注入漏洞筆記

SQL注入漏洞筆記


一:注入原理
SQL注入是一種常見的Web安全漏洞,攻擊者利用這個問題,可以訪問或修改資料,或者利用潛在的資料庫漏洞進行攻擊
SQL注入是一種將SQL語句插入或天機到應用(使用者)的輸入引數中的攻擊,之後再將這些引數傳遞給後臺的SQL伺服器加以解析並執行

常見的web架構
表示層 :訪問網址 邏輯層:載入,變異並執行指令碼 儲存層:執行SQL

那裡存在SQL注入
GET
POST
HTTP頭部注入
Cookie注入
任何客戶端可控,傳遞到伺服器的變數

漏洞原理
1.成語編寫著在處理程式和資料庫互動時,使用字串評級的方式構造SQL語句
2.未對使用者可控引數進行足夠的過濾邊疆引數內容坪街道SQL語句中

漏洞危害
攻擊者利用SQL注入漏洞 可以獲取多種資訊
管理員後臺密碼,脫庫 修改資料庫內容,插入內容到資料庫
如果資料庫許可權分配存在問題 或者資料庫本身存在缺陷 那麼可以直接獲取webshell或者伺服器系統許可權

SQL注入的分類

根據SQL資料型別分類
整形注入
字串型別注入

根據注入的語法分類
可聯合查詢注入
報錯型注入
布林型注入
寄予時間延遲注入
可多語句查尋注入

判斷注入
and 1=1 /and 1=2 會顯頁面不同(整形判斷)
單引號判斷' 線束資料庫錯誤資訊或者頁面回顯不同(整形,字串型別判斷)
\(轉義符)
-1/+1 回西安下一個或者上一個頁面(整形判斷)
and sleep(5)判斷頁面返回時間

SQL3種註釋風格
#(url編碼為%23)
-- (--後面要根上一個或者多個空格)
/*......*/  多行註釋
/*!.....*/  內斂註釋