Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-2020-SSRF-via-URL-Parser-Differential — Демонстрирует эксплуатацию SSRF через расхождения в URL-парсерах urllib.parse и requests, включая уязвимый сервис и PoC-скрипт эксплойта. | Kitploit
Инструменты/GitHubGitHub/george0papasotiriou/cve-2026-2020-ssrf-via-url-parser-differential
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и Образование
GitHubgeorge0papasotiriou/cve-2026-2020-ssrf-via-url-parser-differential

CVE-2026-2020-SSRF-via-URL-Parser-Differential

Демонстрирует эксплуатацию SSRF через расхождения в URL-парсерах urllib.parse и requests, включая уязвимый сервис и PoC-скрипт эксплойта.

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
18 дней назадЕщё не проверено

CVE-2026-2020 – SSRF через расхождение URL-парсеров

Код программы (Python)

root@kitploit:~
# vulnerable_service.py - Validates URL with urllib.parse, fetches with requests
from flask import Flask, request
import requests
import urllib.parse

app = Flask(__name__)

def is_allowed_url(url):
    parsed = urllib.parse.urlparse(url)
    # Only allow http://localhost and http://127.0.0.1
    return parsed.hostname in ('localhost', '127.0.0.1')

@app.route('/fetch')
def fetch():
    url = request.args.get('url')
    if not is_allowed_url(url):
        return "Blocked", 403
    # Fetch with requests (different parser)
    r = requests.get(url, timeout=5)
    return r.text

if __name__ == '__main__':
    app.run(port=5000)

CVE-2026-2020 – SSRF через расхождение URL-парсеров

Severity: High

Обзор

Сервис использует urllib.parse.urlparse из Python для проверки URL-адресов, но затем загружает их с помощью библиотеки requests. Расхождения в том, как два парсера обрабатывают специальные символы (например, @), позволяют злоумышленнику обойти белый список и получить доступ к внутренним ресурсам.

Детали уязвимости

  • Тип: Server‑Side Request Forgery (SSRF) – расхождение парсеров (Parser Differential)
  • Воздействие: Доступ к внутренним сервисам, эксфильтрация метаданных облака.
  • Корневая причина: urlparse рассматривает [email protected] как адрес с именем хоста localhost (часть перед @ — это имя пользователя), тогда как requests интерпретирует хост как evil.com.

Демонстрация эксплуатации

  1. Запустите уязвимый сервис:
    root@kitploit:~
    pip install flask requests
    python vulnerable_service.py
    
  2. Запустите эксплойт:
    root@kitploit:~
    python exploit_ssrf_parser_diff.py
    
Скачать инструмент