Django上传文件目录穿越漏洞——CVE-2021-31542

POC Django上传文件目录穿越漏洞——CVE-2021-31542

Shacker已验证会员

黑客倉庫站長

贡献: 21%
JavaScript:
## Django上传文件目录穿越漏洞——CVE-2021-31542
## 漏洞描述
Django 3.2.1, 3.1.9, and 2.2.21: CVE-2021-31542: Potential
 directory-traversal via uploaded files

在这些版本的Django中使用`MultiPartParser`, `UploadedFile`, 和 `FieldFile` 时,存在构造特别的文件名../等进行目录穿越漏洞。
构造文件名参考:/tmp/../path

## 修复方案:
空文件名和带..的文件名都将拒绝

在文件:django/core/files/utils.py 中添加方法:
```
def validate_file_name(name):
    if name != os.path.basename(name):
        raise SuspiciousFileOperation("File name '%s' includes path elements" % name)

    # Remove potentially dangerous names
    if name in {'', '.', '..'}:
        raise SuspiciousFileOperation("Could not derive file name from '%s'" % name)

    return name
```


**参考 commit**
https://github.com/django/django/commit/04ac1624bdc2fa737188401757cf95ced122d26d
 
后退
顶部