一、不同注入類型
實際:我們未知sql是哪種類型,只能靠試/使用sql工具
原理:閉合程序員寫的sql語句,并且執行我們所需要的sql語句,最后將閉合后多余的 ' 用--+ 或者#注釋掉。 總結一下就是先閉合,后注釋。
共四種類型
下面簡單演示一下構造方法,每個類型都是判斷到回顯位數就停了,因為后面拿信息構造都是一樣的閉合注釋方法。
1)數字型
id=1 order by 5
2)字符型
id=1' order by 7 --+? ? ? ?注釋:# 和 --+都試試
3)搜索型
id=abc%' order by 7 --+
4)框架型
id = ('$id')
id=1') order by 7 --+
如果是 (id ='$id')?
id=1') order by 7 --+
二、不同注入點
注入點位置:get、post、http頭(ua、cookie、xff)
get:就是我們之前直接在url中寫的
post:bp抓包,寫入,注入,放包,看結果。
http頭:多種,后續會講。
1)get
就是我們之前一直在測的,直接在url上進行注入
2)post
bp抓,注入,放包,看結果。
3)http頭
現在只需要知道,與UA、XFF、Cookie、Referer這些(HTTP頭)均有可能是注入點。
實例:
如果是用
HTTP_X_FORWARDED_FOR??????去獲取ip就可以嘗試xff注入
55min 判斷ip是否在數據庫內
1h01? ip寫死在代碼
三、不同注入類型
加密
原理:將數據以站點加密方式傳輸。?
方法:也是一樣的,去猜哪種注入類型,先閉合后注釋,只不過是需要加密一下傳輸進去。
以base64為例,看到mq想到base64加密。
用自己搭建的php站點測試。
json
原理:將數據以json格式傳輸,如{username:? password:}
方法:抓包,將payload寫在json數據包中,遵循原則同上。