waf過濾了危險字串 SQL注入繞過WAF 下

2021-10-12 00:09:50 字數 1994 閱讀 3733

6.特殊符號

特殊字元是什麼?除了字串和數字都是特殊字元  比如~!@#¥%…………&*()—

烏雲的一篇waf繞過技巧的文章的幾個例子

1.使用反引號`,例如select`version()`,可以用來過正則跟空格,特殊情況下還可以把它當成注釋符來用

2.神奇的"- .", select id-1 1.from users; " "是用於字串鏈結的,"-"和"."在此也用於連線,可以逃過空格和關鍵字過濾

3.@符號,select@……1.from users; @用於變數定義如@var_name,乙個@表示使用者定義,@@表示系統變數

4.mysql function() as *** 也可不用as和空格   select-count(id)test from users; //繞過空格限制

7.http引數控制

這種方法是http分割注入,使用控制字元 , 執行換行

也是比較好使的一種方法,

舉個栗子: 77169.com/?id=1 union/*&b=*/select 1,user/*&c=*/from users--

這裡是不同的引數之間進行分割,到了資料庫執行查詢時再合併語句

8.緩衝區溢位

緩衝區溢位用於對waf,有不少waf是c寫的,而c語言本身沒有緩衝區保護機制,因此如果waf在處理測試量時超出其緩衝區長度,就會引發bug從而實現繞過

舉個栗子: ?id=1 and(select 1)=(select 0xa*1000) union select 1,2,version(),4,5,database(),version(),8,9,10,11,12,13,14,15,16,17,18

栗子上的 0xa*1000  指的是0xa後面的 "a" 重複1000次,一般來說對應用軟體構成緩衝區溢位都需要比較大的測試長度,這裡1000僅供參考,在一些情況下也可以更短

9.番外篇-嘮嗑

這裡也就簡單嘮嗑一下,繞waf其實也是很多人比較頭疼的一件事情,當然以前我也很頭疼,其實當你摸清了waf你就會發現,原來可以這樣操作,

像我們搞滲透,為什麼去做繞waf這個操作,簡單來講 就相當於乙個客戶的site 一堆漏洞,當他裝了乙個waf就說沒有漏洞了,你覺得這樣行得通嗎?

這樣肯定是不行的,因為這種是欺騙自己,如果惡意黑客繞過了你的waf利用你的漏洞造成了業務資料的洩露或者損失財產,那後果是不可估量的!

我們繞waf只是為了對客戶的負責,能讓他們重視起來程式自身的安全,如果程式自身的安全無法做到,那麼就別去指望外殼去保護它,因為如果哪天外殼沒有了,那你也將是惡意黑客下的一枚shell。

其實我這裡講的比較籠統,具體操作一定要去根據實際情況去判斷,去整合下再選擇去進行繞過測試,如果你覺得繞waf很難,那先去搭建乙個waf嘗試下被攔截的感覺

當然你也可以當waf是根據你的關鍵字進行過濾的(規則模組) 

打個比方 select    waf會提前匹配規則,如果符合了規則模組的過濾,那麼將被攔截  但是你這個時候再去試著 s/**/e/**/l/**/e/**/c/**/t 看看這樣是否會被攔截

如果沒有被攔截 那麼就印證了我們說的  是根據你的關鍵字來進行過濾的,我們所做的 只是讓waf認不出我們的關鍵字就可以了

10.繞過總結

其實這個是不用寫的,但是我還是寫了,因為繞過很多時候url雙重編碼或者其他編碼方式不一定繞過,我們可以採用組合繞過方式,比如先大小寫混合,再同等函式替換 再編碼去試試看

不要刻意的去指望一種方法繞過,我這幾篇文章也只是簡單寫寫的,也體現了繞過方式的核心  模糊關鍵字  這樣對方將無法認出你的關鍵字

這裡只是每種方式簡單說了一種

過濾危險字元,字元轉碼,處理字串中的空值

public class chstr else catch exception e return strvalue 返回轉換後的輸 入變數strvalue 處理字串中的空值 public static final string nulltostring string v,string tov ret...

字串過濾

這個我這裡自己一直用的幾個函式,下面貼出來。希望盡量不是直接要例項就去用,而不關心他本來的意義和實現思路等。加油!using system using system.collections.generic using system.text using system.text.regularexpr...

swift 過濾字串 Swift 字串

swift 字串 swift 字串是一系列字元的集合。例如 hello,world 這樣的有序的字元型別的值的集合,它的資料型別為 string。建立字串 你可以通過使用字串字面量或 string 類的例項來建立乙個字串 import cocoa 使用字串字面量 var stringa hello,...