网络启示录2025-网络攻击
##网络攻击(网络)
对于此挑战,我们将获得IP,大概是该IP上网站的源代码
查看代码,我们看到了一些潜在注入的位置。该站点正在使用CGI Python脚本来处理请求,而基本的index.php没有服务器端漏洞弹出。想到的第一件事是CRLF注入,因为我们在名称param上看不到正则验证或消毒,也没有作为标头的言语打印。
我们可以这样验证:
这起作用是因为当它打印标头时,我们会注入\r\n
,然后我们可以将任意标头注入
此外,我们在CGI-bin中看到了一个看似受保护的其他脚本,这意味着我们需要先利用attack-domain
,然后才能攻击attack-ip
这是
attack-ip
的代码:
在这里,我们看到了
os.popen
的同一命令注入,但是这次它不受正则保护,这意味着这应该是我们的最终目标。
所以我们需要:
1。在attack-domain
中利用SSRF
2。让服务器呼叫到127.0.0.1/cgi-bin/attack-ip
绕过Apache配置
3。将有效载荷注入os.popen
当查看挑战带来的Dockerfile时,我们看到了几个Apache Addons故意启用了,这让我很好奇:
我花了一个长的时间尝试替代利用路径并沿兔子孔走去,但最终我在
mod_proxy_fcgi
的documentation中偶然发现了这一点。您会注意到它具有奇特的proxy:
表示法。
在测试之前,我设置了一条公开访问的隧道,因此我不需要依靠Ngrok或Burp Commancorator,我将在此处托管一个简单的Python Web服务器,以吸引回复
因此,现在我们向Ping隧道发送了盲目有效载荷。请注意,我们需要对代理请求进行仔细编码,因为它是第一个嵌套的第二个请求
发送有效载荷验证我们的SSRF怀疑
SSRF实现了。现在我们移动利用。请记住,我们已经看到了
attack-ip
的代码,因此我们知道它很容易受到命令注入的影响,因为没有正则义务保护它。我将在隧道上创建index.html,其中包含一个脚本以剥落标志
并将有效载荷更改为bash,因此它实际上执行:
然后,我们使用Base64编码标志获得回调!