文件上传:前端验证不可靠
前端验证指:javascript源码
如ctfshow例题web151:
这里可以使用
F12打开源码界面,发现如下代码:1
2<button type="button" class="layui-btn" id="upload"
lay-data="[url: 'upload.php', event: 'images', exts:'png']">这是一个经典的
layui代码:
语法以及特点如下:1.基础结构:
<button>标签被 Layui 渲染为一个上传按钮。class="layui-btn":Layui 的按钮样式。id="upload":按钮的唯一标识符(可用于 JavaScript 操作)。
2.有关
lay-data:- 这是 Layui 上传组件的核心配置参数,格式为简化的 JSON(Layui 自定义语法)。
- 参数用方括号
[]包裹,键值对用:分隔,多个参数用,分隔。
关键参数详解
url: 'upload.php'
- 作用:指定文件上传的后端接口地址。
- 示例:文件上传时会向
upload.php发送 POST 请求,由该接口处理上传逻辑。
event: 'images'
- 作用:指定上传触发的事件类型。
- 常见值:
'images':限定上传文件为图片类型(会隐式校验文件头)。- 若需上传任意文件,可省略此参数或设置为
'file'。
exts: 'png'
- 作用:限制允许上传的文件后缀。绕过的重点就是这个
exts标签,它会强制校验文件后缀,而event的验证则是非强制的 - 示例:
exts:'png'表示只允许上传.png文件。 - 扩展用法:支持多个后缀,如
exts: 'png|jpg|gif'。
一般解法:
- 直接修改
exts的参数,使得我们要上传的恶意文件可以被上传
1 | <button type="button" class="layui-btn" id="upload" |
- 让一句话木马上传后再使用剑蚁进行连接即可。s
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Dedsec的博客!





