BMZCTF:hitcon_2017_ssrfme
  TEZNKK3IfmPf 2024年04月19日 23 0

 

http:///challenges#hitcon_2017_ssrfme

BMZCTF: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直接搜索就能知道

BMZCTF:hitcon_2017_ssrfme

 

最后的文件路径是:/sandbox/6dcb273e31b7c6e1cb3f2bb2b6b9236f/

BMZCTF:hitcon_2017_ssrfme

 

Forbidden就对了Not Found就错了例如构造?url=/&filename=mochu.html,然后访问/sandbox/6dcb273e31b7c6e1cb3f2bb2b6b9236f/mochu.html

BMZCTF:hitcon_2017_ssrfme

 

然后当我尝试/?url=/flag&filename=flag.txt

然后再访问沙盒下的flag.txt

BMZCTF:hitcon_2017_ssrfme

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年04月19日 0

暂无评论

推荐阅读
TEZNKK3IfmPf