#15 Bug Bounty v.2 — Основы взлома OWASP. SQL-инъекция(SQLI). MySQL.
Здравствуйте, дорогие друзья.
Я начинал как тестировщик на проникновение, специализирующийся на веб-приложениях, и когда я начал выявлять ошибки, то 80% атак, которые вы проводите, будут направлены против веб-приложений. В конце концов, в современном мире подавляющее большинство общедоступных активов компании — это веб-приложения. Только по этой причине вы ДОЛЖНЫ изучить взлом веб-приложений, если вы хотите добиться успеха, и нет лучшего места для начала, чем OWASP top 10. Если бы все, что вы почерпнули из этой статьи, — это научиться используя эти основные веб-уязвимости, вы сможете находить ошибки постоянно.
SQL-инъекция(SQLI)
SQL-инъекция (SQL-Injection) — это классическая уязвимость, которая, похоже, никуда не денется. Эта уязвимость может быть использована для удаления содержимого базы данных приложений. Базы данных обычно содержат конфиденциальную информацию, такую как имена пользователей и пароли, поэтому получение доступа к ней, по сути, означает окончание игры. Самой популярной базой данных является MySQL, но вы столкнетесь и с другими, такими как MSSQL, PostgreSQL, Oracle и другими.
Основной причиной SQL-инъекции является объединение строк, как показано в приведенном выше фрагменте кода. В третьей строке приложение объединяет вводимые пользователем данные с sql-запросом если вы когда-нибудь видели это, значит, у вас sql-инъекция. Причина, по которой это так опасно, заключается в том, что мы можем добавлять дополнительные sql-запросы к текущему запросу. Это позволит злоумышленнику запрашивать все, что он хочет, из базы данных без ограничений.
MySQL
Два наиболее распространенных типа sql-инъекций — это на основе объединения, и на основе ошибок. sql-инъекция на основе объединения использует sql-оператор “UNION” для объединения результатов двух или более инструкций “SELECT” в один результат. Sql-инъекция на основе ошибок использует ошибки, генерируемые sql-сервером, для извлечения информации.
Как вы можете видеть на первом изображении, добавление одинарной кавычки к значению переменной “cat” приводит к ошибке sql. Посмотрите на два сообщения об ошибках и обратите внимание, насколько они отличаются.
Обратите внимание, что “%27” — это то же самое, что и одинарная кавычка, это просто кодировка url.
В следующих разделах я покажу вам, как воспользоваться этой уязвимостью, и, хотя мы не будем использовать SqlMap, вам нужно знать, как это сделать вручную.
● https://github.com/sqlmapproject/sqlmap
На этом все. Всем хорошего дня!