sql註入教程之類型以及提交註入
參數類型
這裡說的參數是源碼中存在註入的地方。
其中參數類型有:數字、字符、搜索、json等。
其中sql語句幹擾符號有:’,”,%,),}等,過濾首先考慮閉合這些符號,再進行註入測試。
例如php中的代碼:
$name = $_GET['x'] $sql = "select * from user where name='$name'";
請求時:
http://www.xxx.com/x.php?id=xxx and 1=1 返回sql語句: select * from user where name='xxx and 1=1' 過濾方法: http://www.xxx.com/x.php?id='xxx and '1'='1
許多網站有搜索功能,其搜索框可能存 在註入點,註入時需閉合%。
sql中的搜索:
select *from user where name like '%參數%';
明確請求方法
請求方法有:GET、POST、COOKIE、REQUEST、HTTP頭等
GET請求:通過url直接請求
POST請求:通過請求正文進行請求
COOKIE:cookie屬於請求頭部分,有些網站可通過cookie請求的數據進行註入
REQUEST請求:既可以通過GET請求,也可以通過POST請求
HTTP頭:HTTP請求頭域中有些參數值可能存在可以訪問服務器中數據庫中某些信息,可能存在註入
1.GET請求
sqlilabs第5關:
提交無反應,說明參數有有東西,查看源碼
發現參數用單引號括起來瞭,需要閉合。
提交無反應,說明是無回顯註入,暫時介紹到這裡,後續在講無回顯註入方法。
sqlilabs第6關
第六關仍是無回顯
查看源碼
發現參數用雙引號括起來的,要過濾雙引號
2.POST請求
sqlilabs第11關
抓個包試試:
是post請求方法,直接構造post請求方法進行註入
3.COOKIE註入
sqlilabs第20關
被轉義,嘗試cooki註入:
測試可行。
4.http頭註入
sqlilab第18關
顯示ip和User Agent,通過分析源碼,這裡對uname和passwd參數進行瞭處理,但是還有兩個新的全局變量可控,ip和user-agent:
修改User-Agent內容為xxx,發包:
通過修改User-Agent進行報錯註入:
總結
到此這篇關於sql註入教程之類型以及提交註入的文章就介紹到這瞭,更多相關sql註入類型及提交內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 詳細講解HTTP協議工作方式
- python爬蟲基礎之urllib的使用
- Flask request 對象詳情
- 圖文詳解HTTP頭中的SQL註入
- 還在手動蓋樓抽獎?教你用Python實現自動評論蓋樓抽獎(一)