bugku 文件上传
今天将一道很无语的题:

首先是这道题要花五个金币,但是做出来了也才有四个金币,那么这道题做了还亏1个金币
打开场景以后:

就是一个普通的文件上传的页面
先传一个php试一下

回显的也是大概就是文件的格式不合法
那就试一下php4、php5、php6和phtml

还是一样的回显
看一下前端的源码:

检查了一下发现前端没有过滤
那应该就是后端过滤了
这题最无语的地方就是这里了
后端的源码只有传木马后才能看到
但是没有后端的源码又不知道怎么改包传木马
那就先看后端的源码吧:

看了源码后直接传一个jpg或者png,然后抓包

这里要改两个地方:
1.根据后端的源码: $allowexts = array(‘jpg’,‘gif’,‘jpeg’,‘bmp’,‘php4’);
应该把Content-Disposition: form-data; name=“file”; filename="tx.png"改为Content-Disposition: form-data; name=“file”; filename=“tx.php4”
2.根据后端源码:if (strpos($type,“multipart/form-data”) !== False)
应该把Content-Type: multipart/form-data; boundary=---------------------------16288088402876089653192707327中multipart/form-data的随便一个字母改为大写的去绕过,这里改了m为M:

放包,有回显:

然后中国蚁剑连接:
在根目录找到flag

这里建议去html的目录下看一下后端的源码,这样就知道之前的操作了

去交falg

本文介绍了在Bugku平台上遇到的一道关于文件上传的挑战。题目要求上传PHP文件,但前端和后端都有过滤机制。通过查看后端源码,发现了绕过方式,包括修改Content-Disposition和Content-Type字段,成功上传了php4文件,并利用中国蚁剑在根目录找到flag。
836

被折叠的 条评论
为什么被折叠?



