BMZCTF:hitcon_2017_ssrfme

CTF_WEB_Writeup 专栏收录该内容
148 篇文章 5 订阅
http://bmzclub.cn/challenges#hitcon_2017_ssrfme

在这里插入图片描述

<?php 
    $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__); 
shell_exec — 通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。
shell_exec ( string $cmd ) : string
shell_exec()的执行效果和执行操作符反引号(``)是一样的
escapeshellarg — 把字符串转码为可以在 shell 命令里使用的参数
escapeshellarg ( string $arg ) : string
pathinfo() 返回一个关联数组包含有 path 的信息。返回关联数组还是字符串取决于 options。
pathinfo ( string $path , int $options = PATHINFO_DIRNAME | PATHINFO_BASENAME | PATHINFO_EXTENSION | PATHINFO_FILENAME ) : mixed
basename — 返回路径中的文件名部分
basename ( string $path , string $suffix = ? ) : string

首先解决下这里的沙箱路径问题,这里没有将$sandbox输出,所以需要自己计算出路径

$_SERVER["REMOTE_ADDR"]#是用户访问页面用的公网IP,百度输出IP直接搜索就能知道

在这里插入图片描述
最后的文件路径是:/sandbox/6dcb273e31b7c6e1cb3f2bb2b6b9236f/
在这里插入图片描述
Forbidden就对了Not Found就错了

例如构造?url=/&filename=mochu.html,然后访问/sandbox/6dcb273e31b7c6e1cb3f2bb2b6b9236f/mochu.html
在这里插入图片描述
然后当我尝试/?url=/flag&filename=flag.txt
然后再访问沙盒下的flag.txt
在这里插入图片描述

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 撸撸猫 设计师:马嘣嘣 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值