Эксплуатируем XSS уязвимость на сайте ipay.ua для кражи карточных данных

- КиТ :: Будь в СЕТИ!

Продолжая пинтестинг отечественных платежных систем, я остановился на довольно популярном в Украине платежном сервисе ipay.ua. Меня интересовало, на сколько PCI DSS сертификация платежными системами и проводимое ими ежеквартальное (в том числе на наличие XSS уязвимостей) гарантирует защиту данных клиентов

Моё внимание привлекла форма p2p переводов по адресу . Проверяя форму на фильтрацию вводимых данных, я добрался до поля для комментария (оно по умолчанию скрыто, что бы оно появилось, нужно поставить курсор в поле «Телефон получателя»). Как обычно, для первичной проверки, начал вводить текст:

… И только я закрыл скобку, как увидел на экране модальное окно с сообщением. Мне стала интересна причина такого поведения страницы и я полез в её содержимое.

Проанализировав javascript код я понял, что виной был следующий кусок:

А точнее, виной стало незнание разработчика, что jQuery конструктор или метод, который принимает на вход HTML строку, может потенциально выполнить код.

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

Анализируя работу страницы для p2p переводов, я обнаружил, что можно при помощи POST запроса сформировать частично заполненную форму, подставив в поле комментария javascript код, который так же не валидировался на сервере (двойной фэйл разработчиков)

Я создал html страничку со следующим содержимым: Отправив данные на сервер, я получил форму с заполненным полем для комментария. Теперь для того, что бы внедренный javascript код выполнился, достаточно начать редактировать содержимое поля(спасибо функции .keyup() библиотеки jQuery ).

Осталось дело за малым: сформировать должным образом передаваемый javascript код, что бы он отправлял данные формы на сторонний сайт.

Содержимое моей html странички приобрело следующий вид: Карточные данные в форме я заполнил заранее для простоты демонстрации.

Теперь отправив эти данные на сервер ipay.ua, получим форму для p2p перевода, заполнив которую, наша жертва при попытке редактирования комментария (например при его удалении), отправит свои карточные данные на сторонний сервер: Таким образом злоумышленнику достаточно разместить на своём сайте ссылку под видом рекламы p2p переводов и перенаправить POST запросом пользователя на страницу с внедренным зловредным кодом, чтобы иметь возможность украсть данные карты жертвы.

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

Но по истечении 3 недель со мной ни кто так и не связался, а уязвимость так и остаётся открытой.

Поэтому цель данной статьи не только показать один из вариантов эксплуатации XSS уязвимости, но и как можно быстрее донести информацию о её наличии до ответственных лиц в компании Ipay.ua

ПодпискаБудь в СЕТИ! Новости социальных сетей - всегда актуальное
 
Группы: ВК | OK | Tg