如何通過濫用SSL TLS繞過Web應用程式防火牆

2021-08-21 13:01:35 字數 3945 閱讀 2878

近些年來,web安全已經逐漸變成了it安全領域裡非常重要的乙個部分。web應用的優勢就在於開發人員可以在較短的時間內整合各種關鍵服務,而且 維護難度也比傳統的桌面端應用程式要低很多。除了設計新的web標準之外,企業對web應用的安全需求也在不斷變化。在這篇文章中,我們將跟大家介紹一種 針對防火牆的新型繞過技術。

近期,我對某公司的網路防火牆進行了測試,該公司所部署的基礎設施架構如下:

當我拿到我所需要的資料資訊之後,我打算嘗試一些不同的繞過方法來對其基礎設施進行滲透測試。除了一些常規的waf測試方法之外,我準備利用ssl cypher來繞過waf。當我第一次登入waf時,系統彈出了乙個「unsupported ssl ciphers」警告資訊,這就非常有意思了,檢視了詳細的產品文件之後,我獲取到了該裝置支援的所有ssl cypher,但是在開始之前我想跟大家簡單介紹一下ssl連線的工作機制。

ssl握手由下面三個主要步驟組成:

握手過程由客戶端傳送的clienthello訊息開始,這條訊息包含了伺服器端需要的全部資訊。伺服器端受到連線訊息之後會響應一條 serverhello訊息,其中包含了客戶端所需要的資訊。除此之外,伺服器還會返回需要使用到的相關cypher套件版本以及ssl版本。

連線初始化完成之後,伺服器需要向客戶端提供身份驗證資訊,伺服器會給客戶端傳送ssl證書,客戶端會驗證證書的真實性,並確定是否可以信任該證書,然後繼續完成連線。

此時安全通道以建立成功,伺服器和客戶端會交換用於加密和解密資料的金鑰。

我的攻擊思路如下:如果我使用乙個「不被waf支援」的ssl cypher來跟目標web伺服器進行初始化連線,而這個web伺服器實際上是支援這個cypher版本的,那麼waf就無法識別我所進行的攻擊了,因為它無法檢視到真實的請求資料。

ssl_rsa_with_null_md5ssl_rsa_with_null_shassl_rsa_with_rc4_128_md5ssl_rsa_with_rc4_128_shassl_rsa_with_des_cbc_sha

ssl_rsa_with_3des_ede_cbc_sha

ssl_rsa_export_with_rc4_40_md5

ssl_rsa_export_with_des40_cbc_sha

tls_rsa_with_null_sha256tls_rsa_with_aes_128_cbc_shatls_rsa_with_aes_256_cbc_shatls_rsa_export1024_with_rc4_56_md5tls_rsa_export1024_with_rc4_56_sha

tls_rsa_with_aes_128_cbc_sha256

tls_rsa_with_aes_256_cbc_sha256

tls_rsa_with_rc4_128_md5=

tls_rsa_with_rc4_128_sha=

tls_rsa_with_des_cbc_sha=

接下來要做的就是識別目標web伺服器所支援的ssl cypher了,這一步有很多種方法可以實現,但我選擇利用sslscan這款工具,因為它安裝起來比較簡單,而且還可以提供非常多的詳細資料。

上述命令可以列舉出目標web伺服器支援的所有ssl/tls版本以及cypher。通過將sslscan的掃瞄結果與產品文件資料進行對比之後,我發現了web應用防火牆不支援但web伺服器支援的cypher:

accepted tlsv1 256 bits ecdhe-rsa-aes256-sha
為了測試我的攻擊思路是否正確,我建立了一條waf規則,它會遮蔽請求路徑為/ssl-cipher-test的網路請求。

訪問這條路徑之後,連線便會被成功遮蔽:

利用這種繞過技術的最快方法就是指定客戶端所使用的cypher,只留下乙個就可以了。你可以利用curl的「—ciphers」命令來指定需要使用的cypher,這裡我指定使用ecdhe-rsa-aes256-sha:

pwn@thinkpad:~$curl --ciphers ecdhe-rsa-aes256-shahellobypass workedpwn@thinkpad:~$

大家可以從響應資訊中看到,我們已經成功繞過了web應用防火牆。

其實在發布這篇文章之前,我的主要目標是想開發一款能夠掃瞄出目標應用所支援的全部cypher的掃瞄工具,並查詢出乙個能夠幫助繞過waf的 cypher,然後我們就可以利用*****來**所有關於目標cypher的請求了。由於這還需要我花費很多時間,所以我現在還沒有完成,不過當我開發 出來之後我會第一時間開源給大家。

1.2.

3.

這9種方式可以繞過Web應用程式防火牆

web應用程式防火牆 waf 的主要作用是過濾,監控和阻止各類進出web應用程式的http流量。waf區別於常規防火牆,因為waf能夠過濾特定web應用程式的內容,而常規防火牆充當的則是伺服器之間的安全門。通過檢查http流量,它可以防止源自web應用安全漏洞的攻擊,如sql注入,xss,檔案包含和...

Mac電腦如何通過終端隱藏應用程式?

在我們使用mac電腦的時候難免會遇到想要不想看到某個應用程式又不想解除安裝它們。值得慶幸的是,macos具有一些強大的檔案管理功能,允許使用者輕鬆隱藏 以及稍後顯示 檔案甚至應用程式。那麼,mac電腦如何通過終端隱藏應用程式?特別注意 要隱藏或以其他方式修改這些受保護的應用程式和檔案,您需要至少暫時...

web應用如何做高可用 Web應用程式的高可用性

web應用如何做高可用 隨著越來越多的關鍵任務應用程式遷移到雲中,使應用程式具有高可用性變得至關重要。由於某種原因無法使用的應用程式,web伺服器關閉,資料庫關閉等都意味著使用者損失,收入損失,這可能對您的企業造成毀滅性的影響。在此部落格中,我們研究了一些基本的高可用性概念。可用性意味著您的使用者可...