Pikachu-SQL注入之數字型注入和字符型注入


開始我們的實驗

數字型注入                  

 

發現有一個下拉框,隨便選一個查詢,,並沒有在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編碼

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM