![Web Hacking Playground本地渗透测试平台插图 Web Hacking Playground本地渗透测试平台插图](https://blog.eswlnk.com/wp-content/uploads/wpcy/efea93fe8211ee3125c568d92a108fee.jpg)
在真实案例中发现漏洞的 Web 应用程序,包括渗透测试和漏洞赏金计划
Web Hacking Playground 是一个受控的网络黑客环境。它包含在真实案例中发现的漏洞,包括渗透测试和漏洞赏金计划。目标是用户可以与它们一起练习,并学习检测和利用它们。
其他感兴趣的主题也将得到解决,例如:通过创建自定义有效负载来绕过过滤器、利用各种漏洞执行链式攻击、开发概念验证脚本等。
提示
本身应用程序源代码是开源的。然而,该实验室的方法是一种黑匣子方法。因此,不应通过审查代码来解决挑战。
此外,应该注意的是,模糊测试(参数和目录)和暴力攻击在本实验中没有任何优势。
![Web Hacking Playground本地渗透测试平台插图1 Web Hacking Playground本地渗透测试平台插图1](https://static.eswlnk.com/2023/02/20230216002840390.png-esw)
设置
建议使用Kali Linux来执行此实验。如果使用虚拟机,建议使用VMware Workstation Player管理程序。
环境是基于Docker和Docker Compose的,所以两个都要安装。
要在 Kali Linux 上安装 Docker,请运行以下命令:
sudo apt update -y
sudo apt install -y docker.io
sudo systemctl enable docker --now
sudo usermod -aG docker $USER
要在其他基于 Debian 的发行版上安装 Docker,请运行以下命令:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo systemctl enable docker --now
sudo usermod -aG docker $USER
建议注销并重新登录,这样用户就被识别为属于 docker 组。
要安装 Docker Compose,请运行以下命令:
sudo apt install -y docker-compose
注意:如果使用 M1,建议在构建图像之前执行以下命令:
export DOCKER_DEFAULT_PLATFORM=linux/amd64
下一步是克隆存储库并构建 Docker 镜像:
git clone https://github.com/takito1812/web-hacking-playground.git
cd web-hacking-playground
docker-compose build
此外,建议安装Foxy Proxy浏览器扩展,它允许您轻松更改代理设置,以及Burp Suite,我们将使用它来拦截 HTTP 请求。
我们将在 Foxy Proxy 中创建一个新的配置文件,以使用 Burp Suite 作为代理。为此,我们转到 Foxy Proxy 选项,并添加具有以下配置的代理:
- 代理类型: HTTP
- 代理IP地址: 127.0.0.1
- 端口: 8080
部署
安装所需的一切后,您可以使用以下命令部署环境:
git clone https://github.com/takito1812/web-hacking-playground.git
cd web-hacking-playground
docker-compose up -d
这将在端口 80 上创建两个在 Flask 中开发的应用程序容器:
- 易受攻击的 Web 应用程序(社交):模拟社交网络。
- 漏洞利用服务器:你不应该尝试破解它,因为它没有任何漏洞。其目的是模拟受害者访问恶意链接。
重要的
有必要将容器的 IP 添加到 /etc/hosts 文件中,以便可以通过名称访问它们,并且漏洞利用服务器可以与易受攻击的 Web 应用程序通信。为此,请运行以下命令:
sudo sed -i '/whp-/d' /etc/hosts
echo "$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' whp-socially) whp-socially" | sudo tee -a /etc/hosts
echo "$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' whp-exploitserver) whp-exploitserver" | sudo tee -a /etc/hosts
完成后,可以从「http://whp-socially」访问易受攻击的应用程序,从 「http://whp-exploitserver」 访问漏洞利用服务器。
使用漏洞利用服务器时,必须使用上述 URL,使用域名而不是 IP。这确保了容器之间的正确通信。
当涉及到黑客攻击时,为了代表攻击者的服务器,必须使用本地 Docker IP,因为实验室不打算向外部服务器(如 Burp Collaborator、Interactsh 等)发出请求。可以使用 Python http.server 来模拟 Web 服务器并接收 HTTP 交互。为此,请运行以下命令:
sudo python3 -m http.server 80
阶段
环境分为三个阶段,每个阶段都有不同的漏洞。重要的是按顺序完成它们,因为后续阶段的漏洞建立在前面阶段的漏洞之上。这些阶段是:
- 第 1 阶段:使用任何用户访问
- 第 2 阶段:以管理员身份访问
- 第 3 阶段:读取 /flag 文件
重要信息
以下是每个阶段漏洞的剧透。如果您不需要帮助,可以跳过此部分。另一方面,如果您不知道从哪里开始,或者想检查您是否在正确的轨道上,您可以扩展您感兴趣的部分。
第 1 阶段:使用任何用户访问
在此阶段,可以通过跨站点脚本 (XSS) 窃取特定用户的会话,从而允许执行 JavaScript 代码。为此,受害者必须能够访问用户上下文中的 URL,可以使用漏洞利用服务器模拟此行为。
解决这个阶段的提示是:
- 主页上有什么引人注目的帖子吗?
- 您必须链接两个漏洞才能窃取会话。XSS 是通过利用Open Redirect漏洞实现的,受害者被重定向到外部 URL。
- Open Redirect 有一些安全限制。你必须找到绕过它们的方法。分析 URL 中不允许出现哪些字符串。
- Cookie 不是唯一存储会话信息的地方。查看应用程序中包含的 JavaScript 文件的源代码可以帮助消除疑虑。
第 2 阶段:以管理员身份访问
在此阶段,可以生成允许以管理员身份访问的令牌。这是典型的 JSON Web 令牌 (JWT) 攻击,可以修改令牌负载以提升权限。
解决这个阶段的提示是,有一个端点,给定一个 JWT,返回一个有效的会话 cookie。
第 3 阶段:读取 /flag 文件
在此阶段,可以通过服务器站点模板注入 (SSTI) 漏洞读取 /flag 文件。为此,您必须让应用程序在服务器上运行 Python 代码。可以在服务器上执行系统命令。
解决这个阶段的提示是:
- 易受攻击的功能受双因素身份验证保护。因此,在利用 SSTI 之前,必须找到绕过 OTP 代码请求的方法。有时应用程序信任来自同一服务器的请求,而 HTTP 标头在这种情况下起着重要作用。
- SSTI是Blind的,这意味着不直接获取在服务器上执行的代码的输出。Python smtpd 模块允许您创建一个 SMTP 服务器,该服务器将接收到的消息打印到标准输出:
sudo python3 -m smtpd -n -c DebuggingServer 0.0.0.0:25
- 应用使用的是Flask,所以可以推断模板引擎是Jinja2,因为它是Flask官方文档推荐的,使用比较广泛。您必须获得 Jinja2 兼容的有效负载才能获得最终标志。
- 电子邮件消息有字符限制。可以在 Internet 上找到有关如何绕过此限制的信息。
📮评论