Атаки на JavaScript на примере обхода Social Locker for WordPress (КЕЙС)

Атаки на JavaScript на примере обхода Social Locker for WordPress (КЕЙС)

September 11, 2020


GreyTeam

В статье «Атаки на JavaScript» показаны примеры обхода ограничений, установленных с помощью JavaScript. Понятно, что там учебный пример, поэтому он довольно бессмысленный. Возьмём более реальную ситуацию. В статье «Обход запрета показа исходного HTML кода, обход социальных блокировщиков и других мер противодействия сбору информации о сайте» я показывал, как легко можно обойти социальные блокировщики, поскольку скрытые ссылки и текст загружают на страницу, но используют стили, чтобы сделать этот блок невидимым. Я даже сделал небольшой сервис, который покажет вам всё, что скрывают социальные блокировщики. Это так просто, что даже не нужно бороться с JavaScript.

Но мне прислали пример сайта (_https://www.yasir252.com/software/download-adobe-photoshop-cc-2020-full-version-windows/) который использует более хитрый социальный блокировщик.

Забегая вперёд скажу, что это платный плагин, который называется «Social Locker for WordPress» и стоит $27:

Причём это не заброшенный плагин, на момент написания, последнее обновление было сделано 8 May 2020.

Начнём с анализа HTML и JavaScript кода.

Как можно увидеть, в исходном коде название BizPanda Lockers, путь до этого файла /sociallocker-next-premium/bizpanda, я погуглил и нашёл страницу этого самого Social Locker for WordPress.

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

https://hastebin.com/teyejoqomu.coffeescript

Анализ файла скриптов JavaScript (_https://www.yasir252.com/wp-content/plugins/sociallocker-next-premium/bizpanda/assets/js/lockers.020405.min.js) дал вот такой интересный фрагмент:

https://hastebin.com/nakayeriya.bash

Обратите внимание на комментарий - «загрузка заблокированного контента через ajax».

Значения ajaxUrl, lockerId и contentHash можно найти в предыдущем фрагменте кода.

На самом деле, второй фрагмент я нашёл после того, как понял, как обходить этот социальный блокировщик. Можно было вообще пропустить анализ исходного кода и сразу начать с анализа POST запроса (смотрите «Как анализировать POST запросы в веб-браузере»).

Я «лайкнул» статью для просмотра скрытого текста:

Как можно увидеть, на страницу https://www.yasir252.com/wp-admin/admin-ajax.php передаётся POST запрос содержащий строку «lockerId=3169&action=opanda_loader&hash=e408051e78dd01cade57a25100ad70c7»:

А в ответ приходит скрытый социальным блокировщиком код:

Рендеринг полученных данных:

Пробуем получить скрытый текст минуя шаринг в социальных сетях:

curl https://www.yasir252.com/wp-admin/admin-ajax.php -d 'lockerId=3169&action=opanda_loader&hash=e408051e78dd01cade57a25100ad70c7'

Всё сработало!

Если вам непонятен HTML текст, то сохраните его в файл и откройте в веб браузере:

curl https://www.yasir252.com/wp-admin/admin-ajax.php -d 'lockerId=3169&action=opanda_loader&hash=e408051e78dd01cade57a25100ad70c7' > locker.htm && firefox locker.htm

Дальнейший анализ показал, что хеш статичный и всегда содержится в исходном коде. Значение lockerId не меняется и туда можно подставить любое число (возможно, это результат «кряка»).

Чтобы каждый раз не лазить в исходный код, создадим скрипт для автоматизации. В файл sociallocker-next-premium.sh:

gedit sociallocker-next-premium.sh

Скопируйте следующее:

https://hastebin.com/pikudineti.bash

Запускать так:

bash sociallocker-next-premium.sh 'URL'

Например:

bash sociallocker-next-premium.sh 'https://www.hourlybook.com/entrance-exams/national-eligibility-cum-entrance-test/neet-biodiversity-and-conversation-practice-questions-2017/'

Чтобы сразу видеть содержимое после рендеринга HTML кода, используйте конструкцию:

bash sociallocker-next-premium.sh 'URL' > locker.htm && firefox locker.htm

Например:

bash sociallocker-next-premium.sh 'https://www.hourlybook.com/entrance-exams/national-eligibility-cum-entrance-test/neet-practice-questions-environmental-issues-2017/' > locker.htm && firefox locker.htm

На свой сервис обхода социальных блокировщиков я добавил поддержку и этого плагина: https://suip.biz/ru/?act=social-locker-cracker


Источник

Report Page