РАЗБОР AppSec

CTF // Web помогите с решение

Amarant
Amarant Bug Hunter · 56 сообщений
Подписаться
5,8 тыс.
[ обложка статьи ]
Режим чтения
Всем привет! Возникли трудности с решением CTF по этому адресу - http://ib-sec.pro:8009
Текст задания звучит так: Админ спрятал свой грязный секрет и надежно все защитил. Можно ли узнать секрет админа?
Как я понял, используется уязвимость CRLF, так же в разметке есть подсказка, если добавить к адресу /?source, то он показывает исходный код сайта, в котором есть php
<?php
if (isset($_GET["source"])) highlight_file(__FILE__) && die();
$check = "Wrong!";
if (isset($_GET['username']) && isset($_GET['password'])){
$username = $_GET['username'];
$password = hash("SHA256", $_GET["password"]);
if ($username == 'admin' && $password == 0){
include'./flag.php';

и

?php if (isset($_GET['username']) && isset($_GET['password'])){
echo "<h3>$check</h3>";} ?>

На этом я зашёл в тупик, пробовал по разному вводить URL запросы, за 3 дня так и не смог найти решение, очень прошу, помогите, пожалуйста
Полезно

Комментарии

10
Здесь представлена уязвимость type jangling характерная для нестрогого сравнения в php если кратко, то тебе нужно найти такой пароль, чтобы первый символ его хеша начинался с 0
 
Мне кажется это и есть ответ, пробовал?
Пробовал, но перед отправкой пароля он его хэширует, слабым сравнением тоже пытался, чтобы хэш начинался с 0e и цифрами далее, но не помогло
1740476011448.webp

Не знаю, что это может значит, но во кладке Network ко всему этому добавляется :5, возможно из-за этого обычные значения, которые при хэшировании для слабого сравнения равны 0 не работают

Возможно действительно нужно подобрать нужное значение, но я не знаю как :(
 
Последнее редактирование:
Вау! Спасибо вам за помощь
тебе нужно было внимательно прочитать про эту уязвимость, и вставить не сам хэш и строку, которая приводит к образованию такого хэша