Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Уязвимость в плагине Disqus для WordPress


andreyvebuiskii

Recommended Posts

Это перепечатка статьи "Уязвимость в плагине Disqus для WordPress" с сайта: http://virusdie.ru/blog/2014/06/23/disquswpbackdoor/

 

wpmaliplugin.jpg

 

Мы недавно обнаружили уязвимости в плагине Disqus Comment System plugin для WordPress. Эта уязвимость, в специфических условиях, может позволить злоумышленнику удаленно выполнить код (RCE — Remote Code Execution). Другими словами, злоумышленник может делать все что хочет с такими уязвимыми сайтами.

 

Хотя сам плагин потенциально очень опасен, но эта опасность проявляется только лишь на серверах с WordPress с версией PHP 5.1.6 и ниже. Это также означает, что только пользователи WordPress 3.1.4 (и более ранних версий) подвержены атаке, поскольку WordPress более поздних версий не поддерживает версии PHP, «обнажающие» уязвимость.
 
Зная, что целевая аудитория подобной уязвимости крайне мала, мы решили сделать свое открытие общедоступным и у Disqus вышел новый патч, закрывающий уязвимость (patched version 2.76). Мы по прежнему рекомендуем каждому пользователю Disqus прежнему произвести обновление как можно скорее.
 
Disqus RCE уязвимостьDisqus RCE уязвимость
Все началось с анализа одного JSON-парсера, в котором мы нашли следующий любопытный код:
jsonparser.jpg
 
По некоторым причинам, распаршиваемый контент возвращается из eval(), которая затем подставляется в вызываемую функцию. Как вы знаете, функция eval() в PHP выполняет любой код, переданный в нее.
 
Итак, мы имеем потенциальный RCE код в виде строки, возвращаемой eval() в двойных кавычках, что означает, что мы можем использовать синтаксис PHP для разбора сложных переменных, заставляя скрипт выполнить любые функции, которые захотим, например: {${phpinfo()}}.
 
Направление атаки
Все что нам было нужно — это найти место для хранения вредоносного кода, чтобы затем он сработал по триггеру через уязвимость с вызовом eval(). Чтобы это сделать нам необходимо проверять обрабатываются ли данные пользователя через функцию getNextToken().
Нашей первой догадкой было предположение, что оставляемые комментарии, отправляемые через Disqus, идут на их серверы, соответственно, можно было предположить обратное: получение комментариев для определенного поста с их же сервера.
 
Мы оказались правы. Недолгий поиск привел нас к некоторой функциональности, позволяющей синхронизовать комменты. Эта функциональность могла быть активирована гостевым любым пользователем, причем, он мог добавить некоторые параметры прямо к URL, например:
 
 
Все, что нам оставалось — это проверить все, что мы нашли на практике. Теперь мы знали, что обнаружили работающую уязвимость и все, что нужно было для ее активации:
  • Запостить вредоносный код в коммент
  • Получить ID поста
  • Вызвать синхронизацию комментариев добавлением параметров (которые мы привели ранее) к URL
  • Все готово! Выглядит просто, не так ли?
  • Так вот, если вы используете устаревшую версию WordPress/PHP, вам следует обновиться на Disqus. Всем другим пользователям мы также рекомендуем обновлять движки в момент их выхода.

 

Это статья с сайта virusdie.ru

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.