利用SSL/TLS绕过web应用防火墙

2018-08-25  本文已影响0人  icingFire

众所周知的SSL/TLS握手过程:

图1 SSL/TLS握手

如上图1所示,server和client之间需要协商加密套件,如果client支持的加密套件不在server支持的范围内就无法正常工作。那么,如果client<--->server支持的加密套件超出waf支持的范围,waf能拒绝吗?

根据waf的文档,支持的SSL加密套件如下:

SSLv3

SSL_RSA_WITH_NULL_MD5

SSL_RSA_WITH_NULL_SHA

SSL_RSA_WITH_RC4_128_MD5

SSL_RSA_WITH_RC4_128_SHA

SSL_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/1.0-1.2

TLS_RSA_WITH_NULL_SHA256

TLS_RSA_WITH_AES_128_CBC_SHA

TLS_RSA_WITH_AES_256_CBC_SHA

TLS_RSA_EXPORT1024_WITH_RC4_56_MD5

TLS_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 = { 0x000x04 }

TLS_RSA_WITH_RC4_128_SHA = { 0x000x05 }

TLS_RSA_WITH_DES_CBC_SHA = { 0x000x09 }

waf后web服务端的SSL套件可以使用sslcan扫描获得。

通过对比waf和web server的SSL套件,发现如下的套件web server支持但waf不支持:

Accepted TLSv1 256 bits ECDHE-RSA-AES256-SHA

web server增加一个测试页面/ssl-cipher-test,且在waf上配置block URL路径/ssl-cipher-test。

直接访问会成功拦截:

用制定的SSL套件可以bypass waf:

pwn@thinkpad:~$ curl--ciphersECDHE-RSA-AES256-SHA https://waf-test.lab.local/ssl-cipher-test HELLO

<htmllang=en>

  <title>HELLO </titile>

  <p>Bypass worked</p>

pwn@thinkpad:~$

来源:

https://0x09al.github.io/waf/bypass/ssl/2018/07/02/web-application-firewall-bypass.html

上一篇 下一篇

猜你喜欢

热点阅读