Автор: @Vespii

Ссылка на таск Codeby:

https://codeby.games/categories/web/2ca75f41-8cd9-460e-89ec-bfdd38a57e65

Описание задания

Тайна всегда привлекательна

62.173.140.174:16045

Решение

Заходим на web-страницу. Нужно подождать завершение анимации.

Шучу, ждать не надо. На главной странице ничего нет. Поищем директории.

Скачиваем backup. В нем находятся исходники сайта.

index.php

В коде можно заметить 2 параметра action и secretKey, получаемые методом POST. Значение action нам известно, а у secretKey находится в отдельном файле.

<?php
 
include("secretKey.php");
 
if (isset($_POST['action']) && $_POST['action'] == 'confirmSecretKey' && isset($_POST['secretKey']) && strcmp($_POST['secretKey'], $secretKey) == 0) {
 
echo "<h1>Welcome! You're secret key <span style='color: red;'>".$secretKey."</span> has been accepted!</h1>";
 
exit; }
 
?>

secretKey.php

В переменной $secretKey, скорее всего, находится флаг.

<?php
 
$secretKey = "{REDACTED}";
 
?>

При рассмотрении кода был замечен strcmp(). Эта функция используется для проверки подлинности данных, однако она не учитывает их тип. Если отправить пустой массив secretKey[]=, то strcmp() вернет значение NULL, что приведет к выводу true.

На сайте расписан метод GET, но можно по аналогии сделать и для POST:

Tags:

#codeby#writeup#web#medium