sql注入就是指當web使用者向後台資料庫傳遞結構化查詢語句時,如果影響了資料庫的執行能力則構成sql注入
例子:
$sql="select * from news where id=$_get['id']";
由於以上**的引數id可控,並且可以帶入資料庫執行,所以可以任意拼接字串進行攻擊。
一般分為數字型注入,字元型注入,區別在於閉合問題,當然還有一些常見的注入分類。
如:post注入,cookie注入,延時注入,收索型注入,報錯注入等,只是注入的位置不同。
1.使用者引數可控。
2.傳入的引數可以拼接到sql語句,並帶入資料庫執行。
如過沒有對引數進行過濾的話 id=1 在資料庫中是這樣執行的
select * from news where id=1;
如 id=1 and 1=1
select * from news where id=1 and 1=1;
因為1=1為真,所以頁面會返回與id=1的結果相同
如果傳入的id=1 and 1=2
select * from news where id=1 and 1=2;
因為1=2為假,所以會返回與id=1的結果不同
以上只是簡單介紹了下數字型的注入,不用考慮閉合問題,後續內容會更深入!
SQL注入(三) sql注入 bugku
原理 mysql 在使用 gbk 編碼的時候,會認為兩個字元為乙個漢字,例如 aa 5c 就是乙個 漢字 前乙個 ascii碼大於 128 才能到漢字的範圍 我們在過濾 的時候,往往利用的思 路是將 轉換為 換的函式或者思路會在每一關遇到的時候介紹 因此我們在此想辦法將 前面新增的 除掉,一般有兩種...
SQL注入 報錯注入
乙個帶get引數的 並且不從資料庫返回資料,但存在報錯資訊 檢視字段情況 報錯注入語句格式 and 1 2 union select1,2,3 from select count concat floor rand 0 2 sql語句 a from information schema.tables...
SQL注入 報錯注入
sql注入基礎 盲注 用於注入結果無回顯但錯誤資訊有輸出的情況 floor函式 返回小於等於某值的整數,例如floor 1 則返回1,floor 1.9 也返回1 rand函式 生成隨機數.可指定seed,指定後每次生成的數都一樣即偽隨機,不指定seed則每次生成的隨機數都不一樣.通過floor和r...