【攻防世界】题目名称-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} 

 

posted @ 2025-05-04 20:03  Antoniiiia  阅读(251)  评论(0)    收藏  举报