SQL-INJ, Помогите) stacked queries.

Discussion in 'Песочница' started by Leendesst, 23 Jun 2018.

  1. Leendesst

    Leendesst New Member

    Joined:
    20 Nov 2016
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте, уважаемые форумчане. Столкнулся с такой забавной дырой. Крутится как error-based, тайм блинд и просто как блиндовая. Но нужно раскрутить как stacked queries.
    Вот уязвимый код.



    PHP:
    <?php
        error_reporting
    (0);
        
    $nicknames $_POST['123'];
        
    $username $_COOKIE['1234'];
        if(
    $nicknames && $username){
            
    $select $sv->query("SELECT * FROM group WHERE name='$123'");
            if(
    $sv->num_rows($select)){
                
    $sv->query("DELETE FROM group WHERE name='$123' AND type='1' OR name='$123' AND type='0'");
                
    $st->query("INSERT INTO logs VALUES(null, '$1234', '$123', '".time()."')");
                echo 
    "<span style='color: green' class='uk-icon-ok'> Разбанен</span>";
            }
            else echo 
    "<span style='color: red'>Ошибка</span>";
        }
        else echo 
    "<span style='color: red'>Ошибка</span>";
    ?>
    Если юзать POST зпрос, натыкаемся на SELECT. Вроде как можно через Cookie внедрить stacked queries.
    Условие: Запрос происходит только тогда, если в бд есть запись, в моём случае в таблице всего 3 записи = 3 попытки :)
     
  2. crlf

    crlf Green member

    Joined:
    18 Mar 2016
    Messages:
    634
    Likes Received:
    1,325
    Reputations:
    408
    Если я правильно понимаю, то тут контекст особо не важен и в какой запрос внедряться не имеет значения.

    Есть первая инъекция в селекте, если БД или приложение имеет поддержку "stacked queries". Можно сразу внедрить произвольный запрос, типа:

    И посмотреть на результат в выводе из таблицы "known_table".

    Если нужно просто получить вывод, без последовательных запросов, то в запросе с инсертом, при возможности просмотра содержимого таблицы "logs", внедряемся через $1234 примерно так:

     
    Leendesst likes this.
  3. Leendesst

    Leendesst New Member

    Joined:
    20 Nov 2016
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    Спасибо за отклик) Не вышло, ибо query поддерживает только 1 запрос(
    Может кому эта тема ещё пригодится, так как "stacked queries" очень полезная вещь, но редкая(
     
  4. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    могу ошибаться, но если mysql, то stacked queries не получится. Блин, ща некогда разбирать, но на вскидку надо думать в сторону того что в post (select) внедрить типа and 1=0 union select ..., тогда delete не выполнится из-за ошибки, а в куки внедрять запрос уже правильный для insert и с коментарием в конце, тогда пост запрос в insert будет проигнорирован
     
    #4 Scipio, 24 Jun 2018
    Last edited: 24 Jun 2018
    Leendesst likes this.
  5. Leendesst

    Leendesst New Member

    Joined:
    20 Nov 2016
    Messages:
    64
    Likes Received:
    0
    Reputations:
    0
    Ну слушай. Недавно сливал сайтец, там sqlmap смог взять как stacked queries, там MySQL
     
  6. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    Ну может слишком специфичное php-приложение (в pma тоже можно stacked queries делать:)), либо как uговорится одно из двух)
     
    Leendesst likes this.
Loading...