0509 8-2 不安全的文件上传原理及客户端绕过案例

探讨了在pikachu平台的UnsafeFileupload中,如何利用JS绕过clientcheck的图片上传限制,实现任意文件上传,包括上传一句话木马,并强调了获取上传文件路径的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在pikachu上的Unsafe Fileupload 中的client check 上传图片
发现只能上传图片
在这里插入图片描述打开控制台 查看源码
在这里插入图片描述查看页面源代码
在这里插入图片描述用JS 做的 可以 绕过

删掉checkFileExt(this.value)
得到
在这里插入图片描述即可上传文件 没有限制
在这里插入图片描述文件 为一句话木马
在这里插入图片描述 知道路径 很重要 通过猜测 或者其他漏洞结合 获得 路径
在这里插入图片描述得到
在这里插入图片描述

### 绕过ZIP文件上传限制的技术分析 在处理服务器对ZIP文件上传的限制时,通常可以通过多种技术手段实现绕过。以下是几种常见的方法及其原理: #### 1. 利用文件名混淆 通过修改文件名的方式可以有效规避某些基于文件扩展名的安全检测机制。例如,在上传过程中,可以尝试以下方式命名文件: - 使用双扩展名:`payload.zip.jpg` 或 `payload.php.zip.png`[^3]。 - 添加可见字符:如 `shell.php%00.zip` 中 `%00` 表示 NULL 字符,部分解析器会在遇到 NULL 后停止读取后续内容[^2]。 #### 2. 构造恶意 ZIP 文件结构 一些服务端程序仅验证外部文件名而未深入检查内部文件的实际内容。因此,可创建包含隐藏脚本或其他危险组件的特殊 ZIP 存档。具体做法如下: - 将 PHP 脚本伪装成图片并打包到 ZIP 中,之后解压时可能被当作正常图像处理[^4]。 - 运用多层嵌套目录穿越攻击(Directory Traversal),使得最终写入磁盘的目标路径超出预期范围[^1]。 #### 3. MIME 类型伪造 许多应用除了校验文件后缀外还会参照 HTTP 请求头中的 Content-Type 值来进行额外过滤。然而这种防护措施也存在缺陷,因为客户端能够轻易篡改提交的数据包头部信息。比如设置为常见无害类型的假象: ```http Content-Disposition: form-data; name="file"; filename="example.txt" Content-Type: text/plain ``` 但实际上发送的是 `.zip` 格式的二进制流数据。 #### 4. WAF 特定规则规避策略 针对部署有 Web 应用防火墙 (WAF) 的场景下,需研究其具体的阻断逻辑再制定相应对策。已知案例显示,适当调整请求参数形式有时足以突破常规防御屏障。像下面这样构造特殊的分隔符组合可能会让扫描引擎误判从而放行: ```php filename="test.php[0x0a].gif" // 或者其他类似的编码手法 ``` 以上列举了几种主要思路供参考实践测试,请务必注意实际操作过程中的合法性与道德底线! ```python import zipfile def create_malicious_zip(output_path, inner_payload_name='evil_script', content=b"<?php echo 'Hello'; ?>"): """ 创建一个带有潜在威胁载荷的 zip 归档 """ with zipfile.ZipFile(output_path, 'w') as zipped: zipped.writestr(inner_payload_name + '.php', content) create_malicious_zip('malicious_archive.zip') print("Malicious archive created successfully.") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值