Jump to content
Новости и объявления.
  • Уважаемые гости. При посещении нашего сайта, просим вас ознакомиться с разделами форума, прежде чем оставлять ваши объявления и т.д. Рекомендуем посетить разделы: "Общение, Коммерческий раздел, Услуги Хакеров и статьи, Отзывы о сайте и пользователях, Черный список" и другие разделы нашего сайта. ***ВНИМАНИЕ*** При обращении за помощью, просим быть внимательными, на сайте есть, как проверенные специалисты, так и непроверенные. Если вы обратились к специалисту, который проверку НЕ проходил, рекомендуем воспользоваться услугой гарант сервиса. xakervip.com
  • Взлом
  • Взлом
  • Гарант-сервис
  • Реклама на форуме

Recommended Posts

Недавно Nemesida WAF заблокировал довольно занимательную попытку атаки с использованием XSS и JavaScript. Несмотря на то, что я не являюсь JS-разработчиком, ради интереса решил разобраться в сути атаки. Особенность вектора заключается в специфике работы самого WordPress — возможность редактировать файлы тем через админ-панель, позволяя незаметно для администратора внедрить вредоносный код.

Пейлоад, представленный в виде JS, размещается на сайте через XSS-уязвимость, после чего ждет своего исполнения. Отработанный на стороне администратора веб-ресурса, код модифицирует содержимое файла темы WordPress (header.php), позволяя злоумышленнику закрепиться в системе и полностью скомпрометировать веб-приложение.

Первым делом код проверяет, есть ли у жертвы cookie, содержащие какие-нибудь значения из wp-settingswp-admin и т.д. Если их нет, то выполняется переадресация на некоторые сайты, которые рекламировать я не буду, за рекламу мне не доплачивали.

oX7qCM5p9NE.jpg

 

Если cookie существуют, то создается несколько переменных. Например, в переменной e хранится имя домена, а в a — полезная нагрузка. В переменной p будет храниться XML-запрос.

toj3AjP7zXk.jpg

 

Когда переменные созданы, выполняется GET-запрос на адрес из переменной t, в которой в это время хранится путь для редактирования темы в файле header.php. В нашем случае содержимое переменной будет выглядеть так: example.com/wp-admin/theme-editor.php?file=header.php

Если код ответа на GET-запрос равен 200, переменные tpdi будут установлены, а если их нет — установятся или переопределятся. В переменную t попадет текст ответа, а переменные pdi заносят в массив данные согласно регулярным выражениям на основе информации, хранящейся в переменной t.

EE32eJ6v3fY.jpg

 

При этом, если переменные pdi не равны null, то скрипт ищет в 1-ом элементе массива переменной p значение chr(109).chr(46).chr(116).chr(120).chr(116). Если находит, то отправляет еще один GET-запрос в виде содержимого переменной e (переменная с доменом) + /wp-content/themes/d[1]/header.php (где первый элемент в массиве d — название темы). Если не находит элемент, то создается переменная r c HTML-элементом textarea, в который помещается значение элемента массива p[1], и создаются переменные:

c = a + o + encodeURIComponent(r.value), которая соединяет a (PHP-код), o (загрузку внешнего JS-скрипта), а также закодированное в URI значение переменной r;

s = d[1] — первый элемент масива d.

ac8_6EvAmJk.jpg

 

А вот содержимое запроса в переменной m = "nonce=" + encodeURIComponent(h) + "&_wp_http_referer=" + encodeURIComponent("/wp-admin/theme-editor.php?file=header.php") + "&theme=" + encodeURIComponent(s) + "&file=header.php&action=edit-theme-plugin-file&newcontent=" + c, вероятно, больше похоже на добавление/замену в header.php на значение переменной c.

Чтобы продемонстрировать, как это работает, основная полезная нагрузка (для наглядности) была заменена на пейлоад, позволяющий выполнить произвольный код на сервере. Если поместить пейлоад на странице сайта в виде какой-нибудь хранимой XSS, то при посещении страницы авторизованным пользователем сработает скрипт, который, в нашем случае, выполняет внешний JS, находящийся на удаленном сервере evil.lan.

DE-W6P23zkI.jpg

 

После выполнения скрипта, в header.php вносятся изменения в первую строчку.

-4RXIXIFMHc.jpg

 

И, как результат, мы можем выполнить произвольный код на стороне сервера, например, прочитать содержимое файла /etc/passwd.

g2Zk3h62MQw.jpg

 

 

Вся информация предоставлена лишь для ознакомления и не призывает к действиям. Автор не несет ответственности за использование этой информации.

Link to comment
Share on other sites

  • Реклама на форуме

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Member Statistics

    6,329
    Total Members
    30,834
    Most Online
    konstant777
    Newest Member
    konstant777
    Joined
×
×
  • Create New...

Important Information

Guidelines
Terms of Use
We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.