CTFHub - 文件上传(一)无验证,前端验证
0X00 无验证
这题是文件上传,无验证,也就是说不会对我们上传的文件进行检测过滤,于是可以直接上传一句话木马文件, <?php eval($_POST['password']);?>
上传成功后使用蚁剑进行连接
查看目录下的文件,找到flag_545955.php文件,打开得到flag。
0X01 前端验证
比起上一题,这题多了个前端验证,JavaScript会在前端验证用户上传的文件是否符合要求,在用户点击上传的时候会触发onsubmit事件,检测用户文件的后缀名。先尝试上传.php一句话木马文件,得到不允许上传的提示。
如果只是通过前端验证文件格式的话有几种方式可以进行绕过。
1、直接删除onsubmit事件
可以使用浏览器的编辑功能,将页面中的submit事件删除,这样前端就不会对上传的文件后缀名进行检测,就能达到绕过的目的。
删掉图中的onsubmit事件
成功上传.php文件
2、禁用浏览器的JavaScript
他对文件的检测依靠于JavaScript的使用,禁用浏览器的JavaScript,可以直接让其过滤效果失效。
以火狐浏览器为例,地址栏输入about:config,点击回车键,找到如图的地方,点击右边按钮禁用JavaScript。
回到页面中,继续上传文件成功。
3、抓包修改
我们可以事先将.php文件后缀名修改为白名单中的后缀名,例如可修改为.jpg后缀名,上传文件,使用burpsuite进行抓包:
将图中的位置修改为shell.php,然后将其发送,通过响应内容得知文件上传成功!
成功绕过前端检测上传文件后,使用蚁剑进行连接,成功拿到flag!