Sploitus

Exploit for XBadManners

kitploit · 2026-09-04

Exploit Code

MARKDOWN76 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-TTFFDD-XBADMANNERS
# XBadManners

## Описание CVE

CVE-2018-16323 — утечка памяти при обработке XBM-изображений. После преобразования XBM-изображения в другой формат можно извлечь байты утёкшей памяти из данных изображения.

Обнаружена d4d.

## Инструмент

Довольно простой инструмент для генерации PoC для CVE-2018-16323. Каталог `samples` содержит несколько готовых PoC, которые легко использовать. Для использования этого инструмента необходимо установить imagemagick:

root@kitploit:~
    
    
    apt-get -y install imagemagick
    

И проверьте его:

root@kitploit:~
    
    
    convert -v
    

Подойдёт любая версия.

## Использование:

root@kitploit:~
    
    
    Usage poc generator: ./XBadManners.sh gen WIDTHxHEIGHT NAME.xbm [minimal]
    		Example gen: ./XBadManners.sh gen 512x512 poc.xbm
    		Example gen: ./XBadManners.sh gen 1024x1024 poc_minimal.xbm minimal
    Usage result recovery: ./XBadManners.sh recover SAVED_PREVIEW.png|jpeg|gif|etc
    		Example recovery: ./XBadManners.sh recover avatar.png
    

Режим `minimal` позволяет сгенерировать минимально возможное тело XBM для вставки в BurpSuite или куда угодно. Режим minimal протестирован и отлично работает. В этом режиме можно задавать любые ширину и высоту.

Обратите внимание, что с помощью одного изображения можно извлечь много памяти. Единственное ограничение — лимит максимального размера создаваемого изображения на стороне бэкенда.

Можно попробовать восстановить `preview.png`. Если в выводе появятся читаемые слова, значит всё работает нормально.

### Пошаговая инструкция

  1. Запустите `./XBadManners.sh gen 512x512 poc.xbm`
  2. Загрузите PoC на сервер.
  3. Скачайте превью и запустите `./XBadManners.sh recover result.png`



Отличный признак, если превью заметно меняется от одной загрузки к другой.

## Ограничения

Режим восстановления создан для быстрой проверки и должен работать со всеми форматами изображений, поддерживаемыми ImageMagick, но тестировался только для png, jpeg и gif. Логику извлечения памяти из изображения можно настроить, изменив скрипт (он простой, но уродливый).

## Как это выглядит?

![Зебра](https://assets.kitploit.com/production/public/readmes/33720/3e0b97c9a086706a05c64f2a57d5f711a09cb1134cf7a1eb5a9b742f32705b3a.png)

XBM — чёрно-белый формат. Поэтому любой результат будет выглядеть как нечто вроде зебры (если у вас хорошее воображение). По сути, чем больше чёрного, тем больше данных извлечено.

## Затронуты CVE-2018-16323

Любая сборка ImageMagick после этого коммита и до этого коммита уязвима.

## Ссылки

  * https://nvd.nist.gov/vuln/detail/CVE-2018-16323
  * https://www.cvedetails.com/cve/CVE-2018-16323/
  * Наша статья о безопасности ImageMagick https://medium.com/@ilja.bv/yet-another-memory-leak-in-imagemagick-or-how-to-exploit-cve-2018-16323-a60f048a1e12