安恒月赛 image up

http://101.71.29.5:10007/index.php?page=login  

仔细观察这个url的话会发现,存在文件包含。

而且并没有login.php而是login,猜测代码是

<?php include str."php";

随便账号密码就能登陆,来到了一个上传页面,只能上传图片,回头看看题目

这里的思路明确了,文件包含加图片马。

在这时间统一的世界里,上传图片试试吧

突然发现,并不知道图片去哪里了。

用为协议读取源代码,

http://101.71.29.5:10007/index.php?page=php://filter/read=convert.base64-encode/resource=login
http://101.71.29.5:10007/index.php?page=php://filter/read=convert.base64-encode/resource=upload   

注意,因为包含文件的时候自动拼接.php,所以这里只写login和upload

在upload这里我们发现代码实现的功能。

分割文件名和文件后缀,然后文件名保存为MD5(当前时间+文件名)+文件后缀,上传到upload目录下边。  

这个文件名其实是可以预测的,只不过我们得稍微的爆破一下他前后左右很短的一段时间,访问他是否存在来判断时间是否正确。

扫描二维码关注公众号,回复: 4295951 查看本文章

制作一个图片马,上传后立即运行脚本。

直接包含这个图片,发现不行,因为读upload.php源码的时候会发现拼接了.php,相当于你包含了shell.jpg.php,这是一个不存在的文件。

为了绕过拼接,我们可以用phar和zip为协议。

这样就可以忽略.php的拼接了。。。

http://101.71.29.5:10043/index.php?page=zip://uploads/图片.jpg%23shell密码,然后命令执行就可以了

猜你喜欢

转载自www.cnblogs.com/zaqzzz/p/10041922.html