BMZCTF Web up

打开页面。

BMZCTF Web up_第1张图片

发现没有什么有用的信息,查看源代码也一样。

于是进行目录扫描:

发现了两个页面。分别打开。

index.html

无用。

upload.html:

BMZCTF Web up_第2张图片

是一个文件上传点。

先尝试上传正常图片:

BMZCTF Web up_第3张图片

可以看到,文件的临时目录和文件上传后的存储位置。

查看上传后的文件:

BMZCTF Web up_第4张图片

可以看到,是以代码的形式显示出来,而不是图片。

也就是说我们可以上传图片马来执行命令。

上传一个php文件:

BMZCTF Web up_第5张图片

多次尝试,发现是白名单过滤。而且文件内容还会被重写。我们就想到了二次渲染。

使用外国大神的代码生成图片:

本地搭建php环境。访问文件后,就可以在目录下生成一个1.png的图片。

将图片上传并访问:

BMZCTF Web up_第6张图片

可以看到我们的代码被执行了。现在我们查看1.png的内容:

BMZCTF Web up_第7张图片

shell语句是:

于是我们构造payload:

GET:
    0=system
POST:
    1=cat /flag

BMZCTF Web up_第8张图片

即可得到flag:

BMZCTF{b93b8ab7a2ac4ca18fe5c6bb0032f550}

你可能感兴趣的:(BMZCTF刷题记录,安全)