Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Песочница (https://forum.antichat.xyz/forumdisplay.php?f=189)
-   -   SQL-INJ, Помогите) stacked queries. (https://forum.antichat.xyz/showthread.php?t=463615)

Leendesst 23.06.2018 13:09

Здравствуйте, уважаемые форумчане. Столкнулся с такой забавной дырой. Крутится как error-based, тайм блинд и просто как блиндовая. Но нужно раскрутить как stacked queries.

Вот уязвимый код.

PHP код:

PHP:
[
COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"SELECT * FROM group WHERE name='$123'"[/COLOR][COLOR="#007700"]);
if([/COLOR][COLOR="#0000BB"]$sv[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]num_rows[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$select[/COLOR][COLOR="#007700"])){
[/
COLOR][COLOR="#0000BB"]$sv[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"DELETE FROM group WHERE name='$123' AND type='1' OR name='$123' AND type='0'"[/COLOR][COLOR="#007700"]);
[/
COLOR][COLOR="#0000BB"]$st[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]query[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"INSERT INTO logs VALUES(null, '$1234', '$123', '"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]time[/COLOR][COLOR="#007700"]().[/COLOR][COLOR="#DD0000"]"')"[/COLOR][COLOR="#007700"]);
echo[/COLOR][COLOR="#DD0000"]" Разбанен"[/COLOR][COLOR="#007700"];
}
else echo[/COLOR][COLOR="#DD0000"]"Ошибка"[/COLOR][COLOR="#007700"];
}
else echo[/COLOR][COLOR="#DD0000"]"Ошибка"[/COLOR][COLOR="#007700"];
[/
COLOR][COLOR="#0000BB"]?>
[/COLOR][/COLOR] 

Если юзать POST зпрос, натыкаемся на SELECT. Вроде как можно через Cookie внедрить stacked queries.

Условие: Запрос происходит только тогда, если в бд есть запись, в моём случае в таблице всего 3 записи = 3 попытки

crlf 23.06.2018 18:07

Если я правильно понимаю, то тут контекст особо не важен и в какой запрос внедряться не имеет значения.

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

Цитата:

Сообщение от None
123'; INSERT INTO known_table VALUES(1,2,3,4,5...etc); -- 1

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

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

Цитата:

Сообщение от None
123',(SELECT version()), '1529762427') -- 1


Leendesst 23.06.2018 20:10

Цитата:

Сообщение от crlf
crlf said:

Если я правильно понимаю, то тут контекст особо не важен и в какой запрос внедряться не имеет значения.
Есть первая инъекция в селекте, если БД или приложение имеет поддержку "stacked queries". Можно сразу внедрить произвольный запрос, типа:
И посмотреть на результат в выводе из таблицы "known_table".
Если нужно просто получить вывод, без последовательных запросов, то в запросе с инсертом, при возможности просмотра содержимого таблицы "logs", внедряемся через $1234 примерно так:

Спасибо за отклик) Не вышло, ибо query поддерживает только 1 запрос(

Может кому эта тема ещё пригодится, так как "stacked queries" очень полезная вещь, но редкая(

Scipio 24.06.2018 21:37

могу ошибаться, но если mysql, то stacked queries не получится. Блин, ща некогда разбирать, но на вскидку надо думать в сторону того что в post (select) внедрить типа and 1=0 union select ..., тогда delete не выполнится из-за ошибки, а в куки внедрять запрос уже правильный для insert и с коментарием в конце, тогда пост запрос в insert будет проигнорирован

Leendesst 24.06.2018 23:32

Цитата:

Сообщение от Scipio
Scipio said:

могу ошибаться, но если mysql, то stacked queries не получится. Блин, ща некогда разбирать, но на вскидку надо думать в сторону того что в post (select) внедрить типа and 1=0 union select ..., тогда delete не выполнится из-за ошибки, а в куки внедрять запрос уже правильный для insert и с коментарием в конце, тогда пост запрос в insert будет проигнорирован

Ну слушай. Недавно сливал сайтец, там sqlmap смог взять как stacked queries, там MySQL

Scipio 24.06.2018 23:39

Ну может слишком специфичное php-приложение (в pma тоже можно stacked queries делать), либо как uговорится одно из двух)


Время: 08:49