目标达成 感谢每一位支持者 — 我们达成了 100% 目标!

目标: 1000 元 · 已筹: 1336

100%

CVE-2021-42574 PoC — Unicode 代码注入漏洞

来源
关联漏洞
标题: Unicode 代码注入漏洞 (CVE-2021-42574)
Description:Unicode(通用字符集)是美国统一码联盟(Unicode Consortium)组织的一种通用字符编码标准。用于为世界上每种语言的每个字符和符号分配一个代码。 Unicode Specification 14.0版本及之前版本存在代码注入漏洞,该漏洞源于在现实某些字符时可能存在双向文本欺骗问题。
Description
Generate malicious files using recently published bidi-attack (CVE-2021-42574)
介绍
# CVE-2021-42574 - Code generator

**// Update: 05.11.2021**
> It's now possible to not only encode, but also decode files. Means that now files containing supported bidi chars can be translated to template files with bidi placeholders (LRO, ...).

Generate malicious files using recently published bidi-attack vulnerability, which was discovered in Unicode Specification and affects many interpreters / compilers.

Cite from [cve.mitre.org](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-42574):
> An issue was discovered in the Bidirectional Algorithm in the Unicode Specification through 14.0. It permits the visual reordering of characters via control sequences, which can be used to craft source code that renders different logic than the logical ordering of tokens ingested by compilers and interpreters. Adversaries can leverage this to encode source code for compilers accepting Unicode such that targeted vulnerabilities are introduced invisibly to human reviewers. 

See the report about the Bidirectional Algorithm from unicode.org:<br>
https://www.unicode.org/reports/tr9/tr9-42.html

See the original source from Camebridge University:<br>
https://www.trojansource.codes/trojan-source.pdf

## Usage
`python3 codegen.py [-h] [-m MODE] [-i INFILE] [-o OUTFILE] [-u] [-a]`
| arg | long arg | param | description |
|-----|----------|-------|-------------|
| -h  | --help   | none  | show this help message and exit |
| -i  | --infile | INFILE | Input file (template) containing unicode placeholders |
| -o  | --outfile | OUTFILE | Output file to store the final code |
| -u  | --uctable | none | Supported bidi-related characters |
| -a  | --about  | none  | Print about text |
| -m  | --mode   | MODE  | Use e\|ncode to convert template to malicious code and d\|ecode vice versa |

## Examples
### Encode file (bidify)
This will translate a template file containg bidi-placeholders to a file with actual bidi characters. All examples are taken from the referenced PDF. To run these examples, execute `codegen.py` with the required arguments:

`python3 codegen.py -m encode -i infile.xyz -o outfile.xyz` and run/compile `outfile.xyz`.
### Decode file (unbidify)
This will translate a file containing bidi characters to a file with the corresponding bidi placeholders. NOTE: The output cannot be run, as it's only a template.

`python3 codegen.py -m decode -i infile.xyz -o outfile.xyz`

## Create own templates
To create own templates, set placeholders (`python3 codegen.py -u`) where you want the special characters to appear. See the examples to have a first impression on how a template could look like.

The following table (taken from the original Camebridge report) shows the characters which are currently supported by this script.
![Supported Unicode Characters](uc_table.png)
~ https://www.trojansource.codes/trojan-source.pdf
文件快照

登录后查看神龙缓存的 POC 文件快照

登录查看
备注
    1. 建议优先通过来源进行访问。
    2. 本地 POC 快照面向订阅用户开放;当原始来源失效或无法访问时,本地镜像作为订阅权益的一部分提供。
    3. 持续抓取、验证、维护这份 POC 档案需要不少投入,因此本地快照已纳入付费订阅。您的订阅是让这份资料能继续走下去的关键,由衷感谢。 查看订阅方案 →