Задача:
Ответ здесь.
Формат флага — “RUCTF_.*”.
Решение:
Дана виртуальная машина с Gentoo на борту и ядром, которое не позволяет ничего писать в файлы. Только создавать.
Лёша Лобанов предложил маленькое и элегантное решение ;)
hexdump -xv answer.jpg | while read LINE; do touch "ans/$LINE"; done
Т.к. шелл в виртуалке очень урезанный, запускать это счастье нужно из busybox.
Далее подключаем диск к другой виртуалке с Linux и распарсим это небольшим скриптом на PHP:
<?php chdir('ans'); $files = glob("*"); $ans = ""; foreach ($files as $file){ $data = explode(" ", $file); $offset = array_shift($data); $data = implode($data); $res = str_split($data, 2); $rss = ""; foreach ($res as $idx => $val){ if ($idx % 2){ $idx--; } else $idx++; $rss[$idx] = $val; } ksort($rss); $rss = implode($rss); $ans .= hex2bin($rss); } file_put_contents('../ans.jpg', $ans); ?>
Получаем вот такую симпатичную картинку:
Leave a Reply