Как подделать qr код

Обновлено: 06.07.2024

QR‑коды встречаются повсюду: на билетах, вывесках, визитках, одежде, в интернете. Мы привыкли пользоваться ими и даже не задумываемся об их сущности. Подобно штрихкодам, они являются оптическими метками, которые содержат текстовую информацию, вмещая до 7 000 цифр или около 4 000 букв и спецсимволов.

Данные внутри QR‑кодов зашифрованы определённым образом и считываются, а затем декодируются с помощью специального ПО. Соответствующая функция сейчас есть в любом смартфоне из коробки. Также она может быть добавлена путём установки приложения.

Как сгенерировать QR‑код

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

Как сгенерировать QR‑код онлайн

Рассмотрим процесс на примере популярного сервиса QRCode Monkey, который примечателен большим количеством настроек и дополнительными функциями вроде добавления своей картинки или логотипа к коду.

Перейдите по ссылке и введите нужный URL в поле Enter content.

Если хотите, измените цвета QR‑кода в разделе Set colors.

В меню Add logo image загрузите свою картинку или выберите один из логотипов соцсетей.

Переключитесь на раздел Customize design и выберите вид QR‑кода.

Когда он будет готов, укажите с помощью ползунка справа нужное разрешение, а затем кликните Create QR Code и скачайте картинку кода, нажав на кнопку желаемого формата.

Также можно воспользоваться одним из следующих сервисов:

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

Как сгенерировать QR‑код на смартфоне

Попробуем создать код с помощью QR Code для iOS. В других приложениях, в том числе и для Android, процедура мало чем отличается и выполняется таким же образом.

Установите утилиту и откройте меню. Выберите пункт QR Code Creator.

Введите свой текст или ссылку и нажмите Generate.







Как считать QR‑код

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

Как считать QR‑код на смартфоне

iPhone умеет распознавать коды начиная с iOS 11, на Android‑устройствах аналогичная функция доступна с Android 9.0. Учитывая это, проще всего считывать QR‑коды обычной камерой, не прибегая к помощи сторонних приложений. Хотя при необходимости можно использовать и их.

Для распознавания нужно лишь включить камеру и навести объектив на QR‑код. После этого нажать на всплывающее уведомление, и контент откроется в соответствующем приложении: ссылка — в браузере, контакт — в адресной книге и так далее.


QR-код (англ. Quick Response Code — код быстрого реагирования) — это матричный или двумерный штрих-код, который может содержать до 4296 символов ASCII. То есть, проще говоря, картинка, в которой зашифрован текст.

История вектора атаки

В 2014 году программа Barcode Scanner для мобильных устройств из проекта ZXing практически не проверяла тип URI, передаваемый через QR-код. В результате любой эксплоит, который мог быть исполнен браузером (например, написанный на JavaScript), можно было передать через QR.

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

Если содержимое не соответствует хотя бы одному из требований, то оно определяется как обычный текст, а не URI. Этот механизм блокирует атаки вроде javascript;alert("You have won 1000 dollars! Just Click The Open Browser Button"); , но, внеся пару простых изменений в код, мы получаем вариант, который программа исполняла в браузере, ведь она считала JS-код обыкновенным, «нормальным» URI!

Вот как это выглядело.

Вариант кода, который блокировался защитным механизмом сканера Модифицированный URI, который программа не могла отфильтровать

Как мы можем увидеть, уведомление появилось в браузере, а значит, URI с потенциально вредоносным кодом был выполнен. Однако выполняется данный JS-код лишь тогда, когда пользователь нажимает Open Browser (то есть «Открыть в браузере»).

Самое опасное здесь — что человек без предварительной подготовки не может узнать содержимое кода, не отсканировав его. А человек очень любопытен: в различных исследованиях большинство испытуемых (которые, кстати, даже не знали об эксперименте) сканировали QR-код именно из любопытства, забывая о собственной безопасности. Поэтому всегда будь внимателен!

Если у тебя нет сканера кодов, но уйма свободного времени — можно попробовать расшифровать код вручную. Инструкция есть на Хабре.

QRGen — каждому по коду

Для демонстрации средств работы с QR-кодами я буду использовать Kali Linux 2019.2 с установленным Python версии 3.7 — это необходимо для корректной работы утилит.

WARNING

Не забывай про уголовную ответственность за создание и распространение вредоносных программ, к которым в широком смысле относятся и наши «заряженные» QR-коды.

Начнем с утилиты QRGen, которая позволяет создавать QR-коды с закодированными в них скриптами. Копируем репозиторий и переходим в папку с содержимым.

QRGen требует Python версии 3.6 и выше. Если возникает ошибка, попробуй обновить интерпретатор.

Устанавливаем все зависимости и запускаем сам скрипт.

Справка QRGen

Справка QRGen

Аргумент -h выведет то же самое, а вот запуск с ключом -l приведет к генерации QR-кодов из определенной категории. Всего их восемь.

  1. SQL-инъекции.
  2. XSS.
  3. Инъекции команд.
  4. QR с форматированной строкой.
  5. XXE.
  6. Фаззинг строк.
  7. SSI-инъекции.
  8. LFI или получение доступа к скрытым каталогам.

Возможные атаки

Теперь давай посмотрим на примеры из каждой категории, а также разберемся, какой урон и каким устройствам они могут нанести.

Посмотреть текстовые файлы со всеми вариантами «начинки» QR-кодов ты можешь в папке words (они разделены по категориям, указанным выше).

Теперь пара слов о последствиях атак подобными нагрузками.

Первый класс атак — SQL-инъекции — используют при взломе БД и нарушении работы веб-сайтов. Например, запрос может вызывать зависание сайта.

Следующий пример (под номером 2) демонстрирует эксплуатацию XSS-уязвимости при атаке на веб-приложения с использованием SVG (Scalable Vector Graphic). К чему может привести XSS, ты, думаю, и без меня прекрасно знаешь, так что подробно на этом останавливаться не буду.

Третий пункт выводит на экран жертвы содержимое файла /etc/passwd : список аккаунтов Linux-based-систем и дополнительную информацию о них (раньше — хеши паролей этих учетных записей). В подобных случаях обычно стараются получить /etc/shadow и конфигурацию сервера, но все очень сильно зависит от цели, так что какие файлы читать — решай сам.

Четвертый пример представляет собой выражение, которое вызовет переполнение буфера (buffer overflow). Оно возникает, когда объем данных для записи или чтения больше, чем вмещает буфер, и способно вызвать аварийное завершение или зависание программы, ведущее к отказу в обслуживании (denial of service, DoS). Отдельные виды переполнений дают злоумышленнику возможность загрузить и выполнить произвольный машинный код от имени программы и с правами учетной записи, от которой она выполняется, что делает эту ошибку довольно опасной.

Пятый по счету класс атак (XXE Injections) представляет собой вариант получения скрытой информации веб-сервера с помощью анализа вывода XML-файлов. Конкретно в нашем примере при запросе к серверу тот ответит зашифрованным в Base64 содержимым файла /etc/passwd , который уже упоминался. Однако расшифровать его не составит труда — достаточно лишь воспользоваться встроенной в большинство дистрибутивов Linux утилитой base64 либо же онлайн-конвертером.

Атаки форматной строки (пример 6) — это класс уязвимостей, который включает в себя предоставление «специфичных для языка маркеров формата» для выполнения произвольного кода или сбоя программы. Говоря человеческим языком, это класс атак, при которых приложение некорректно очищает пользовательский ввод от управляющих конструкций, из-за чего эти конструкции в результате исполняются. Если ты программировал на С, то, конечно, помнишь те интересности с выводом переменных через printf : надо было в первом аргументе (который строка) указать на тип выводимого значения ( %d для десятичного числа и так далее).

Седьмой пункт представляет собой вариант command injection, которая выполняет определенный код на стороне сервера. В моем примере будет выполнена команда ls , которая покажет содержимое текущей директории, но, конечно, там может быть гораздо более опасный код.

И наконец, последняя категория — это LFI-уязвимости (Local File Inclusion; включение локальных файлов), позволяющие просмотреть на уязвимых (или неправильно настроенных) серверах файлы и папки, которые не должны были быть видны всем. Один из возможных вариантов — просмотреть файл /etc/passwd , о котором мы с тобой уже не раз говорили. Это может выглядеть вот так.


Обрати внимание, что в качестве тестового веб-приложения используется DVWA (Damn Vulnerable Web Application), который был специально разработан для обучения пентесту. Многие атаки на веб-приложения можно отработать на нем.

Практика

А сейчас перейдем к практике — протестируем эту утилиту сами.

Продолжение доступно только участникам

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее


В этом сервисе все куда проще: доступны всего 4 вида статических кодов, зато простой интерфейс удобно использовать с мобильных устройств. Подойдет, если надо быстро сделать разовый QR-код, который не будет меняться — например, поставить в презентацию код со ссылкой на сайт вашей компании. Закодировать здесь можно ссылку, визитку и СМС-ку. Зато все без регистрации и есть выбор размера PNG-файла с кодом аж из 6 вариантов.

2. QR сс

Еще один сервис с разными вариантами кодов, интересен разными шаблонами (ссылки, визитки и так далее) и возможностью задать цвет и размер вашего кода.

3. VK QR

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

4. STQR

Большая часть функционала доступна бесплатно, но даже платные тарифы нельзя назвать слишком дорогими — они обойдутся в сумму от 60 до 1200 рублей в месяц.

5. QR code Generator

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

6. Creambee

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

Отдельно выделим этот англоязычный сервис с расширенный функционалом для создания визиток. Он не только сделает QR-код с контактами, но и предложит больше 10 шаблонов оформления визитки и сформирует pdf-файл для печати (!). Если вдруг надо срочно отдать в печать новую визитку, а дизайнера нет, то этот сайт может спасти. Не самая удобная мобильная версия, но при желании можно сделать здесь визитки даже с телефона.

Все больше регионов вводят систему пропуска на мероприятия, заведения общепита и другие общественные места по QR-коду. За использование чужого кода грозит наказание - от предупреждения и штрафа до реального уголовного срока. Рассмотрим, в каких случаях наказание будет самым суровым.

QR-код напрокат: что будет за использование чужого сертификата о вакцинации

Фото Густаво Зырянова

QR-код оформляется на вакцинированного или переболевшего коронавирусом. Каждый код уникален - он именной, в нем указываются личные данные гражданина. Они отображаются при наведении камеры смартфона на QR-код.

При предъявлении QR-кода могут потребовать показать паспорт. Но некоторые, кто не успел или не хочет ставить прививку, все равно надеются на авось и пытаются попасть в заведения по чужому коду.

Если подлог вскроется - за "махинации" с кодом грозит ответственность. Если просто предъявить чужой код, и этот факт выявят при проверке, то грозит ответственность как за отсутствие кода. Если же внести изменения в чужой код, то может грозит ответственность по ст. 327 УК РФ за использование заведомо подложного документа.

Можно ли использовать QR-код другого человека

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

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

При входе на объекты, где можно находиться только с QR-кодом, обычно проводится проверка. Для этого код сканируется мобильным приложением, а у гражданина потребуют показать паспорт. Если проверка покажет, что человек предъявил чужой код, его ждут следующие последствия:

  • в лучшем случае, гражданину с чужим QR-кодом просто откажут в проходе в магазин, в ресторан, на другой объект;
  • если использован чужой QR-код без внесения своих данных (т.е. без подделки), то могут назначить наказание по ст. 20.6.1 КоАП РФ (штраф до 30 000 рублей);
  • если использовать чужой код с изменением исходных данных на свои (подделка), то могут возбудить уголовное дело по ст. 327 УК РФ (подробнее ниже).

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

Ответственность за чужой QR-код

Привлекать к ответственности за использование чужого QR-кода могут должностные лица Роспотребнадзора, МВД. При проверке кода могут вызвать полицию, которая составит протокол о нарушении. Дальнейшее рассмотрение дела зависит от того, какое именно нарушение было допущено.

Штраф за использование чужого QR-кода вакцинации

За использование чужого кода без подделки с внесением своих данных наступает ответственность по ст. 20.6.1 КоАП РФ. Решение о наказании по этой статье выносит суд.

Виновнику грозит предупреждение или штраф от 1000 до 30 000 рублей. Суд сам выберет вид и размер наказания, исходя из потенциальной опасности нарушения. За повторное нарушение предупреждение не выносится, а размер штрафа может составить до 40 000 рублей.

Уголовная статья за использование чужого QR-кода

За подделку QR-кода о вакцинации, а именно за изменение его содержания и внесения своих данных, грозит наказание по ст. 327 УК РФ. Штраф по этой статье не назначается. Виновному лицу может грозить:

  • ограничение свободы на срок до 2-х лет
  • принудительные работы на срок до 2-х лет
  • арест на срок до 6 месяцев
  • лишение свободы на срок до 2-х лет

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

Читайте также: