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

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

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

Всем привет, есть такой скрипт, записывает логи. Недавно у знакомого слили через него сайт, но как обошли фильтр, мы не поняли(Оба знаем sql как прикладной язык).

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$crash[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]clear[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_POST[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'crash'[/COLOR][COLOR="#007700"]]);
[/
COLOR][COLOR="#0000BB"]$db[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]insert[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"INSERT INTO `crashlogs` (id,name,crash,time) VALUES (NULL,'[/COLOR][COLOR="#0000BB"]$user[/COLOR][COLOR="#DD0000"]','[/COLOR][COLOR="#0000BB"]$crash[/COLOR][COLOR="#DD0000"]','"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]time[/COLOR][COLOR="#007700"]().[/COLOR][COLOR="#DD0000"]"')"[/COLOR][COLOR="#007700"]);
function[/COLOR][COLOR="#0000BB"]clear[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"]){
[/
COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"\\"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"]);
return[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"](array([/COLOR][COLOR="#DD0000"]"'"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'"'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'\\'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'$'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'%'[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"]);
}[/COLOR][/COLOR
Функция insert в себе фильтрации не несёт

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

ps: $user ограничен по длине в 20 символов.
 
Ответить с цитированием

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

Репутация: 441


По умолчанию

Почему решили, что именно этот код поспсобствовал сливу? Кто и для чего читает эти логи? Не видно что есть $user и т.д. Если не брать кучу неизвестных в расчёт, то возможно как-то так:

Код:
user=vasyans\
crash=,version(),1549180652)#
Код:
INSERT INTO `crashlogs` (id,name,crash,time) VALUES  (NULL,'vasyans\',',version(),1549180652)#','1549180652')
 
Ответить с цитированием

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

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

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

Почему решили, что именно этот код поспсобствовал сливу? Кто и для чего читает эти логи? Не видно что есть $user и т.д. Если не брать кучу неизвестных в расчёт, то возможно как-то так:
Код:
user=vasyans\
crash=,version(),1549180652)#
Код:
INSERT INTO `crashlogs` (id,name,crash,time) VALUES  (NULL,'vasyans\',',version(),1549180652)#','1549180652')
Злоумышленники дропнули таблицу crashlogs. Тестировал sqlmap'ом дыру - он крутит как error based, stacked query, но потом говорит, что это ложноположительное срабатывание..

По логам было всё примерно так:

00:00 - Отправленно ~4000 запросов на данный скрипт.

0:15 - Зашли уже в pma, через pma залили шелл.

0:18 -Дропнули таблицу crashlogs.

Сам сайт на dle(10.0), с pma и mysql понятно всё. Знакомый не обновляется, а база от root'а работала.

Весь скрипт:

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"][/COLOR][COLOR="#0000BB"]20[/COLOR][COLOR="#007700"]) die();

if([/
COLOR][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$crash[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"Pixel format not accelerated"[/COLOR][COLOR="#007700"])){
echo[/COLOR][COLOR="#DD0000"]"Игра не запустилась.\r\nОшибка при поиске видеокарты!\r\nПожалуйста, переустановите драйвера видеокарты!"[/COLOR][COLOR="#007700"];
}
if([/
COLOR][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$crash[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"Cant load library"[/COLOR][COLOR="#007700"])){
echo[/COLOR][COLOR="#DD0000"]"Попробуйте отключить антивирус!"[/COLOR][COLOR="#007700"];
}
if([/
COLOR][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$crash[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"Cant find dependent libraries"[/COLOR][COLOR="#007700"])){
echo[/COLOR][COLOR="#DD0000"]"Установите компоненты VisualC++."[/COLOR][COLOR="#007700"];
}
if([/
COLOR][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$crash[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]"OutOfMemory"[/COLOR][COLOR="#007700"])){
echo[/COLOR][COLOR="#DD0000"]"Не хватает ОЗУ для игры!\r\nПожалуйста, выберите больше 768мб."[/COLOR][COLOR="#007700"];
}
if([/
COLOR][COLOR="#0000BB"]strlen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$crash[/COLOR][COLOR="#007700"])>[/COLOR][COLOR="#0000BB"]100000[/COLOR][COLOR="#007700"]) die();
[/
COLOR][COLOR="#0000BB"]$db[/COLOR][COLOR="#007700"]->[/COLOR][COLOR="#0000BB"]insert[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"INSERT INTO `crashlogs` (id,name,crash,time) VALUES (NULL,'[/COLOR][COLOR="#0000BB"]$user[/COLOR][COLOR="#DD0000"]','[/COLOR][COLOR="#0000BB"]$crash[/COLOR][COLOR="#DD0000"]','"[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]time[/COLOR][COLOR="#007700"]().[/COLOR][COLOR="#DD0000"]"')"[/COLOR][COLOR="#007700"]);
function[/COLOR][COLOR="#0000BB"]clear[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"]){
[/
COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"\\"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'/'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"]);
return[/COLOR][COLOR="#0000BB"]str_replace[/COLOR][COLOR="#007700"](array([/COLOR][COLOR="#DD0000"]"'"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'"'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'\\'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'$'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'%'[/COLOR][COLOR="#007700"]),[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"]);
}
function[/COLOR][COLOR="#0000BB"]c[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$s2[/COLOR][COLOR="#007700"]){
if ([/COLOR][COLOR="#0000BB"]strpos[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$s1[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$s2[/COLOR][COLOR="#007700"]) !==[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"]) {
return[/COLOR][COLOR="#0000BB"]true[/COLOR][COLOR="#007700"];
}
return[/COLOR][COLOR="#0000BB"]false[/COLOR][COLOR="#007700"];
}
[/
COLOR][COLOR="#0000BB"]?>[/COLOR][/COLOR] 
 
Ответить с цитированием

  #4  
Старый 03.02.2019, 16:26
crlf
Постоянный
Регистрация: 18.03.2016
Сообщений: 663
С нами: 5344886

Репутация: 441


По умолчанию

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

Весь скрипт
А где $crash = clear($_POST['crash']); ?

В общем, если обе переменные проходят через clear, инъекции нет.
 
Ответить с цитированием

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

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

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

А где
$crash = clear($_POST['crash']);
?
В общем, если обе переменные проходят через
clear
, инъекции нет.
Что-то пропустил. Тоже через clear идёт оно) Ладно, спасибо за помощь, будем копать логи дальше)
 
Ответить с цитированием

  #6  
Старый 03.02.2019, 19:51
BabaDook
Познавший АНТИЧАТ
Регистрация: 09.05.2015
Сообщений: 1,066
С нами: 5797046

Репутация: 40


По умолчанию

логи выкладывай, разберёмся как захекали тебя
 
Ответить с цитированием

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

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

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

логи выкладывай, разберёмся как захекали тебя
К сожалению у него не логируются ip, всё localhost, но видно отчётливо, что гоняли сайт acunetix'ом..

Было дело ещё в ноябре, но он там что-то сам пытался найти, но не вышло.

PS: База у него от рута работала ещё, был pma, шелл точно через mysql влили.

Логи за тот день: https://yadi.sk/d/KKBu4uj3y0fl6A

Сам сайт на dle, 10 версия. Форум bullet energy, модули чистые, всё смотрели, всё экранируется..
 
Ответить с цитированием

  #8  
Старый 03.02.2019, 20:16
BabaDook
Познавший АНТИЧАТ
Регистрация: 09.05.2015
Сообщений: 1,066
С нами: 5797046

Репутация: 40


По умолчанию

Один из самый *****тых топиков форума

/forums/110/
 
Ответить с цитированием

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

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

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

Один из самый *****тых топиков форума
/forums/110/
А он разве не помер?) 2015 год - самая свежая тема)
 
Ответить с цитированием

  #10  
Старый 03.02.2019, 21:19
BabaDook
Познавший АНТИЧАТ
Регистрация: 09.05.2015
Сообщений: 1,066
С нами: 5797046

Репутация: 40


По умолчанию

У меня блокнот зависает от такого лога. сарян
 
Ответить с цитированием
Ответ





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


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




ANTICHAT ™ © 2001- Antichat Kft.