HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ > Песочница
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 23.06.2018, 13:09
Leendesst
Познающий
Регистрация: 20.11.2016
Сообщений: 64
С нами: 4989206

Репутация: 0
По умолчанию

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

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

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 попытки
 
Ответить с цитированием

  #2  
Старый 23.06.2018, 18:07
crlf
Постоянный
Регистрация: 18.03.2016
Сообщений: 663
С нами: 5344886

Репутация: 441


По умолчанию

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

Есть первая инъекция в селекте, если БД или приложение имеет поддержку "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
 
Ответить с цитированием

  #3  
Старый 23.06.2018, 20:10
Leendesst
Познающий
Регистрация: 20.11.2016
Сообщений: 64
С нами: 4989206

Репутация: 0
По умолчанию

Цитата:
Сообщение от crlf  

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

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

  #4  
Старый 24.06.2018, 21:37
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами: 10274726

Репутация: 1917


По умолчанию

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

  #5  
Старый 24.06.2018, 23:32
Leendesst
Познающий
Регистрация: 20.11.2016
Сообщений: 64
С нами: 4989206

Репутация: 0
По умолчанию

Цитата:
Сообщение от Scipio  

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

  #6  
Старый 24.06.2018, 23:39
Scipio
Members of Antichat - Level 5
Регистрация: 02.11.2006
Сообщений: 781
С нами: 10274726

Репутация: 1917


По умолчанию

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





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.