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

Goal: 1000 CNY · Raised: 1000 CNY

100.0%

CVE-2015-3145 PoC — Haxx cURL和libcurl 拒绝服务漏洞

Source
Associated Vulnerability
Title:Haxx cURL和libcurl 拒绝服务漏洞 (CVE-2015-3145)
Description:Haxx curl和libcurl都是瑞典Haxx公司的产品。curl是一套利用URL语法在命令行下工作的文件传输工具。libcurl是一个免费、开源的客户端URL传输库。 Haxx cURL和libcurl 7.31.0版本至7.41.0版本的‘sanitize_cookie_path’函数中存在安全漏洞,该漏洞源于程序没有正确计算索引。远程攻击者可借助只有双引号字符的cookie路径利用该漏洞造成拒绝服务(越边界写入和崩溃)。
Readme
# Демонстрация бага CVE-2015-3145 
## описание бага
Основное описание описано здесь: [CVE-2015-3145](https://curl.se/docs/CVE-2015-3145.html).
Для демонстрации используется sanitize_cookie_path() 
из версии libcurl — 7.34.0, [можно скачать архивом отсюда](https://curl.se/download/).
Функция некорректно обрабатывает входные данные, и передав в нее путь состоящий из двойной кавычки либо нуль-байта

## сборка и старт
Чтобы AFL успешно мог крашнуть программу была написана простая обёртка cover.c над sanitize_cookie_path(), 
чтобы тестовый ввод аргументов через файл работал коректно через stdin.
Для сборки всй установки, установки необходимых зависимостей и запуска 
используйте готовый bash-скрипт ./build_and_start.sh 
ВАЖНО! скрипт должен запускатся с правами root для испрвного старта работы AFL-фаззера.
На вход подаётся заранее подготовленный скриптом-сборшиком файл в директории inputs содержащий строку с url, который содержит '"'.
Для повышения чувствительности использовался встроенный функционал,
который очень эффективно детектит ошибки памяти - clang ASAN - [Address Sanitizer](https://clang.llvm.org/docs/AddressSanitizer.html) 
После запуска почти стразу фаззер задетектит краш программы, результаты и вывод можно увидеть в директории out

![afl-start-example](https://github.com/Serz999/CVE-2015-3145/blob/master/afl-start-example.jpg)

## официальная документация AFL
[ссылка на документацию](https://afl-1.readthedocs.io/en/latest/quick_start.html)
File Snapshot

[4.0K] /data/pocs/e22b5feed93ae6274812f4c2f4be336b3e0c757c ├── [ 66K] afl-start-example.jpg ├── [ 872] build_and_start.sh ├── [4.0K] curl_path_san_cover │   ├── [ 131] CMakeLists.txt │   └── [1.4K] cover.c ├── [2.3K] README.md └── [697K] Отчёт по развёртке AFL.pdf 1 directory, 6 files
Shenlong Bot has cached this for you
Remarks
    1. It is advised to access via the original source first.
    2. If the original source is unavailable, please email f.jinxu#gmail.com for a local snapshot (replace # with @).
    3. Shenlong has snapshotted the POC code for you. To support long-term maintenance, please consider donating. Thank you for your support.