网络启示录2025-网络攻击

· 4min · Juicecat

##网络攻击(网络)

对于此挑战,我们将获得IP,大概是该IP上网站的源代码

index.md-53.pngindex.md-54.png

查看代码,我们看到了一些潜在注入的位置。该站点正在使用CGI Python脚本来处理请求,而基本的index.php没有服务器端漏洞弹出。想到的第一件事是CRLF注入,因为我们在名称param上看不到正则验证或消毒,也没有作为标头的言语打印。 index.md-55.png 我们可以这样验证: index.md-58.png

这起作用是因为当它打印标头时,我们会注入\r\n,然后我们可以将任意标头注入

此外,我们在CGI-bin中看到了一个看似受保护的其他脚本,这意味着我们需要先利用attack-domain,然后才能攻击attack-ip index.md-56.png 这是attack-ip的代码: index.md-57.png 在这里,我们看到了os.popen的同一命令注入,但是这次它不受正则保护,这意味着这应该是我们的最终目标。

所以我们需要: 1。在attack-domain中利用SSRF 2。让服务器呼叫到127.0.0.1/cgi-bin/attack-ip绕过Apache配置 3。将有效载荷注入os.popen

当查看挑战带来的Dockerfile时,我们看到了几个Apache Addons故意启用了,这让我很好奇: index.md-69.png 我花了一个长的时间尝试替代利用路径并沿兔子孔走去,但最终我在mod_proxy_fcgidocumentation中偶然发现了这一点。您会注意到它具有奇特的proxy:表示法。

index.md-68.png

在测试之前,我设置了一条公开访问的隧道,因此我不需要依靠Ngrok或Burp Commancorator,我将在此处托管一个简单的Python Web服务器,以吸引回复 index.md-60.png

因此,现在我们向Ping隧道发送了盲目有效载荷。请注意,我们需要对代理请求进行仔细编码,因为它是第一个嵌套的第二个请求 index.md-75.png

发送有效载荷验证我们的SSRF怀疑 index.md-61.png SSRF实现了。现在我们移动利用。请记住,我们已经看到了attack-ip的代码,因此我们知道它很容易受到命令注入的影响,因为没有正则义务保护它。我将在隧道上创建index.html,其中包含一个脚本以剥落标志 index.md-64.png 并将有效载荷更改为bash,因此它实际上执行: index.md-73.png 然后,我们使用Base64编码标志获得回调! index.md-67.png