DWVA手把手教程(四)——SQL註入(Post)
前言
一開始讓我寫Post方法實現Sql註入我是拒絕的
可是無奈之前已經許諾過了
雖然post方法註入相對簡單
但是我還是想在此總結出更多的post註入方法與思路
雖然DWVA中並沒有post註入
但因為屬於基礎課程我把內容並入到了DWVA教程中
總的來講post註入主要有2+1種方式,
然而在此給出全網獨家內容,滿滿幹貨。
唉,為什麽是2+1?
(一)配合burp suite抓包註入
思路:借助burpsuite抓取post包,存為post.txt文件
直接 sqlmap -r post.txt
開始進行註入測試
(二)自動搜索表單
sqlmap.py -u URL --forms
官方:--forms : Parse and test forms on target URL
其實自動搜索表單操作即使用sqlmap自帶的抓包功能代替burpsuite功能
一旦發現post包,會收到提示:do you want to test this form? [Y/n/q]
回車(Y)後,會自動利用選擇的post包進行註入測試
(三)幹貨:參數-p / --data ?
-p參數 官方:-p : TESTPARAMETER Testable parameter(s)
-p功能與--skip功能對立,sqlmap默認測試所有的GET和POST參數,當--level的值大於等於2的時候也會測試HTTP Cookie頭的值,當大於等於3的時候也會測試User-Agent和HTTP Referer頭的值。但是你可以手動用-p參數設置想要測試的參數。例如: -p "id,user-anget",當你使用--level的值很大但是有個別參數不想測試的時候可以使用--skip參數。例如:--skip="user-angent.referer"
也就是說-p參數適用與一切參數指定的情況,並可-p "a,b"同時指定多個參數。
示例:
sqlmap -r post.txt -p "a,b"
sqlmap -u url -p "a,b"
註意此處參數不需賦值
--data=DATA 參數 官方:--data=DATA : Data string to be sent through POST (通過POST 發送數據字符串)
此參數是把數據以POST方式提交,sqlmap會像檢測GET參數一樣檢測POST的參數。
也就是說該參數只能用於post方式的註入漏洞中。
示例:
sqlmap -u url --data="a=1,b=1"
註意此處參數需要賦值
那麽!!!拆臺的也差不多該上了。。。。
咳咳,很明顯-p參數的泛用性和使用難度上都優於--data參數,
那麽--data參數存在的意義呢?
幹貨繼續~
在我們的滲透測試工作中,偶爾會碰上-r 參數沒有跑出來的情況
當然,--forms參數一樣會是失敗的,
我們前面講過了,這兩種方式原理是一樣的,只是獲取包途徑不同
我們仔細觀察下Post包中的參數
就會發現參數類型也是有所區分的
第一種body:
參數1=value1&參數2=value2.....
這是類型便是我們常見的類型,-r / --forms 參數都可以正常解決
第二張body:
--c7eb38bf-7ea1-4fbc-836a-47ceafdfd30a Content-Disposition: form-data; name="page" Content-Length: 1 1 --c7eb38bf-7ea1-4fbc-836a-47ceafdfd30a Content-Disposition: form-data; name="search" Content-Length: 1 qqqqq --c7eb38bf-7ea1-4fbc-836a-47ceafdfd30a-- 這種類型就需要sqlmap -u url --data="name=value"的方式解決 ------------------------------------------------------------------------------------------------------------- 咳咳,關於代碼層的解釋,給我一點時間 歡迎各位小夥伴與我討論。。。。。。 花費一天的時間確認小細節, 只想為大家提供一點真真切切的幹貨 在此感謝組織的小夥伴們:Parrot Security
我可以弱弱的丟個個人微信公眾號麽,粉絲太少一直沒有寫作激情,
如果你們喜歡技術,喜歡parrotsec,喜歡二次元,期待認識大家。
才不是什麽蘿莉控,只是喜歡的女孩紙碰巧是蘿莉罷了,哼~
DWVA手把手教程(四)——SQL註入(Post)