【攻防世界】题目名称-SSRF Me
进入题目,是两个文本框,一个让我们输入想要访问的网址,一个是验证码

第二个输入框上面有一段代码,应该是验证码的验证逻辑:
需要找到一个字符串(captcha),使得其 MD5 哈希值的最后 6 位等于 "0d5913"。这是一个典型的逆向哈希问题,通常需要通过暴力破解(Brute Force)来解决。
计算验证码:PHP 在线工具 | 菜鸟工具
<?php $captcha=0; while(true) { if(substr(md5($captcha), -6, 6) == "0d5913") //0d5913会变 { echo $captcha; break; } $captcha++; } ?>

拿到验证码20675后,URL根据它的提示输入http://127.0.0.1:80/
然后发现响应的包中的 hint 说:本靶机不能访问外网。那不就是说它在内网且可以访问喽?

响应后多了两个框,根据题目与经验,应该可以SSRF

简单介绍一下SSRF:
SSRF(Server-Side Request Forgery,服务器端请求伪造)是一种安全漏洞,攻击者可以利用该漏洞构造请求,使服务器端向攻击者指定的任意域或IP地址发起请求。这种攻击的目标通常是外网无法直接访问的内部系统。
SSRF 的主要攻击方式
-
内网扫描:攻击者可以利用SSRF漏洞对内网进行端口扫描,获取服务的banner信息。
-
攻击内网应用:攻击者可以利用SSRF漏洞攻击内网中的应用程序,如SQL注入、XSS攻击等。
-
读取本地文件:通过
file://协议读取服务器本地文件。 -
绕过CDN:攻击者可以利用SSRF漏洞绕过CDN,直接访问源服务器。
我们只需要拿到flag,自然是先尝试能否读取本地文件。
使用 file 协议读取系统文件/etc/passwd,这个地方验证码(纯数字)需要重新计算
file:///etc/passwd

这时我们能够意识到确实可以读取文件,但是没有 flag 确切的路径,尝试 /flag :
file:///flag

爆出 hacker 了?说明有过滤 flag 这个关键字,尝试url编码绕过:
file:///%66%6c%61%67

成功拿到flag
cyberpeace{27136829aec96c06a8a38fa185b27f00}

浙公网安备 33010602011771号