Pikachu SQL注入之數字型注入和字元型注入

2022-08-21 00:48:08 字數 1283 閱讀 2569

開始我們的實驗

數字型注入

發現有乙個下拉框,隨便選乙個查詢,,並沒有在url裡面去傳參,可以發現是用post(表單)方式提交的

根據上圖yy一下後台的邏輯:

$id = $_post['id']

select 欄位1,欄位2 from 表名 where id = $id  

正常情況下這裡的$id值為(1~6),我們換成 1 or 1=1通過返回來看看後台會不會把這個邏輯去執行。

post的請求我們需要抓包來測試,因為輸入框只有乙個可選擇的表單,沒法直接構造語句

在輸入框選擇id,瀏覽器設定**,提交,抓包,為了方便傳送給repeater模組

根據剛才的邏輯,payload為:

可以發現除啦id=1的其他id也都返回出來啦

字元型注入                      

隨便輸入下,發現請求是通過url提交的,是乙個get請求。

根據上圖返回yy下後台的邏輯

$uname=$_get['kobe']

select 欄位1,欄位2 from 表名 where username='kobe';(在後台資料庫中字串kobe不打單引號會報錯的)

構建payload

如果這個 kobe or 1=1  這樣會報錯的,因為會變成這樣,select 欄位1,欄位2 from 表名 where username='kobe or 1=1'

會被單引號處理掉,這個整體會被當做字串,,而這個字串在後台是不存在的。我們需要構造閉合,構造合法的sql語句

kobe' or 1=1#'kobe' 把後台username前面的單引號閉合掉,#'或者--  '    把後台username後面的單引號閉合掉

如果想直接在url裡面提交的話,我們的payload要做url編碼

注入攻擊之sql注入

在1998年,一位名為rfp的黑客發表了一篇題為 nt web technology vulnerabilities 的文章 注入攻擊的兩個條件 1 使用者能夠克制資料的輸入 在這裡,使用者能夠控制變數 2 原本要執行的 憑藉了使用者的輸入 一般輸入乙個 單引號就能引起執行查詢語句的語法錯誤,有些伺...

SQL注入之報錯注入

固定語句公式 union select 1 from select count concat floor rand 0 2 注入爆資料語句 a from information schema.tables group by a b 假如id輸入存在注入的話,可以通過如下語句進行報錯。mysql se...

SQL注入之報錯注入

0x01 報錯注入 在實際場景中,沒有乙個資料的返回資訊點。此時需要用報錯注入使其顯示出注入資訊。使用到報錯注入的場景有 普通報錯注入,即沒有資料返回點 insert注入 update注入 delete注入 0x02 常用到的兩個報錯函式 updatexml 和extractvalue 函式 0x0...