#vulnerability #clickjacking Провел опрос о уязвимости под названием clickjacking, который показал, что большинство голосующих не знают что это за уязвимость, а из тех, кто ни разу ее не находил, скорее всего некоторые просто не умеют этого делать. Поэтому я решил "пояснить" за clickjacking так, как ее вижу я и объяснить как же ее можно искать.
Эта уязвимость часто упоминается как одна из самых игнорируемых веб-уязвимостей, относится к типу атаки, которая обманывает пользователей, заставляя их неосторожно щелкать по вредоносным ссылкам, созданным злоумышленником. При нажатии на эти ссылки злоумышленник может собирать конфиденциальную информацию, нарушать конфиденциальность пользователя или заставлять пользователя выполнять действия. Игнорируют данную дыру из-за того, что довольно редко удается найти критический impact ее применения. Если мы перейдем на
https://t.co/9U04a5e2qB, то увидим, что отчетов по этой уязвимости 118 (на момент написания этого обзора), в тот момент как та же xss имеет 1536 отчетов. И выплаты либо отсутствуют вообще или очень малы, либо очень велики так как удалось найти что-то оочень серьезное.
Почему эту форму атаки намного труднее предотвратить, чем найти? Потому что этот тип атаки применяет широко используемую функциональность - фреймы. В то время как фреймы широко используются для страниц входа в систему, Javascript-взаимодействий, управления контентом в CMS, он также был тщательно использован для выполнения атаки с восстановлением пользовательского интерфейса (UI redress attack/clickjacking).
learn.javascript.ru объясняет эту уязвимость так:
Вот как выглядел бы «угон клика» пользователя, который зарегистрирован на Facebook, если Facebook был бы уязвим к нему:
• На вредоносной странице пользователю подсовывается безобидная ссылка (скажем, что-то скачать, «разбогатеть сейчас», посмотреть ролик или просто перейти по ссылке на интересный ресурс).
• Поверх этой заманчивой ссылки помещен прозрачный iframe со страницей
facebook.com, так что кнопка «Like» находится чётко над ней.
• Кликая на ссылку, посетитель на самом деле нажимает на эту кнопку.
Пример:
https://learn.javascript.ru/article/clickjacking/clickjacking-visible/Здесь iframe полупрозрачный и мы его видим. Но в реальности, конечно, никто не будет делать его видимым.
Обнаружить уязвимую страничку легко. Нужно чтобы на странице не было заголовка X-Frame-Options
Еще можно встретить сайты с защитой на стороне javasctipt
if (top != window) {
top.location = window.location;
}
Но она на данный момент легко обходится.
Максимально простое объяснение всему этому: я на своем сайте делаю фрейм, который поверх какой-то кнопки, которую точно нажмут. Ну или во весь экран вообще. Потом эту ссылку подбрасываю пользователю, авторизованному в paypal на данный момент. Он жмет по ссылке, уходит запрос в серваки paypal и исполняется от его имени. Клик, как думает пользователь, происходит по одной кнопке, а на самом деле клик по кнопке сайта из фрейма.
Если что-то осталось непонятно (как это было до последнего непонятно мне), то жми кнопочку "обсудить" и не стесняйся задавать вопросы в чат.
UPD:
При эксплуатации уязвимости, burp вам в помощь:
https://support.portswigger.net/customer/en/portal/articles/2363105-using-burp-to-find-clickjacking-vulnerabilities