sql注入分類

2021-08-31 01:14:25 字數 1127 閱讀 7731

一般是繞過使用者名稱、密碼,具體方法如下:

已知原始碼sql語句為

select * from table where name='$name' and password='$passwaord'
則可以通過注入 'or 1=1 - - 實現繞過(原理:使where後面的條件恆真)

型別二:

使用union實現注入,例:

已知某登入驗證方式為使用者輸入使用者名稱、密碼,通過從資料庫中提取該使用者名稱對應的密碼與使用者輸入的密碼進行比對來驗證身份。

此時可使用union繞過,即在登入欄輸入使用者名稱和密碼123,在url輸入name=admin' union select 123,加』的目的是讓前乙個查詢為空,執行後乙個查詢,使得密碼驗證成功

原理:使用union 連線兩個查詢,返回兩個結果的並集,要求兩個查詢結果的列數一樣

方法:原理:

當mysql語法錯誤時會把錯誤顯示出來,常用extractvalue()、updatexml()函式

這兩個函式均為查詢函式,有兩個引數,第乙個為要查詢的目標檔案;第二個為查詢的路徑,有嚴格的語法限制,必須是/xx/xx/xx,一旦出錯即報錯,該報錯內容即為我們想要的。

例:

extractvalue(1,concat('~',(select database()))  #報錯內容為~db,db即為要查的內容

updatexml(1,concat('~',(select database()),'~'),1)

有時候,由於~可能被過濾,可以用其十六進製制0x7e代替

用於一位位爆破表名或欄位名

例:name=admin' or ord(substr(dadtabase(),1,1))=116該語句即根據查詢結果的布林值判斷資料庫名的第乙個字元對應的ascii值是否為116,要查詢第

二、第三位字元,即把引數裡第二個引數(第乙個 1)改為2、3,依次猜

name=admin' or if(ord((substr(dadtabase(),1,1))=116),sleep(10),0)
若(ord((substr(dadtabase(),1,1))=116)為真,則延遲10秒,否則為假,不延遲

SQL注入技術 二 注入分類

用到 開啟burp suite 有注入點就帶入注入漏洞進行操作 mysql select username,email from member where id 1 or 1 1 正常sql語句 正常情況下在資料庫中搜尋是這樣的語句 mysql select id,email from member...

sql注入原理 分類 預防

原理 sql注入是因為後台sql語句拼接了使用者輸入的惡意資料,而web應用沒有對輸入的資料合法性進行判斷和過濾。攻擊者可以通過構造不同sql語句來實現對資料庫的任意操控,例如進行增刪改查等操作。分類 一 可分為平台層注入,也就是由不安全的資料庫配置或者資料平台的漏洞所導致,例如mysql有些版本是...

SQL注入學習總結 一 SQL注入的分類

ctf中的sql注入的思路總結 1.拿到題目之後一般是乙個登陸框 大概率盲注或者是報錯,寫指令碼跑 嘗試輸入使用者名稱 admin 和密碼 隨意 檢視其返回結果這裡一般又分為兩種 有返回是密碼錯誤還是使用者名稱錯誤 只是單一的返回登陸失敗 對於第一種情況就可以直接嘗試在username之後輸入pay...