17推论坛

标题: 利用SSL/TLS绕过Web应用防火墙的操作 [打印本页]

作者: 杰西    时间: 2019-1-2 16:20
标题: 利用SSL/TLS绕过Web应用防火墙的操作
  Web安全已经成为信息安全领域的一个重要话题,越来越多的关键服务都被开发成Web应用程序,对Web应用程序安全性的需求也逐渐增加。
  
  一、SSL连接的工作原理
  
  1、ClientHello/ServerHello阶段
  
  握手过程开始于发送ClientHello消息的客户端。在该消息中,会包含服务器所需的全部信息。例如各种密码套件和支持的SSL/TLS版本。收到连接后,服务器将使用ServerHello消息进行响应,该消息中包含客户端所需的类似信息。服务器还将返回所使用的密码套件和SSL版本。
  
  2、证书交换
  
  在初始化连接之后,服务器需要向客户端证明其身份。服务器会将SSL证书发送到客户端,客户端会检查该证书,确认它可以信任后再继续连接。
  
  3、密钥交换
  
  在建立了安全隧道之后,服务器和客户端交换密钥,该密钥将用于加密和解密数据。
  
  基于以上原理,如果使用“不受支持的”SSL加密方式来初始化与支持该密码的Web服务器的连接,那么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_C_SHA
  SSL_RSA_WITH_3DES_EDE_C_SHA
  SSL_RSA_EXPORT_WITH_RC4_40_MD5
  SSL_RSA_EXPORT_WITH_DES40_C_SHA


  TLS/1.0-1.2
  TLS_RSA_WITH_NULL_SHA256
  TLS_RSA_WITH_AES_128_C_SHA
  TLS_RSA_WITH_AES_256_C_SHA
  TLS_RSA_EXPORT1024_WITH_RC4_56_MD5
  TLS_RSA_EXPORT1024_WITH_RC4_56_SHA
  TLS_RSA_WITH_AES_128_C_SHA256
  TLS_RSA_WITH_AES_256_C_SHA256
  TLS_RSA_WITH_RC4_128_MD5 = { 0x000x04 }
  TLS_RSA_WITH_RC4_128_SHA = { 0x000x05 }
  TLS_RSA_WITH_DES_C_SHA = { 0x000x09 }
  
  下一步就是确定Web服务器支持的SSL加密方式。
  
  实际上,有很多方法可以检测服务器支持的加密方式,但我们在这里选用了sslscan,因为该工具易于安装,并且能够提供大量详细信息。
  
  pwn@thinkpad:~$ sudo apt install sslscan
  Reading package lists... Done
  Building dependency tree
  Reading state information... Done
  The following NEW packages will be installed:
  sslscan
  0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
  Need to get 26,7 kB of archives.
  After this operation, 81,9 kB of additional disk space will be used.
  Get:1 http://al.archive.ubuntu.com/ubuntu bionic/universe amd64 sslscan amd64 1.11.5-rbsec-1.1 [26,7 kB]
  Fetched 26,7 kB in 0s (73,8 kB/s)
  Selecting previously unselected package sslscan.
  (Reading database ... 177002 files and directories currently installed.)
  Preparing to unpack .../sslscan_1.11.5-rbsec-1.1_amd64.deb ...
  Unpacking sslscan (1.11.5-rbsec-1.1) ...
  Processing triggers for man-db (2.8.3-2) ...
  Setting up sslscan (1.11.5-rbsec-1.1) ...
  pwn@thinkpad:~$ sslscan http://target/ | grep Act
  
  输入上面的命令后,将会列出Web服务器支持的SSL/TLS版本和加密方式。
  
  我们将sslscan的结果和产品文档中的内容进行比较,就能够发现Web应用程序防火墙中不支持但Web服务器支持的一些加密方式。
  
  Acted TLSv1 256 bits ECDHE-RSA-AES256-SHA
  
  Web服务器支持该加密方式,但WAF并不支持。
  
  为了验证我的理论,我创建了一个WAF规则,如果请求的路径是“/ssl-her-test”,则会阻止请求。
  
  理论上,我们访问这一路径,WAF将会阻止这一行为。
  
  而我们的绕过方式是,指定客户端的加密方式,只使用能绕过防火墙的特定方式。
  
  我们可以在curl上使用—hers指定加密方式,在示例中我选用了ECDHE-RSA-AES256-SHA。
  
  pwn@thinkpad:~$ curl --hers ECDHE-RSA-AES256-SHA https://waf-test.lab.local/ssl-her-test
  <html lang=en>
  <title>HELLO </title>
  <p>Bypass worked</p>
  pwn@thinkpad:~$
  
  正如我们在响应中所看到的那样,Web应用程序防火墙被成功绕过。
  
  以上就是安信ssl证书(www.anxinssl.com)为大家分享"利用SSL/TLS绕过Web应用防火墙”的全部内容,如果用户遇到的ssl证书相关问题,可以找安信ssl证书客服寻求帮助,为庆祝“双旦”佳节,凡通过安信SSL申购任意类型SSL证书,均可享受八八折优惠,部分特价证书只要五折。






欢迎光临 17推论坛 (https://bbs.17tui.cc/) Powered by Discuz! X3.4