Inurl php block id какой заработок. Инструкция по использованию jSQL Injection — многофункционального инструмента поиска и эксплуатации SQL-инъекций в Kali Linux

CoinHive is an online service which provides cryptocurrency miners (crypto mining malware) that can be installed on websites using JavaScript. The JavaScript miner runs in the browser of the website visitors and mines coins on the Monero blockchain. It is promoted as an alternative to placing advertising on the website. And turns out, it is being used by hackers as end customers of a website by infected the website in the first place.

To mine the Monero coin using CoinHive, all you have to do is place a small JavaScript snippet in the header/footer of your website. When a visitor comes to the site, the CoinHive JavaScript gets activated and starts utilizing the CPU power available to it. With 10–20 active miners on the site, the average monthly revenue is about 0.3 XMR (~$109). To multiply their revenue, hackers have been exploiting vulnerable websites by injecting crypto mining malware (CoinHive)

While CoinHive itself is not a malicious service, it has been extensively used by hackers to mine coins using . As a result, many malware scanners and security agencies have blacklisted the domain.

Flagged Domains Hosting the Crypto Mining Code

We have compiled a list of 3rd party domains that have been seen to host as CoinHive code using by the malware. The names of the JavaScript scripts are intentionally named after common file names so that they appear to be legitimate and webmaster doesn’t get suspicious on seeing them.

  • ads.locationforexpert[.]com
  • camillesanz[.]com/lib/status.js
  • security.fblaster[.]com
  • fricangrey[.]top/redirect_base/redirect.js
  • alemoney[.]xyz/js/stat.js
  • africangirl[.]top/redirect_base/redirect.js
  • ribinski[.]us/redirect_base/redirect.js
  • aleinvest[.]xyz/js/theme.js
  • babybabybabyoooh[.]net/beta.js
  • www.threadpaints[.]com/js/status.js
  • oneyoungcome[.]com/jqueryui.js
  • wp-cloud[.]ru
  • doubleclick1[.]xyz
  • doubleclick2[.]xyz
  • doubleclick3[.]xyz
  • doubleclick4[.]xyz
  • doubleclick5[.]xyz
  • doubleclick6[.]xyz
  • api[.]l33tsite[.]info
  • ws[.]l33tsite[.]info
Finding the crypto mining malware(CoinHive)

If you detect that your website has been running crypto-mining scripts without your knowledge, it is highly likely that your website is hacked or has been infected. Here are some steps you can take to identify if your website is hacked:

Fixing Crypto Mining Coinhive Malware WordPress

We’ve seen that core WordPress files have been modified to place the malware code. In many cases, the theme files have also been hijacked to place the JavaScript crypto mining code. The malware checks the user-agent of the request and only includes the malicious JS code if the visitor it not a search engine bot from Google/Bing/Yahoo etc.


Malicious code infecting the headers.php file in WordPress themes

Some of the files you should check and compare for modifications:

  • index.php
  • wp-admin/admin-header.php
  • wp-includes/general-template.php
  • wp-includes/default-filters.php
  • wp-includes/manifest.php.
  • Look for unrecognized code in header.php in your theme folder
  • functions.php
Fixing Crypto Mining Coinhive Malware for Magento

If you are using Magento, look for crypto mining malware in the database. Open the ‘core_config_data table’ table using a tool like phpMyAdmin and look for the value of design/head/includes . Examine the code and remove any JavaScript files being included there using the tag.

Also, check the Copyright text in the footer to make sure no additional malicious code is given here. Navigate and examine System -> Configuration -> Design -> Footer -> Copyright.

Don’t forget to clear all your Magento after removing any malicious code.

Worried about your website’s safety in light of rampant online vulnerabilities? can detect crypto mining hacks & further your protection from online vulnerabilities.

Did you detect a suspicious crypto mining script? Drop us a message on the chat widget and we’d be happy to help you fix it.

Fixing the Crypto Malware(Coinhive) Hack from OpenCart

Some of the common files infected in OpenCart are mentioned below. The steps to clean are similar to those mentioned for WordPress. Check the integrity of these files by comparing them with the original OpenCart code.

  • index.php
  • catalog/view/theme/default/template/common/header.tpl
  • catalog/view/theme/default/template/common/header.twig
Fixing

In the case of Drupal sites, look at .js files of modules. We found the crypto mining code in the Google Analytics module:

  • sites/all/modules/google_analytics/googleanalytics.js

The CoinHive code was added to this file, right after the Google Analytics code. It triggered the code to begin mining of the coins in the client’s browser.

Cryptomining Malware CoinHive in Database

Hackers inject Malicious CoinHive Crypto mining code into the website’s database. Here is the screenshot of the code.

Preventing Cryptojacking Malware (CoinHive) Hack
  • Perform regular file integrity monitoring: Use tools like to regularly monitor files on the server and see when they have changed. Hackers tend to modify files on the server and add malware, and viruses in the core files of your website. Such code can be executed server-side i.e in PHP, Python etc or even on the client’s browser, i.e in JavaScript.
  • Only include JavaScript files from trusted sources and CDNs: Be careful before you include JS files into your website. JavaScript is a very powerful tool and
  • Create a Content Security Policy (CSP): It is a computer security standard to prevent code injection attacks like , clickjacking etc. which allow execution of malicious content in the trusted web page on client browsers. Read this guide from Google about the fundamentals of CSP and how you can set one.
  • Regularly update your CMS: Security patches/updates are often released with newer versions of the CMS. It is highly recommended to routinely scan for new versions and upgrade.
  • Install ALL security patches released by vendors: Almost all CMSs release security patches as and when critical issues are reported. Subscribe to their security mailing lists/RSS feeds and keep your software up to date.
Conclusion

CoinHive itself is not a malicious service, but it has been extensively used by hackers to mine cryptocurrencies like Ethereum, Litecoin etc. To mitigate such unauthorized use, CoinHive has released a new ‘AuthedMine’ version of their JavaScript library which requires explicit consent from the site visitors to begin mining the coins. However, the older version is still out there allowing hackers to mine coins from unsuspecting site visitors and owners of hacked sites.

Запустите скаченный файл двойным кликом (нужно иметь виртуальную машину ).

3. Анонимность при проверке сайта на SQL-инъекции
Настройка Tor и Privoxy в Kali Linux

[Раздел в разработке]

Настройка Tor и Privoxy в Windows

[Раздел в разработке]

Настройки работы через прокси в jSQL Injection

[Раздел в разработке]

4. Проверка сайта на SQL-инъекции с jSQL Injection

Работа с программой крайне проста. Достаточно ввести адрес сайта и нажать ENTER.

На следующем скриншоте видно, что сайт уязвим сразу к трём видам SQL-инъекций (информация о них указана в правом нижнем углу). Кликая на названия инъекций можно переключить используемый метод:

Также нам уже выведены имеющиеся базы данных.

Можно посмотреть содержимое каждой таблицы:

Обычно, самым интересным в таблицах являются учётные данные администратора.

Если вам повезло и вы нашли данные администратора — то радоваться рано. Нужно ещё найти админку, куда эти данные вводить.

5. Поиск админок с jSQL Injection

Для этого переходите на следующую вкладку. Здесь нас встречает список возможных адресов. Можете выбрать одну или несколько страниц для проверки:

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

К сожалению, нерадивых программистов, которые хранят пароли в открытом виде, не очень много. Довольно часто в строке пароля мы видим что-нибудь вроде

8743b52063cd84097a65d1633f5c74f5

Это хеш. Расшифровать его можно брутфорсом. И… jSQL Injection имеет встроенный брутфорсер.

6. Брутфорсинг хешей с помощью jSQL Injection

Несомненным удобство является то, что не нужно искать другие программы. Здесь имеется поддержка множества самых популярных хешей.

Это не самый оптимальный вариант. Для того, чтобы стать гуру в расшифровке хешей, рекомендуется Книга « » на русском языке.

Но, конечно, когда под рукой нет другой программы или нет времени на изучение, jSQL Injection со встроенной функцией брут-форса придётся очень кстати.

Присутствуют настройки: можно задать какие символы входят в пароль, диапазон длины пароля.

7. Операции с файлами после обнаружения SQL-инъекций

Кроме операций с базами данных — их чтение и модификация, в случае обнаружения SQL-инъекций возможно выполнение следующих файловых операций:

  • чтение файлов на сервере
  • выгрузка новых файлов на сервер
  • выгрузка шеллов на сервер

И всё это реализовано в jSQL Injection!

Есть ограничения — у SQL-сервера должны быть файловые привилегии. У разумных системных администраторов они отключены и доступа к файловой системе получить не удастся.

Наличие файловых привилегий достаточно просто проверить. Перейдите в одну из вкладок (чтение файлов, создание шелла, закачка нового файла) и попытайтесь выполнить одну из указанных операций.

Ещё очень важное замечание — нам нужно знать точный абсолютный путь до файла с которым мы будем работать — иначе ничего не получится.

Посмотрите на следующий скриншот:

На любую попытку операции с файлом нам отвечают: No FILE privilege (нет файловых привелегий). И ничего здесь поделать нельзя.

Если вместо этого у вас другая ошибка:

Problem writing into [название_каталога]

Это означает, что вы неправильно указали абсолютный путь, в который нужно записывать файл.

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

Такая запись (строка Win64 ) даёт основание нам предположить, что мы имеем дело с ОС Windows:

Keep-Alive: timeout=5, max=99 Server: Apache/2.4.17 (Win64) PHP/7.0.0RC6 Connection: Keep-Alive Method: HTTP/1.1 200 OK Content-Length: 353 Date: Fri, 11 Dec 2015 11:48:31 GMT X-Powered-By: PHP/7.0.0RC6 Content-Type: text/html; charset=UTF-8

Здесь у нас какой-то из Unix (*BSD, Linux):

Transfer-Encoding: chunked Date: Fri, 11 Dec 2015 11:57:02 GMT Method: HTTP/1.1 200 OK Keep-Alive: timeout=3, max=100 Connection: keep-alive Content-Type: text/html X-Powered-By: PHP/5.3.29 Server: Apache/2.2.31 (Unix)

А здесь у нас CentOS:

Method: HTTP/1.1 200 OK Expires: Thu, 19 Nov 1981 08:52:00 GMT Set-Cookie: PHPSESSID=9p60gtunrv7g41iurr814h9rd0; path=/ Connection: keep-alive X-Cache-Lookup: MISS from t1.hoster.ru:6666 Server: Apache/2.2.15 (CentOS) X-Powered-By: PHP/5.4.37 X-Cache: MISS from t1.hoster.ru Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Date: Fri, 11 Dec 2015 12:08:54 GMT Transfer-Encoding: chunked Content-Type: text/html; charset=WINDOWS-1251

В Windows типичной папкой для сайтов является C:\Server\data\htdocs\ . Но, на самом деле, если кто-то «додумался» делать сервер на Windows, то, весьма вероятно, этот человек ничего не слышал о привилегиях. Поэтому начинать попытки стоит прямо с каталога C:/Windows/:

Как видим, всё прошло прекрасно с первого раза.

Но вот сами шеллы jSQL Injection у меня вызывают сомнения. Если есть файловые привилегии, то вы вполне можете закачать что-нибудь с веб-интерфейсом.

8. Массовая проверка сайтов на SQL-инъекции

И даже эта функция есть у jSQL Injection. Всё предельно просто — загружаете список сайтов (можно импортировать из файла), выбираете те, которые хотите проверить и нажимаете соответствующую кнопку для начала операции.

Вывод по jSQL Injection

jSQL Injection хороший, мощный инструмент для поиска и последующего использования найденных на сайтах SQL-инъекций. Его несомненные плюсы: простота использования, встроенные сопутствующие функции. jSQL Injection может стать лучшим другом новичка при анализе веб-сайтов.

Из недостатков я бы отметил невозможность редактирования баз данных (по крайней мере я этого функционала не нашёл). Как и у всех инструментов с графическим интерфейсом, к недостаткам этой программы можно приписать невозможность использования в скриптах. Тем не менее некоторая автоматизация возможна и в этой программе — благодаря встроенной функции массовой проверки сайтов.

Программой jSQL Injection пользоваться значительно удобнее чем sqlmap . Но sqlmap поддерживает больше видов SQL-инъекций, имеет опции для работы с файловыми файерволами и некоторые другие функции.

Итог: jSQL Injection — лучший друг начинающего хакера.

Справку по данной программе в Энциклопедии Kali Linux вы найдёте на этой странице: http://kali.tools/?p=706

Я рассказывал о программе SQLMAP. Во время написания статьи (точнее перевода и тестирования метода) меня неприятно удивило количество сайтов, в той или иной мере подверженным SQL-инъекциям.

Учитывая популярность SQLMAP и подобных ей инструментов, а также большое количество сайтов, подверженных SQL-инъекциям, я решил написать несколько советов начинающим программистам на PHP, как защитить базу данных от взлома .

Для выявления, подвержен ли скрипт уязвимости, я буду использовать SQLMAP, делать это буду не на локалхосте, а на реальном хостинге. Для ускорения процесса тестирования разных вариантов скриптов, я буду их редактировать прямо на хостинге (). Поехали.

Для тестирования создан файл bad.php, который доступен по адресу

То, что передаётся параметру t прямиком отправляется в sql-запрос.

В нём набран заведомо уязвимый скрипт:

Подставляем кавычку;

Получаем ожидаемое

Ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near "" at line 1

Тестируем:

Естественно, как и следовало ожидать.

1. Экранирование спец символов

Для mysqli функция экранирования называется real_escape_string . Т.е. «более правильней» наш скрипт должен бы выглядеть так:

Всего одна новая строка избавила от всех проблем:

Помните, что экранировать (как и фильтровать) нужно абсолютно все данные, приходящие "с той стороны", т.е. от пользователя. Даже куки, даже те, которые, казалось бы, жёстко прописаны: например, в выпадающем списке три опции – и выбранная опция отправляется на сервер. Казалось, как предопределённая величина может помочь в SQL-инъекциях? Всё очень просто, современные браузеры, даже без специальных плагинов, позволяют редактировать HTML-код на лету. Т.е. вы ожидаете одно из трёх значений, а получаете хитро сконструированный SQL-запрос.

Ещё одна распространённая ошибка – начинающие программисты думают, что есть страница "для всех" – это те, которые отвечают за работу сайта. А есть страницы только для веб-мастера: админка, технические скрипты и т.п. И эти программисты ленятся (или не считают нужным) экранировать/фильтровать данные. Это грубая ошибка – нужно экранировать и фильтровать везде!

2. Фильтрация данных и приведение к ожидаемому типу

Вы обратили внимание, что вместо $_GET[‘t’] я использую filter_input(INPUT_GET, "t") ? Я это делаю не просто так.

Если мы ожидаем получить только число, то использовать примерно так filter_input(INPUT_GET, "t", FILTER_SANITIZE_NUMBER_INT)

Если мы хотим, чтобы были отброшены все тэги и все специальные символы, то мы можем использовать filter_input(INPUT_POST, "t", FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW ) в результате чего удаляются все тэги, удаляются и кодируются специальные символы.

Давайте возьмём наш самый первый уязвимый скрипт и попробуем в нём фильтровать данные таким образом:

Результат полностью аналогичен предыдущему – попытка SQLMAP с треском провалилась.

Для строки можно сделать так

Filter_input(INPUT_GET, "t", FILTER_SANITIZE_ENCODED, FILTER_FLAG_STRIP_HIGH)

(кодирует в формат URL, удаляет специальные символы).

Или так filter_input(INPUT_GET, "t", FILTER_SANITIZE_MAGIC_QUOTES)

(просто экранируются одиночная кавычка ("), двойная кавычка ("), обратный слэш () и NUL (NULL байт)).

3. Ставьте передаваемые в запрос строки в кавычки

Давайте посмотрим на этот код:

Т.е. мы экранируем кавычки, но мы забыли взять в одинарные кавычки переменную $name, которая является частью запроса. А вот результат:

Результат плачевный, не смотря на экранирование кавычек, наш скрипт подвержен SQL-инъекции.

4. Не выводите сообщения об ошибках

Ошибки могут появляться в процессе запроса к базе данных, а также уже на следующих этапах — в процессе обработки полученных значений. Например, был возвращён пустой результат, а скрипт без проверки, сразу пытается его обработать, то появится ошибка.

Если ваши скрипты продолжают оставаться уязвимыми, то отсутствие сообщений об ошибках даст возможность использовать только слепую SQL-инъекцию. Слепая инъекция — это тоже плохо, но это немного усложнит нападающему его задачу.

Если SQL-инжекта нет, а сообщения об ошибках выводятся, то это может дать информацию о файлах, о структуре скриптов. Лучше всего, проверяйте и, если данные после очистки отсутствуют или после запроса базы данных ничего не получено, то отображайте главную страницу.

Не нужно показывать оскорбительных надписей вроде «F*ck you, hacker!», это может обидеть некоторых тестеров. И вместо обычной процедуры «попробовал-не нашёл-переключился на следующий», тестер может взяться за ваш сайт серьёзно.

Рассмотрим такой вариант скрипта:

Т.е. ничего не фильтруется и даже не поставлены кавычки вокруг $name. Результат следующий:

Т.е. в первый момент sqlmap назвала параметр не способным к инъекциям, но очень скоро спохватилась:

GET parameter "t" seems to be "MySQL >= 5.0 boolean-based blind - Parameter replace" injectable

Т.е. параметр уязвим к слепой инъекции.

5. Проверяйте все переменный на возможность инжекта

Переменные, про которые часто забывают:

  • скрытые поля в формах, которые пользователь, по вашему мнению, не видит и не может отредактировать (будьте уверены — и видит и может отредактировать)
  • части адреса страницы (даже если у вас mod_rewrite и адреса страниц вроде site.ru/catalog/page/84, даже при правильной настройки.htaccess, нужно понимать, что остаётся возможность обратиться к вашему сайту по адресу site.ru?razd=catalog&type=page&number=84)
  • имена пользователей
  • данные передаваемые методом POST
  • данные из кукиз
  • данные из referer и т.д.
6. Используйте mod_security (или другой файервол для веб-приложений).

mod_security не решит за вас всех проблем, если вы используете скрипты, изобилующие ошибками и дырами. Но, тем не менее, он здорово усилит любой сервер. Рекомендую мои же статьи:

Заключение

В этой статье я изложил свои знания, позволяющие мне избегать SQL-инъекций при программировании на PHP. Я не претендую на истину в последней инстанции, поэтому буду рад услышать о ваших собственных методах и приёмах.