sql注入繞過防禦

2022-09-15 03:54:16 字數 2208 閱讀 8887

無waf方式已經在漏洞重溫sql注入中有描述,這裡就不多做贅述,有興趣的朋友可以去看看。

內聯注釋

簡單理解

在進行演示之前,首先了解一下內聯注釋。內聯注釋通常用於繞過**安全狗,也就是俗稱的過狗。簡單來說,如果waf攔截的特徵是兩個關鍵字連線在一起,例如我們在判斷顯示位置時使用的order by,在聯合查詢的時候使用的union select。當著些關鍵字聯合出現的時候,就會被waf發現,並且攔截。在這個時候,如果我們測試出單個不被攔截的關鍵字,然後利用內聯注釋將聯用會被攔截的關鍵字隔開,就可以完成繞過。

簡單來說,就是在本來應該加空格的地方使用內聯注釋(/特殊字元/)來代替,就可以過狗。

靶機環境演示

這裡我選擇的環境是sqli-labs

可以看到,這裡在測試sql注入的時候,我使用了order by判斷回顯字元

根據報錯頁面,可以看出**使用了waf,並且對我們進行注入的關鍵字進行了封堵。這個時候,我們就可以測試,waf攔截的是聯合字元,還是別的特徵。

所以這裡我們分別測試,order 、by單獨輸入是否會被攔截。

可以看到,單獨輸入order和單獨輸入by都不會被攔截,所以我們可以使用內聯注釋的方法來繞過**的防禦。

使用命令:

可以看到,簡單的/**/也會被**攔截,我們需要在注釋裡面填寫一些特殊字元,來繞過安全狗。這裡,我們可以使用burp進行爆破。

首先我們先抓取對**的請求,然後將注釋內部設定為變數。

設定特殊字符集,進行爆破。

找到可以讓**返回正常的payload,利用payload進行sql注入攻擊。

利用burp跑出來的payload,我們就可以成功完成注入

然後就是跑資料的過程了

這裡可以發現,在我們跑資料庫名稱的時候,又被**攔截了,因為前面我們基本上是每個字元中間都使用內聯注釋隔開的,所以問題應該出現函式database()上。所以我們可以在database和()之間再追加乙個內聯注釋。

隨後,我們就可以使用正常手段進行注入了。但是要注意,在一些注入常用關鍵字的位置,一定要使用內聯注釋隔開,以防備資料庫攔截。

分塊傳輸

簡單理解

簡單來講,分塊傳輸就是講資料切分成幾部分,進行輸入,然後在資料報中的表現形式為切分成幾行。在這幾行中,每一行真實資料的前面都會帶上乙個資料,標識這一行資料的長度。在這些資料的後面,我們可以加分號,然後在分號後面新增隨機字元來繞過防禦。

分塊傳輸編碼是http中的一種資料傳輸機制,

允許http由應用伺服器傳送給客戶端應用的資料可以分成多個部分。分塊傳輸編碼只在http協議1.1版本(http/1.1)中提供。利用的話,假設說我要在資料報裡輸入id=1在資料報裡就可以寫成,2換行id換行2換行=1,這裡的兩個2表示換行之後字元的個數,在2後面跟乙個分號,然後在後面隨意輸入字元,就能騙過waf,現在burp也有分塊傳輸的外掛程式。

mysql注入轉義繞過 SQL注入防禦繞過

一 寬位元組注入 1 什麼是寬位元組 gb2312 gbk gb18030 big5等這些都是常說的寬位元組,實際為兩位元組 2 寬位元組注入原理 防禦 將 轉換為 繞過 將 消滅 mysql在使用gbk編碼的時候,會認為兩個字元為乙個漢字 編碼為 5c 編碼為 27 df 5c mysql會認為是...

sql繞過注入

sql繞過注入我推薦在 這個官網上學習 下面是我在這個官網學習的乙個過程 order by 猜數字 union select 1,2,3,4,5,6,7,8,9,10 form admin 在這裡會報錯 因為需要繞過才能注入。因此需要在 上載入外掛程式 cookie 或者 modheader 都可以...

mysql手工注入繞過 sql注入繞過WAF

這幾天的ctf題中有好幾道題都是sql注入的,但都存在waf需要繞過,於是整理了一些常見的繞過waf注入的方法。在現實sql注入中我們也常常碰到waf,那麼掌握常見的繞過很有必要。0x01 手工注入繞過 1 大小寫混合例如 union select 1,2,3,4 只適用於針對大小寫關鍵字的匹配 2...