在阿里云上测试Web应用防火墙的有效性

在实现公有云服务提供的各种安全服务时,您可能会有这样的疑问:我真的能防范来自外部的安全攻击吗?

在本文中,九河云将使用阿里云 Web 应用防火墙 (WAF) 来验证安全性。WAF可以实时识别和阻止Web攻击和恶意Web请求。我们将对网站服务发起攻击,以测试阿里云 WAF 是否能够阻止它们。以下部分将介绍这些步骤。

1. 配置概述

配置步骤很简单。WAF 放置在 Web 服务器的前面,以防止暴露 Web 服务器。在此示例中,我们将使用云服务器 (ECS) 服务器。将使用 WAF 验证对 Web 服务器的所有访问。Web服务器的完全限定域名(FQDN)和WAF的CNAME在域名系统(DNS)中注册。

Web 服务器具有全局 IP 地址。因此,Web 服务器可以检查未使用 WAF 验证的访问。

注意:以下部分介绍了IP地址,CNAME和FQDN的定义:

  • Web 服务器的 FQDN:用户要访问的 URL。使用 FQDN。
  • WAF的CNAME:WAF实例的CNAME。将 Web 服务器的 FQDN 设置为 CNAME。
  • Web服务器的全局IP地址:Web服务器的全局IP。设置源服务器的全局 IP 地址。源服务器是后端服务器。

2. 构建 Web 服务器

在此示例中,我们将使用阿里云弹性计算服务(ECS)服务器。ECS服务器的操作系统为CentOS。

2.1 执行以下命令安装Apache HTTP服务器

复制代码
`# yum -y update
# yum -y install httpd`

2.2 执行以下命令创建加密证书

复制代码
`# yum -y install certbot
# systemctl enable httpd
# systemctl start httpd
# certbot certonly --webroot -w /var/www/html -d <Web server FQDN>`

注意:在创建加密证书之前解析 DNS 记录。

执行以下命令,创建证书。

复制代码
`/etc/letsencrypt/live/<Web server FQDN>/fullchain.pem
/etc/letsencrypt/live/<Web server FQDN>/privkey.pem`

2.3 执行以下命令安装SSL

复制代码
`# yum -y install mod_ssl`

2.4 执行以下命令移动证书

复制代码
`# vi /etc/httpd/conf.d/ssl.conf`

运行 vi 命令以添加以下文件:

复制代码
`SSLCertificateFile /etc/letsencrypt/live/<Web server FQDN>/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/<Web server FQDN>/privkey.pem`

2.5 执行以下命令,重启Apache HTTP服务器

复制代码
`# systemctl restart httpd`

3. 发起攻击

3.1 执行以下命令安装PHP

复制代码
`# yum install �Cy php`

3.2 执行以下命令发起攻击

复制代码
`# cd /var/www/html/

# vi index.html`

使用 vi 命令创建 HTML 源代码。

复制代码
`<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title> Getting started with HTML: Create a text box</title>
</head>
<body>
<form action="//sbc-nextcloud.sbcicp1.net/index.php" method="post">
        <p> Username:<br>
        <input type="text" name="name"></p>
        <p><input type="button" value="Check" id="button2"></p>
</form>
</body>
</html>`
复制代码
`# vi index.php`

使用 vi 命令创建 PHP 源代码。

复制代码
`<?php

foreach (getallheaders() as $name => $value) {
    echo "$name: $value\n";
}

?>`

4. 开通阿里云WAF

4.1 配置WAF

4.2 检查是否使用WAF进行访问

access:查看访问结果。https://<Web Server FQDN>/index.php

如果存在下图中的配置,则使用WAF进行访问。

5. 确认WAF效果

我们将在启用 WAF 时通过篡改 URL 参数来发起攻击。

如果URL参数不被篡改,网站可以正常访问。

但是,在发起攻击后,网站将变得无法访问,这表明了WAF的有效性。

要发起攻击,请篡改以下 URL 参数:

复制代码
`https://<Web server FQDN>/index.html?q=SELECT id,pass FROM login_user WHERE id='1' or '1' = '1'-- AND pass=";`

如下图所示,WAF拒绝了访问请求。

接下来,我们将在禁用 WAF 的情况下发起攻击。

为此,请篡改以下 URL 参数,如果您尚未注册 CNAME,请使用全局 IP 地址。

复制代码
`https://8.209.255.234/index.html?q=SELECT id,pass FROM login_user WHERE id='1' or '1' = '1'-- AND pass=";`

下图为在没有WAF的情况下访问ECS服务器时显示的页面。

相关推荐
如若12328 分钟前
对文件内的文件名生成目录,方便查阅
java·前端·python
滚雪球~1 小时前
npm error code ETIMEDOUT
前端·npm·node.js
沙漏无语1 小时前
npm : 无法加载文件 D:\Nodejs\node_global\npm.ps1,因为在此系统上禁止运行脚本
前端·npm·node.js
supermapsupport1 小时前
iClient3D for Cesium在Vue中快速实现场景卷帘
前端·vue.js·3d·cesium·supermap
brrdg_sefg1 小时前
WEB 漏洞 - 文件包含漏洞深度解析
前端·网络·安全
胡西风_foxww1 小时前
【es6复习笔记】rest参数(7)
前端·笔记·es6·参数·rest
m0_748254881 小时前
vue+elementui实现下拉表格多选+搜索+分页+回显+全选2.0
前端·vue.js·elementui
老刘莱国瑞2 小时前
STM32 与 AS608 指纹模块的调试与应用
python·物联网·阿里云
星就前端叭2 小时前
【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
前端·后端·开源·webrtc
m0_748234522 小时前
前端Vue3字体优化三部曲(webFont、font-spider、spa-font-spider-webpack-plugin)
前端·webpack·node.js