WAF繞過之道

託帕發表於2018-07-30

1. 大小寫混合

    原因:伺服器端檢測時未開啟大小寫不敏感 形式:UnIon SeLecT

2. 多重關鍵字

   原因:伺服器端檢測到敏感字元時替換為空 形式:ununionion selselectect

3. 編碼

   原因:伺服器端未檢測或檢測不嚴具有編碼形式的關鍵字 型別:十六進位制編碼、URL編碼、Unicode編碼 形式:0x61646d696e、%20、%u0020

4. 註釋

   原因:伺服器端未檢測或檢測不嚴註釋內的字串 形式:/**/,/*!*/,/*!12345*/,#,-- -等

5. 等價函式或命令

   原因:伺服器端黑名單不完整,過濾不嚴 形式: Mysql查詢:Union distinct、updatexml、Extractvalue、floor 字串擷取函式:mid、substr、substring、left、reverse 字串連線函式:concat、group_concat、concat_ws 字串轉換:char、hex、unhex 替換逗號:limit 1 offset 0,mid(version() from 1 for 1) 替換等號:like


6. 特殊符號

   原因:資料庫中效果相同,伺服器端卻沒有限制 形式: 科學記數法 and 1e0 = 1e0 空白字元 %0a %a0 %0b %20 %09 反單引號 `table_name` 括號 select * from (test.admin)

7. 組合繞過

   原因:伺服器端檢測多處位置,需要多重繞過方式組合使用 形式:id = 1’ and/**/’1’like’2’/**//*!12345union*/select 1,2,3

相關文章