安全矩阵

 找回密码
 立即注册
搜索
查看: 919|回复: 0

一次CRC32校验的文件上传意外Bypass

[复制链接]

252

主题

252

帖子

1309

积分

金牌会员

Rank: 6Rank: 6

积分
1309
发表于 2022-10-14 23:26:44 | 显示全部楼层 |阅读模式
原文链接:一次CRC32校验的文件上传意外Bypass


起因
某日在挖SRC的过程中发现一个比较有意思的上传点,成功绕过后深入研究了一下。
功能点上传如图所示。
该站是将所有的静态资源文件上传至七牛云的OSS上,七牛云OSS与目标某个用来存放静态文件的子域名绑定,然后通过访问静态服务器访问资源文件。
编辑
原始上传数据包如下(为了只截一张图,对数据包内容做了简化处理,非真实数据包)
编辑
  1. POST / HTTP/1.1
  2. Host: upload-xx.qiniup.com
  3. User-Agent: QiniuAndroid/7.3.11 (7.1.2; samsung-SM-G955N; 1665282777682874; VQB5GprlYEdBhv2C)
  4. Content-Type: multipart/form-data; boundary=10511da8-f3aa-4feb-8d6b-e2c7440b9e6d
  5. Content-Length: 7859
  6. Accept-Encoding: gzip, deflate
  7. Connection: close

  8. --10511da8-f3aa-4feb-8d6b-e2c7440b9e6d
  9. Content-Disposition: form-data; name="file"; filename="20221009_103254.png"
  10. Content-Type: application/octet-stream
  11. Content-Length: 7129


  12. [<image_data>]   //上传的图片数据
  13. --10511da8-f3aa-4feb-8d6b-e2c7440b9e6d
  14. Content-Disposition: form-data; name="crc32"
  15. Content-Length: 9

  16. [<crc32_value>]  //crc32检验值
  17. --10511da8-f3aa-4feb-8d6b-e2c7440b9e6d
  18. Content-Disposition: form-data; name="token"
  19. Content-Length: 134


  20. [<token_data>]  //token值
  21. --10511da8-f3aa-4feb-8d6b-e2c7440b9e6d
  22. Content-Disposition: form-data; name="key"
  23. Content-Length: 34

  24. [<url_path>]   //上传成功后映射至静态服务器的路径
  25. --10511da8-f3aa-4feb-8d6b-e2c7440b9e6d--
复制代码
当我将png后缀修改为html并在文件内容中加上xss语句时,返回包出现了crc32校验错误,如下。
编辑
  1. {"error":"crc32 not match"}
复制代码

查阅了网上各种资料,如何进行crc32校验的绕过,但是查到的都是与CTF杂项有关的东西。
正在我纠结如何Bypass时,我尝试将上传数据包中的crc32校验参数删除,意外的绕过了crc32校验。
如图。
编辑
将此块部分进行删除,重新发包。
编辑
返回包意外的从原来的
  1. {"error":"crc32 not match"}
复制代码

变成了
  1. {"error":"file exists"}
复制代码

于是我再次将包中的静态服务器映射路径进行了修改,成功Bypass上传。
编辑
编辑
后续
由于业务用的是七牛云的对象存储,所以我去研究了一下为什么删除crc32值能够绕过。
我翻了一下七牛云的对象存储文档,内容如下。
https://developer.qiniu.com/kodo/1272/form-upload
编辑
crc32参数是非必填项,仅在客户端发送的包中有crc32参数时,七牛云的对象存储服务器才会对其进行crc检验,所以数据包中的crc32参数删除后,即可绕过。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 10:47 , Processed in 0.013875 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表