CTFHub - 文件上传(一)无验证,前端验证

0X00 无验证

CTFHub - 文件上传(一)无验证,前端验证_第1张图片

这题是文件上传,无验证,也就是说不会对我们上传的文件进行检测过滤,于是可以直接上传一句话木马文件,
在这里插入图片描述

上传成功后使用蚁剑进行连接
CTFHub - 文件上传(一)无验证,前端验证_第2张图片

查看目录下的文件,找到flag_545955.php文件,打开得到flag。

CTFHub - 文件上传(一)无验证,前端验证_第3张图片
CTFHub - 文件上传(一)无验证,前端验证_第4张图片

0X01 前端验证

比起上一题,这题多了个前端验证,JavaScript会在前端验证用户上传的文件是否符合要求,在用户点击上传的时候会触发onsubmit事件,检测用户文件的后缀名。
CTFHub - 文件上传(一)无验证,前端验证_第5张图片先尝试上传.php一句话木马文件,得到不允许上传的提示。
CTFHub - 文件上传(一)无验证,前端验证_第6张图片

如果只是通过前端验证文件格式的话有几种方式可以进行绕过。

1、直接删除onsubmit事件

可以使用浏览器的编辑功能,将页面中的submit事件删除,这样前端就不会对上传的文件后缀名进行检测,就能达到绕过的目的。

删掉图中的onsubmit事件
CTFHub - 文件上传(一)无验证,前端验证_第7张图片

成功上传.php文件
CTFHub - 文件上传(一)无验证,前端验证_第8张图片

2、禁用浏览器的JavaScript

他对文件的检测依靠于JavaScript的使用,禁用浏览器的JavaScript,可以直接让其过滤效果失效。

以火狐浏览器为例,地址栏输入about:config,点击回车键,找到如图的地方,点击右边按钮禁用JavaScript。
在这里插入图片描述

回到页面中,继续上传文件成功。
CTFHub - 文件上传(一)无验证,前端验证_第9张图片

3、抓包修改

我们可以事先将.php文件后缀名修改为白名单中的后缀名,例如可修改为.jpg后缀名,上传文件,使用burpsuite进行抓包:
CTFHub - 文件上传(一)无验证,前端验证_第10张图片

将图中的位置修改为shell.php,然后将其发送,通过响应内容得知文件上传成功!
CTFHub - 文件上传(一)无验证,前端验证_第11张图片

成功绕过前端检测上传文件后,使用蚁剑进行连接,成功拿到flag!
CTFHub - 文件上传(一)无验证,前端验证_第12张图片

CTFHub - 文件上传(一)无验证,前端验证_第13张图片

你可能感兴趣的:(CTF学习,安全)