Поставил на новый компьютер официальный Пайтон свежий, но вот элементарный PIP поставить не получается.
Сразу вспомнилась одна атака о которой читал на Хабре, а именно Тайпсквоттинг. Если коротко тогда пострадали люди используя официальный сайт Пайтона, который кишил вредоносами разного сорта и пробы.
Уязвимость, которая позволяет злоумышленнику обращаться к базе данных (БД) сайта и атаковать ее с помощью языка структурированных запросов (structured query language, или SQL), называется внедрением SQL (SQL injection, или SQLi). Обнаружение атак SQLi часто существенно вознаграждается, так как они могут иметь разрушительные последствия: злоумышленник получает возможность изменить или извлечь информацию или даже создать в БД собственную учетную запись администратора
БД имеют вид таблиц, которые могут содержать произвольное число столбцов и строк (записей). Для создания, чтения, обновления и удаления записей в реляционной БД используется SQL. Пользователь отправляет БД SQL-команды (инструкции или запросы), а та их интерпретирует (если они корректны) и выполняет действия. Среди популярных реляционных БД можно выделить MySQL, PostgreSQL и MSSQL. Примеры в этой главе относятся к MySQL, но их концепция применима ко всем БД с поддержкой SQL.
Команды SQL состоят из ключевых слов и функций. Например, следующее выражение заставляет БД выбрать информацию из столбца name в таблице users для записей, идентификаторы которых равны 1.
SELECT name FROM users WHERE id = 1;
Многие веб-сайты хранят в БД информацию для динамической генерации содержимого. Например, если сайт https://www..com/ хранит в БД предыдущие заказы клиента, при входе в его учетную запись его браузер запросит их и сгенерирует HTML на основе полученной информации.
Ниже показан гипотетический пример серверного PHP-кода для генерации команды MySQL при посещении пользователем страницы https://www.. com?name=peter:
$name = 1$_GET['name']; $query = "SELECT * FROM users WHERE name = 2$name' ";
3mysql_query($query);
Здесь в квадратных скобках $_GET[ ] 1 указано имя параметра URL-адреса, который нужно извлечь, и сохранено его значение в переменной $name. Этот параметр передается переменной $query 2без фильтрации. Переменная $query описывает запрос, который нужно выполнить, и извлекает из таблицы users все записи, значение в столбце name которых совпадает с одноименным параметром в URL-адресе. Для выполнения этого запроса $query передается PHP-функции mysql_query 3
Сайт ожидает, что name содержит обычный текст. Но если пользователь передаст вредоносный код test' OR 1='1 в параметре URL-адреса, такого как https://www.example.com?name=test' OR 1='1, БД выполнит следующий запрос:
$query = "SELECT * FROM users WHERE name = 'test1' OR 1='12' ";
Вредоносный код закрывает открывающую одинарную кавычку (') после значения test 1 и добавляет в конец запроса SQL-код OR 1='1. Висящая одинарная кавычка открывает закрывающую одинарную кавычку, заданную самим сайтом 2, обеспечивая корректный для выполнения синтаксис.
SQL поддерживает условные операторы AND и OR. В данном случае SQLi изменяет инструкцию WHERE для поиска записей, в которых выполняется одно из условий: столбец name совпадает с test или выражение 1='1' возвращает true. MySQL интерпретирует '1' как целое число, и поскольку 1 всегда равно 1, это выражение всегда истинно, в результате чего запрос возвращает все записи в таблице users. Но если другие части запроса фильтруются, внедрение test' OR 1='1 не работает. Представьте такой запрос:
$name = $_GET['name']; $password = 1mysql_real_escape_string($_GET['password']); $query = "SELECT * FROM users WHERE name = '$name' AND password = '$password' ";
Параметр password находится под контролем пользователя, но как следует обрабатывается 1. Если внедрить в качестве имени код test' OR 1='1 и указать пароль 12345, выражение будет выглядеть так:
$query = "SELECT * FROM users WHERE name = 'test' OR 1='1' AND password = '12345' ";
Этот запрос ищет все записи, в которых столбец name равен test или 1='1', а password содержит 12345 (проигнорируем, что эта БД хранит пароли в открытом виде, что является еще одной уязвимостью). Поскольку при проверке пароля используется оператор AND, запрос вернет данные только для записей, пароль которых равен 12345. Это помешает попытке SQLi, но может пригодиться в другой атаке.
P.S. В следующих постах если вам будет интересно, приведу примеры найденных уязвимостей и опубликованных на HackerOne за некоторые из них например Uber заплатила 4000 долларов.
К данной статье рекомендую ранее мной созданную, там рассматривается довольно популярный инструмент для проведения подобных атак + там есть возможность использования автоматизированных атак. Атака на веб-приложения при помощи Burp Suite и SQL инъекции
Тут не так давно нашел подобную уязвимость на форме веба местной электростанции, которая относится к критической инфраструктуре города и страны в целом, а это значит уязвимости найденные на подобных ресурсах несут прямую угрозу для национальной безопастности.
Если в двух словах, то веб разработчик забыл добавить фильтр в систему обратной связи и можно было загружать с неё всё что угодно, например exe файлы или самораскрывающиеся файлы, а это уже прямая угроза для веб сервера и в целом для виртуальных машин сервера носителя данного веб решения.
Так что господа будьте внимательны, на различных площадка по СНГ даже готовы щедро платить за нахождения подобных ошибок, багов и уязвимостей. И лучше репортите их сразу в CERT. Пример моего https://www.cert.gov.kz/
Кому интересная данная тематика могу подготовить отдельный цикл, кто и сколько платит и за какие уязвимости и предоставить материал для обучения этому искусству.
Сериал, про события послевоенные в г. Одесса, когда сам маршал Жуков приехал наводить порядки. Главные герои очень харизматичны, есть и свои игры разума. Но главная линия как по мне, это дружба и командная работа, и главное битва двух сил за город, который они считают своим. Вопрос кто же окажется сильнее?
Отличный сервис...Зачем делать бесплатно то - что делаешь ради всеобщего блага и на отлично....Стань популярным благодаря данному сервису и публикуя свои работы получай дивиденды.
Патрик Джейн - детектив и независимый консультант из Калифорнийского Бюро Расследований (КБР), он использует свои отточенные, как лезвие, навыки наблюдения для раскрытия тяжких преступлений. В самом Бюро Джейн известен за частые нарушения протокола,…
От себя добавлю, я реально ну или мне кажется начал больше в жизни понимать именно в поведении своего окружения.