PDA

Просмотр полной версии : Какой алгоритм шифрования паролей в ipb 2.0.3?


ak-flash
03.03.2005, 14:01
Пожскажите какой алгоритм шифрования паролей в ipb 2.0.3. А то я достал хэш пасса админа, а расшифовать не могу, там не md5 алгоритм. Получается что с помощью уязвимости IPB 2.0.3 нельзя захватить весь сайт? :confused:

ak-flash
03.03.2005, 23:13
Я знаю что про это уже говорили, но у меня траффик очень ограничен(только 5 рублей на счету осталось), поиск тоже результатов не дал, просто ответьте хотя бы можно или нет.

White Jordan
04.03.2005, 01:02
В версиях выше 1.3 прибавляется соль что прибавляет 800.000 тысячь комбинаций. Вам нужно знать эту соль чтобы знать как формулируется хеш прежде чем как его будете брутфорсить. Поэтому качайте исходник форума сначало.

Что вам всё разжовавать надо? :confused:

KEZ
04.03.2005, 01:20
Как же не Md5...
А какой же там алгоритм? )) Давай сюда хеш...

ak-flash
04.03.2005, 12:48
Вот отснифал:
member_id=803; pass_hash=e1bcca547838cd9ed3fc334a38cfc8d8;

Это мои куки. Пасс 31337, но когда я пытаюсь расшифровать его (прогой MD5 Inside-"проверить пароль")нефига.
Если инеткряком подставлять куки то все впорядке я под любым пользователем прохожу.
Пытался расшифровать хэши других пользователе не получается(пользователей 47- вордлист на 30 мегов-должен был хотя бы один расшифроваться по теории вероятности) C хэшем я не ошибся несколько раз проверял. У меня есть опыт по взлому IPB 1.3.1 и проблем не было, а это вообще непонятно что.

KEZ
04.03.2005, 12:58
session_id сдесь неуместно...

может просто хеш изменил чуток? букву стер

Незлобная Ламо
05.03.2005, 01:52
Дай сылку на форум.

DEQ
05.03.2005, 03:46
MD5 Inside тут не помможет. в IBP версии > 2.0
хэш по другому получается. Примерно так высчитывается md5 хэш пароля к неиу добавляется
значение converge_pass_salt, снова считается md5 ъэш и уже полученное значение заносится в куки.
так что если есть доступ к базе(sql injection) тогда отбрутить можно.
но не с MD5 Inside
я кстати писал для таких случаев свою программку.

White Jordan
05.03.2005, 05:08
Ну так давай нам свою программу?

ak-flash
05.03.2005, 12:18
Да. Deq.Пожалуста дай ссылку на свою программу.очень надо.

coyl
05.06.2005, 17:03
куда пропал! давай программу! =)

kolorom
07.06.2005, 01:03
8) Да будем глядеть что и как.

hacsoft
07.06.2005, 13:14
В IPB 2 и > хэш формируется по такому алгоритму:
/*-------------------------------------------------------------------------*/
// Generate password
/*-------------------------------------------------------------------------*/

function generate_compiled_passhash($salt, $md5_once_password)
{
return md5( md5( $salt ) . $md5_once_password );
}

/*-------------------------------------------------------------------------*/
// Generate SALT
/*-------------------------------------------------------------------------*/

function generate_password_salt($len=5)
{
$salt = '';

srand( (double)microtime() * 1000000 );

for ( $i = 0; $i < $len; $i++ )
{
$num = rand(33, 126);

if ( $num == '92' )
{
$num = 93;
}

$salt .= chr( $num );
}

return $salt;
}

Т.е. хэшируется MD5 от канкотенации двух хэшей MD5: для первого это строка $salt, которая получается в результате работы функции generate_password_salt; для второго - сам пароль.

kolorom
07.06.2005, 22:57
подожди а как соль узнать :confused:

ее нужно с мускуля содрать! но как?
то что она из 5 символов включая знаки я знаю
;)

Как :(

coyl
08.06.2005, 11:10
блин! так во вторых версиях скул инъекция работает, так что её можно тоже содрать... как и хэш... БУ-У-УГА-ГА-ГА!!!

coyl
08.06.2005, 11:21
итого:
первый раз надо побирать по латинским малым буквами цифрам и по маске, с длиной 64 (32 от соли мы знаем(так как сперли из мискла саму соль, а затем получили её хэш) и 32 от самого пароля уже по буквам и цифирям) =)))
затем - отделяем последние 32 символа - и расшифровываем =)
дольше гораздо, но ничего не поделаешь... в принципе всё сводится к расшифровке двойного мд5. если знаем соль. но соль мы знаем из скул инжекшна=) вот. кто напишет прогу? =)

kolorom
08.06.2005, 11:39
Пример иньекции на поимку соли продемонстрируй 8)

coyl
08.06.2005, 11:41
ешё не знаю. я ток проснулся, поем - буду думать =)

coyl
20.06.2005, 13:07
Кажется нашел...
в инвижне есть распространённый мод - галерея фоток. так вот в ней я обнаружил такую инъекцию:
при голосовании за фотку не фильтруется значение оценки. она подставляется в такой запрос-
UPDATE ibf_gallery_images SET ratings_total=ratings_total+$rating,
ratings_count=ratings_count+1 WHERE id=266
здесь переменная $rating - это оценка, а id - номер картинки (он нам не пригодится) Вот. но что же можно сделать с запросом UPDATE?
В мискле начиная с версии 4.1 поддерживается подвыборка (sub select). то есть если мы подставим вместо оценки такой текст:
1, name=(select password from ibf_members where id=1)
то получится такой запрос:
UPDATE ibf_gallery_images SET ratings_total=ratings_total+1,
name=(select password from ibf_members where id=1),
ratings_count=ratings_count+1 WHERE id=266
ну это я для примера... вот так можно записать в название картинки хэш пароля юзера.

НО:
я этот запрос привел просто для примера, так как сам я не знаю названий столбцов в таблицах галереи а так же где хранится соль. вот об этом я хотел вас спросить. если поможете - буду благодарен. =)

coyl
20.06.2005, 13:13
собственно вопрос мой заключается в следующем:
как называются графы, в которой хранятся соль и хэш?

kolorom
20.06.2005, 16:08
ibf_members_converge -> converge_id -> converge_pass_hash -> converge_pass_salt


ibf_members -> id -> member_login_key


Кстати может лучше зарегится и сметить себе айди группы ? на 4 !

ibf_members -> mgroup = 4

Вауля 8)))

2 coyl а как защититься от иньекций у меня просто сайт есть на ипб 1.3 там есть галлера и запара с рейтинго и в моде файов такаяже запара 8(

Database error in:
mySQL query error: UPDATE ibf_gallery_images SET ratings_total=ratings_total+,
ratings_count=ratings_count+1 WHERE id=1080

mySQL error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near ' ratings_count=ratings_count+1 WHERE id=1080' at line 1

mySQL error number: 1064


Нужно чето решать 8(

coyl
20.06.2005, 16:22
ну я не специалист. просто наверно надо найти этот кусок кода и поставить там жесткую филтрацию на тип... вот... ну это общие фразы. как это сделать - надо подумать.

coyl
20.06.2005, 16:24
А! нужно проверить, что переменная $rating лежит от 1 до 5. вот. а поменять группу не получится. так как таблица для апдэйта указана жестко.

coyl
22.06.2005, 12:54
хм... вот какая штука получается... я тут поэксперементировал и нашел, то пароль все-таки хранится в мискле в первом мд5. это по адресу
ibf_members->legacy_password...
и в таком случае я ничего не понимаю... то есть изменился лишь алгоритм шифрования в куках, а с помощью инъекции можно переть обычные мд5. так чтоли получается?

coyl
23.06.2005, 14:16
кароче. с legacy_password я разобрался. это только в тех форумах, которые были сконверчены. а вот с полями так и не разобрался. какие конкретно поля используются при генерировании логин кея? и в какой последовательности? я доделал сплоит, позволяющий это всё спереть. только как использовать - вот вопрос =)

KEZ
23.06.2005, 19:31
Для этого нужно знать сальт из конфига

coyl
23.06.2005, 20:30
Погоди. салт в конфиге или в мискле? я чё-та не догоняю. из мискла я его уже стопудово достаю. а вот про конфиг первый раз слышу. или там два салта юзается?

coyl
23.06.2005, 20:53
ВСЁ! всё понятно формула такая:
md5(md5(converge_pass_salt).md59(парольюз ра))
это всё заносится в converge_pass_hash. в мискле!
вот. теперь дело за малым - спереть эти данные. Е!

KEZ
23.06.2005, 20:56
а как ты их сопрешь то оттуда? пока ты не в админек ты не имеешь туда доступа.

но за исследование - спасибо

coyl
23.06.2005, 21:49
читай выше. сплоитом. до 2.0.4 и с мисклом от 4.0 запросто достаются. =)

coyl
25.06.2005, 02:05
усё. тема отработана. завтра видео сделаю.

coyl
25.06.2005, 14:37
видео готово. ждем кеза

coyl
12.07.2005, 22:44
кароче кеза не дождались. видео не выкладываю