如何找到保护网站的WAF
在开始指纹识别之前,攻击者通常知道网络上通常使用WAF的位置是一个好主意。
渗透测试人员在开始Web应用程序测试之前必须了解WAF,因为他们的攻击结果可能会受到影响。
但在此之前…
什么是WAF?
WAF (Web Application Firewall)在网站安全中起着重要作用。它们过滤和监视流量。Web应用防火墙提供对主要漏洞的保护。许多组织正在升级其基础架构以包括Web应用防火墙。根据ethical hacking的专家,Web应用防火墙无法单独解决security问题;需要适当的配置来识别和阻止外部威胁。
WAF与传统的firewall不同,它可以过滤特定在线应用程序的内容,而传统防火墙则充当服务器之间的安全屏障。
HTTP交互受到一组规则的限制。这些规则处理常见的漏洞,如跨站脚本和SQL injection。
互联网上有许多免费和开源工具可以发现Web应用程序后面的防火墙。
在本文中,我们将介绍可用于发现WAF的方法和工具。
请注意:在本教程中,我使用了自己的网站来枚举详细信息。未经所有者事先许可,请勿对任何网站进行扫描或其他黑客活动。
手动发现
使用TELNET检测
Telnet主要由网络管理员和渗透测试人员使用。如前所述,Telnet可以让您连接到任何端口的远程主机。
- Web应用防火墙通常在响应头中留下(或插入)HTTP参数。
- 可以使用Telnet获取基本的信息,如用于指纹识别的服务器和cookies。
- 输入
Telnet Targetwebsite.com 80
root@writer: # telnet Targetwebsite.com 80
Trying 18.166.248.208...
Connected to Targetwebsite.com.
Escape character is '^]'.
运行上述命令后,输入HEAD / HTTP / 1.1
并按回车键。
root@writer: # telnet 18.166.248.208 80
Trying 18.166.248.208...
Connected to 18.166.248.208.
Escape character is '^]'.
HEAD / HTTP/1.1
Host: 18.166.248.208
HTTP/1.1 200 OK
Date: SUN, 10 Oct 2021 05:08:03 IST
Server: Apache X-Powered-By: PHP/5.3.5 ZendServer/5.0
Set-Cookie: SESSIONID VULN SITE=t25put8gliicvqf62u3ctgjm21; path=/
Expires: Thu, 19 Nov 1981 08:52:00 IST
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Varnish: 4723782781
Age: 0
Via: 1.1 varnish
Connection: close
Content-Type: text/html
Connection closed by foreign host.
在在目标端口80上使用Telnet后,它会显示托管网站的服务器和创建该网站的后端语言。
某些WAF系统允许修改头文件,它们还可能导致Web服务器发送与标准回复不同的HTTP。
如上所示,网页服务器对我们的请求做出了响应,并显示了防火墙/边缘网关为Varnish。
自动发现
#1. 使用NMAP进行检测
可以使用具有可识别Web应用防火墙的脚本的Nmap进行此操作。
- Nmap是一种安全评估工具,许多渗透测试人员和网络管理员常用。
- Nmap用于获取有关目标的信息。
- 该脚本针对与之前相同的网页运行。
- 输入命令
nmap –script=http-waf-fingerprint targetweb.com
root@writer:# nmap --script=http-waf-fingerprint targetwebsite.com
Starting Nmap 7.90 (https://nmap.org) at 2021-10-10 07:58 IST
Nmap扫描报告:targetsite.com(18.166.248.208)
主机已启动(0.24秒延迟)。
未显示:982个过滤端口
端口状态 服务
53/tcp 打开 domain
80/tcp 打开 http
| http-waf-fingerprint:
| 检测到WAF
| Citrix Netscaler
443/tcp 打开 https
5432/tcp 关闭 postgresql
8080/tcp 关闭 http-proxy
Nmap完成:在25.46秒内扫描了1个IP地址(1个主机已启动)
在使用上述Nmap command之后,检测到了Citrix Netscaler防火墙。
#2. 使用Whatwaf进行检测
Whatwaf是一种用于指纹识别Web应用程序并检测任何WAF存在的安全工具。这个工具在安全评估过程中确定Web应用程序是否受WAF保护时非常有用。
如果是这种情况,绕过和规避策略可能有助于进一步testing or exploiting the online应用程序。
绕过防火墙、应用程序检测、应用程序指纹识别和软件识别都是WhatWaf的常见用途。该程序的目标用户是网络渗透测试人员和安全专业人员。
如何安装WhatWaf?
在Kali-Linux上安装
sudo apt install python3-pip
git clone https://github.com/ekultek/whatwaf
cd whatwaf
sudo pip3 install -r requirements.txt
在启动时,如果没有Python版本,我们可以轻松地指定可执行文件:
./whatwaf --help
然而,由于我们没有安装Python 2的依赖项,建议您明确指定Python版本。
python3 ./whatwaf --help
工具使用
Whatwaf防火墙检测工具非常容易使用!我们只需要执行以下命令:
./whatwaf -u https://www.targetsite.com
如下所示,该工具检测到了所提供的网站URL的防火墙。
提醒!- 我在扫描中使用了自己的网站
如上所示,web服务器对我们的请求做出了响应,并显示防火墙为Apache。我们还可以使用Tor服务来扫描WAF,但可能会增加延迟。
./whatwaf -u https://www.targetsite.com –tor
Whatwaf工具的主要优点是它会自动尝试提供绕过已揭示防火墙的有效负载。
#3. 使用Wafw00f进行检测
最著名的检测Web应用程序防火墙的工具是Wafw00f。Wafw00f向Web应用程序防火墙发送HTTP请求以识别它。当发送HTTP请求失败时,Wafw00f会进行恶意HTTP请求。如果恶意HTTP请求失败,则Wafw00f会检查先前的HTTP请求,并使用简单的算法确定Web应用程序是否对我们的攻击做出反应。
Wafw00f未预装在Kali Linux发行版中。
如何安装Wafw00f?
可以从官方GitHub源下载zip包。
下载Wafwoof工具。您也可以使用Git克隆存储库。运行以下命令获取该软件包:
$ git clone https://github.com/EnableSecurity/wafw00f.git
要在系统中下载wafw00f工具,请导航到wafw00f文件夹或目录并执行以下命令。
$ python setup.py install
设置文件将被处理,并将wafw00f安装在系统中。
工具使用
要使用此工具,请运行此命令。
$ wafw00f
提醒 – 仅扫描允许测试的网站。
┌──(root💀kali)-[/home/writer/wafw00f]
└─# wafw00f https://webhashes.com
______
/
( Woof! )
____/ )
,, ) (_
.-. - _______ ( |__|
()``; |==|_______) .)|__|
/ (' /| ( |__|
( / ) / | . |__|
(_)_)) / | |__|
~ WAFW00F : v2.1.0 ~
Web应用防火墙指纹识别工具
[*] 正在检查 https://whatismyip.com
[+] 网站 https://whatismyip.com 使用Cloudflare(Cloudflare Inc.)WAF。
[~] 请求次数: 2
很遗憾,检测到了防火墙!
为了讨论目的,我们将尝试不同的目标网站。
┌──(root💀kali)-[/home/writer/wafw00f]
└─# wafw00f https://renjith.org
______
/
( Woof! )
____/ )
,, ) (_
.-. - _______ ( |__|
()``; |==|_______) .)|__|
/ (' /| ( |__|
( / ) / | . |__|
(_)_)) / | |__|
~ WAFW00F : v2.1.0 ~
Web应用防火墙指纹识别工具
[*] 正在检查 https://renjith.org
[+] 通用检测结果:
[-] 未检测到通用检测防火墙
[~] 请求次数: 7
这次没有检测到防火墙。
要在详细模式下使用它,请运行以下命令。
wafw00f -v
您可以通过执行此命令查看此实用程序的一些其他功能。
wafw00f --help
总结 👨💻
在本文中,我们介绍了不同的策略和工具来检测Web应用防火墙。这是在每个Web应用程序信息收集阶段必须执行的重要活动。penetration test
此外,知道有一个WAF存在可以让尝试各种方法来绕过防御并利用在线应用程序中的任何漏洞。
根据一个道德黑客的研究员的说法,拥有一个Web应用防火墙(WAF)变得越来越必要。分析您的Web应用程序日志,以检测在后端Web应用程序服务器上发生的新攻击总是很重要的。这允许您自定义Web应用程序防火墙的规则,以提供最高级别的protection。
你可能还对阅读感兴趣:Vulnerabilities using Nikto Scanner。