Бэкдоры

zeroroot

Добрый день, подскажите пожалуйста как найти в коде бэкдоры, или конструкции в коде которые передают важные данные ?
И как обезопасить данные от базы данных и ftp доступа, чтобы н-ые лица не смогли ничего сделать.

 

ADSoft

молча…. просто берете и ищите, вникаете в то что написано, желательно на все 100%

 

zeroroot

А как примерно выглядят конструкции, просто есть всякие файлы даже обычных и известных библиотек, использующие непонятный код

 

Drunkenmunky

Как угодно.
Всё это сводится примерно к следующему

Код (Text):
  1.  
  2. if($command)
  3. {
  4. action();
  5. }

Пользуйтесь услугами проверенных исполнителей. Платите им задаток.
И не будет вам никаких бэкдоров в коде.

 

yanuzay

Часто вредоносный код зашифрован, какими нибудь алгоритмами шифрования, перед выполнением расшифровывается php функциями.

Например может быть , что то вроде:

PHP:
  1. eval(base64_decode(‘D47cF7fgkl’));

Функция eval() выполняет php код , который передан этой функции

 

musicman3

В первую очередь необходимо отфильтровать все входящие POST/GET/SERVER. Для этого есть разные варианты функций. Основной считается filter_input. Далее нужно фильтровать URL на присутствие XSS. Также от атак SQL-inject в наше время давно уже применяют PDO и подготовленные запросы. Этих трех пунктов хватит чтобы защититься от большей части проблем. Ну и настройки htaccess, сервера и т.п. Главное правило — не доверять всему что из вне, и проводить валидацию, фитльтрацию, хэширование важных данных и т.п.

 

mkramer

Раскройте, пожалуйста, чего мне там фильтровать в урле, какое к этому вообще сервер отношение имеет?

 

don.bidon

Человек путает всякий XSS и бэкдор )

 

musicman3

В формах/выводе фильтрация XSS, url не знаю чего приписал, видимо запарился в тот день. Конечно я ошибся. Спасибо что поправили. В моем проекте я фильтрую весь вывод из БД на XSS. И частично фильтрую некоторые входящие формы на htmlspecialchars. Обычно проще сделать это на выводе в районе обертки PDO ну или еще где-то. Филльтры XSS и LFI фильтруют у меня примерно это:

Код (Text):
  1. «<script», «/script», «javascript:», «/.», «//»

Если есть советы что еще кинуть, то буду рад. Я тестил по большим базам на бэкдоры (нашим и западным), но конечно могут быть еще какие то лазейки, и ключевые слова лучше знать. Хацкеры не сидят на месте, прогрессируют. Обычно этих фильтров уже достаточно на 99% XSS. Я перепробовал несколько тысяч типичных XSS и все закрыл на текущий момент по базам XSS атак. Но лучше быть на чеку всегда. Если есть советы, то это очень хорошо.

 

musicman3

don.bidon

XSS !== Backdoor

 

musicman3

Ок, я не хакер, вам виднее… выразился как смог, но суть думаю ясна. Приму во внимание замечание.

 

mkramer

Достаточно < и > заменить на &lt; &qt; чтоб скрипт не выполнился. Но всё равно, естественно, я делаю htmlspecialchars (точнее, за меня фреймворк делает). Хотя, если нужно оставить какой-то html, тогда другой разговор. Но в таком случае я пользуюсь готовыми решениями, а не самописом, например HtmlPurifier

 

Дюран

Если вы хотите обезопаситься от предыдущих разработчиков, то тут без специалиста не обойтись.
И то, это будет не так просто.
Ведь любая ошибка, не полностью продуманная система прав доступа, намеренно опущенная хоть в одном случае защита от xss, может стать дополнительным входом на ваш сайт.
Плюс держите код в Git, чтобы изменения в файлах были видны.

 

musicman3

Этого оказывается не достаточно. Я сам столкнулся с этим, когда тестировал по базам XSS. Там такие хитрецы наделали кода что лучше быть к этому готовым.

Как пример атаки:

Код (Javascript):
  1. +/v9 +ADwscript+AD4alert(1)+ADw-/script+AD4

Если есть js фреймворки вроде VUE, Angullar и т.п., то есть и для них отличные дыры

Код (Text):
  1. {{constructor.constructor(‘alert(1)’)()}}

Познавательно походить по базам XSS методов.

Вот если на входе htmlspecialchars и еще выход фильтровать по другим параметрам, то мне удалось так все методы что я нашел в базах обезвредить. Но у меня js на ванили и нет js-фреймворков. У кого они есть, там еще нужно фильтровать. Но не факт что нет еще методов.

Также нужно экранировать одинарные кавычки и/или 2 слэша //, ибо может быть атака типа такой:

Код (Javascript):
  1. ‘;window[‘ale‘+’rt‘](window[‘doc‘+’ument‘][‘dom‘+’ain‘]);//

или

Код (Javascript):
  1. ‘;this[/al/.source+/ert/.source](/XSS/.source);//
 

mkramer

И каким образом пользователь может мне подставить такое? Angular 100% не подставляет в eval содержимое строковых переменных

Опять же, это актуально, если я беру и вывожу эту хрень посреди js-кода, не пропуская через json_encode();
— Добавлено —

А как эксплуатировать эту хрень? Вот я её подставил, она нифига не сработала
https://www.ideone.com/Uupy2Y
— Добавлено —
Поделитесь с сообществом сайты, где вы всё это взяли?

 

musicman3

https://portswigger.net/web-security/cross-site-scripting/cheat-sheet
https://owasp.org/www-community/xss-filter-evasion-cheatsheet
и т.п.

Таких сайтов очень много. Там перечисляются методы, которые имеют место быть. Хорошие базы для тестирования по сути. Вставляем в форму обратной связи к примеру (или в другие места, где это актуально через DOM и т.п.) и тестируем. Что срабатывает то и прикрываем.

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *