Ливанским исследователям Кариму Рахалу (Karim Rahal) и Ибраму Мазроуку (Ibram Marzouk) по 14 лет и эти ребята всерьез увлечены IT-безопасностью. Так, в прошлом году Мазроук уже обнаруживал stored XSS уязвимость на PasteCoin, которая затрагивала раздел комментариев на сайте. Тогда Мазроук показал другу пэйлоад, которым воспользовался для эксплуатации бага. Он выглядел так:
“/>.<<img src=x onerror=alert(1)//\">><>
Рахал немного поэкспериментировал и сократил код до следующей формы (Extraneous open brackets по классификации Owasp):
“>><<img src=x onerror=alert(1);//>>
Спустя несколько месяцев, в конце 2016 года, Рахал наткнулся в сети на статью, которая рассказывала, как прикрутить к сайту комментарии. Поле для ввода комментариев из статьи показалось исследователю знакомым и явственно напомнило о XSS-баге, найденном недавно на PasteCoin. В углу поля Рахал заметил «водяной знак» Html Comment Box и понял, что речь идет о стороннем плагине, который встраивается в сайт. Учитывая очевидное сходство, исследователь решил опробовать на Html Comment Box пейлоад, созданный для PasteCoin, и тот неожиданно сработал. Рахал был удивлен, установил плагин локально и попробовал еще раз. Баг снова был успешно эксплуатирован.
Заинтересованный Рахал открыл Google и решил узнать, сколько сайтов вообще используют Html Comment Box в работе. «Я был поражен! Отобразилось около 2 000 000 результатов!», — рассказывает исследователь.
Так как найти контактные данные разработчиков ему не удалось, Рахал обратился за помощью к специалистам шведской компании Detectify, рассказав им о баге. Дело в том, как раз в это время Рахала очень кстати пригласили принять участие в bug bounty программе Detectify Crowdsource. Данная инициатива предполагает сбор багов «с миру по нитке»: независимые исследователи сообщают Detectify о найденных ими уязвимостях, тем самым улучшая пентестинговые продукты компании, а компания помогает сообщить о багах разработчикам, плюс выплачивает за них деньги.
В итоге контакты разработчиков Html Comment Box были найдены совместными усилиями, и те не стали терять времени даром, устранив проблему за несколько часов.
Получивший вознаграждение Карим не преминул напомнить администраторам любых CMS о простой истине: «Если вы хотите, чтобы ваш сайт был защищен, не стоит использовать сторонние плагины». Если же это неизбежно, стоит хотя бы озаботиться активацией функции автоматических обновлений.