Просмотр полной версии : Помощь с SQL-Inj
Leendesst
03.02.2019, 01:08
Всем привет, есть такой скрипт, записывает логи. Недавно у знакомого слили через него сайт, но как обошли фильтр, мы не поняли(Оба знаем sql как прикладной язык).
PHP:
$crash=clear($_POST['crash']);
$db->insert("INSERT INTO `crashlogs` (id,name,crash,time) V ALUES (NULL,'$user','$crash','".time()."')");
functionclear($s1){
$s1=str_replace("\\",'/',$s1);
returnstr_replace(array("'",'"','\\','','$','%'),'',$s1);
}
Функция insert в себе фильтрации не несёт
Если кто сможет подсказать, буду очень благодарен.
ps: $user ограничен по длине в 20 символов.
Почему решили, что именно этот код поспсобствовал сливу? Кто и для чего читает эти логи? Не видно что есть $user и т.д. Если не брать кучу неизвестных в расчёт, то возможно как-то так:
Code:
user=vasyans\
crash=,version(),1549180652)#
Code:
INSERT INTO `crashlogs` (id,name,crash,time) VALUES (NULL,'vasyans\',',version(),1549180652)#','154918 0652')
Leendesst
03.02.2019, 14:58
crlf said:
↑ (https://antichat.live/posts/4282080/)
Почему решили, что именно этот код поспсобствовал сливу? Кто и для чего читает эти логи? Не видно что есть $user и т.д. Если не брать кучу неизвестных в расчёт, то возможно как-то так:
Code:
user=vasyans\
crash=,version(),1549180652)#
Code:
INSERT INTO `crashlogs` (id,name,crash,time) VALUES (NULL,'vasyans\',',version(),1549180652)#','154918 0652')
Злоумышленники дропнули таблицу crashlogs. Тестировал sqlmap'ом дыру - он крутит как error based, stacked query, но потом говорит, что это ложноположительное срабатывание..
По логам было всё примерно так:
00:00 - Отправленно ~4000 запросов на данный скрипт.
0:15 - Зашли уже в pma, через pma залили шелл.
0:18 -Дропнули таблицу crashlogs.
Сам сайт на dle(10.0), с pma и mysql понятно всё. Знакомый не обновляется, а база от root'а работала.
Весь скрипт:
PHP:
20) die();
if(c($crash,"Pixel format not accelerated")){
echo"Игра не запустилась.\r\nОши ка при поиске видеокарты! \r\nПожалуйста, переустанов те драйвера видеокарты!";
}
if(c($crash,"Cant load library")){
echo"Попробуйте отключить анти вирус!";
}
if(c($crash,"Cant find dependent libraries")){
echo"Установите компоненты Visual C++.";
}
if(c($crash,"OutOfMemory")){
echo"Не хватает ОЗУ для игры!\r\ nПожалуйста, выберите боль ше 768мб.";
}
if(strlen($crash)>100000) die();
$db->insert("INSERT INTO `crashlogs` (id,name,crash,time) V ALUES (NULL,'$user','$crash','".time()."')");
functionclear($s1){
$s1=str_replace("\\",'/',$s1);
returnstr_replace(array("'",'"','\\','','$','%'),'',$s1);
}
functionc($s1,$s2){
if (strpos($s1,$s2) !==false) {
returntrue;
}
returnfalse;
}
?>
Leendesst said:
↑ (https://antichat.live/posts/4282130/)
Весь скрипт
А где $crash = clear($_POST['crash']); ?
В общем, если обе переменные проходят через clear, инъекции нет.
Leendesst
03.02.2019, 19:24
crlf said:
↑ (https://antichat.live/posts/4282159/)
А где
$crash = clear($_POST['crash']);
?
В общем, если обе переменные проходят через
clear
, инъекции нет.
Что-то пропустил. Тоже через clear идёт оно) Ладно, спасибо за помощь, будем копать логи дальше)
BabaDook
03.02.2019, 19:51
логи выкладывай, разберёмся как захекали тебя
Leendesst
03.02.2019, 20:12
BabaDook said:
↑ (https://antichat.live/posts/4282205/)
логи выкладывай, разберёмся как захекали тебя
К сожалению у него не логируются ip, всё localhost, но видно отчётливо, что гоняли сайт acunetix'ом..
Было дело ещё в ноябре, но он там что-то сам пытался найти, но не вышло.
PS: База у него от рута работала ещё, был pma, шелл точно через mysql влили.
Логи за тот день: https://yadi.sk/d/KKBu4uj3y0fl6A
Сам сайт на dle, 10 версия. Форум bullet energy, модули чистые, всё смотрели, всё экранируется..
BabaDook
03.02.2019, 20:16
Один из самый *****тых топиков форума
/forums/110/ (https://antichat.live/forums/110/)
Leendesst
03.02.2019, 20:27
BabaDook said:
↑ (https://antichat.live/posts/4282215/)
Один из самый *****тых топиков форума
/forums/110/ (https://antichat.live/forums/110/)
А он разве не помер?) 2015 год - самая свежая тема)
BabaDook
03.02.2019, 21:19
У меня блокнот зависает от такого лога. сарян
Leendesst
03.02.2019, 22:18
BabaDook said:
↑ (https://antichat.live/posts/4282222/)
У меня блокнот зависает от такого лога. сарян
notepad?)
BabaDook
03.02.2019, 22:26
Leendesst said:
↑ (https://antichat.live/posts/4282243/)
notepad?)
Точно
Логи очень сильно засраны акунетиксом, сходу сказать сложно. По хорошему, нужно проводить аудит проекта. Если сервис профитный, наймите специалиста (пр. @winstrool (https://antichat.live/members/33917/)), т.к. незванный гость мог оставить подарочков себе на будущее
Leendesst said:
↑ (https://antichat.live/posts/4282213/)
модули чистые, всё смотрели, всё экранируется..
Я бы небыл так уверен, беглый осмотр логов показал наличие Directory Traversal в некоторых скриптах:
Code:
/viewskin.php?skin=../../../../../../../../../../../etc/hosts // true
/viewskin.php?skin=../../../../../../../../../../../etc/hostsx // false
/viewcloak.php?skin=../../../../../../../../../../../etc/hosts // true
/viewcloak.php?skin=../../../../../../../../../../../etc/hostsx // false
Так же phpmyadmin лежит не по старндартному пути, нафазить такое сложно, поэтому не факт что именно скуля послужила точкой проникновения.
Leendesst
04.02.2019, 01:48
crlf said:
↑ (https://antichat.live/posts/4282260/)
Логи очень сильно засраны акунетиксом, сходу сказать сложно. По хорошему, нужно проводить аудит проекта. Если сервис профитный, наймите специалиста (пр.
@winstrool (https://antichat.live/members/33917/)
), т.к. незванный гость мог оставить подарочков себе на будущее
Я бы небыл так уверен, беглый осмотр логов показал наличие Directory Traversal в некоторых скриптах:
Code:
/viewskin.php?skin=../../../../../../../../../../../etc/hosts // true
/viewskin.php?skin=../../../../../../../../../../../etc/hostsx // false
/viewcloak.php?skin=../../../../../../../../../../../etc/hosts // true
/viewcloak.php?skin=../../../../../../../../../../../etc/hostsx // false
Так же phpmyadmin лежит не по старндартному пути, нафазить такое сложно, поэтому не факт что именно скуля послужила точкой проникновения.
Да. Вот меня тоже удивило.. В pma зашли и всё... Вот как знали прям)
По поводу аудита, предложил ему, он возможно возьмёт)
Там всё старое как дерьмо мамонта, pma - старый, mysql - старый.. Тем более база у него от рута работает
BabaDook
04.02.2019, 02:20
Leendesst said:
↑ (https://antichat.live/posts/4282297/)
Да. Вот меня тоже удивило.. В pma зашли и всё... Вот как знали прям)
По поводу аудита, предложил ему, он возможно возьмёт)
Там всё старое как дерьмо мамонта, pma - старый, mysql - старый.. Тем более база у него от рута работает
Старое не значит плохое.
Leendesst
05.02.2019, 01:30
BabaDook said:
↑ (https://antichat.live/posts/4282305/)
Старое не значит плохое.
Про MySQL это не скажешь, в 16 году там нашли большую бреш))
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot