Digest auth — различия между версиями
Материал из InformationSecurity WIKI
Drakylar (обсуждение | вклад) м (→Описание HTTP Authorization Header) |
Drakylar (обсуждение | вклад) м (→Описание HTTP Authorization Header) |
||
Строка 19: | Строка 19: | ||
<syntaxhighlight lang="python" line="1"> | <syntaxhighlight lang="python" line="1"> | ||
− | md5(md5(username +":"+ realm + ":" + pass) + | + | md5( |
− | ":" + nonce + ":" + | + | md5( |
− | md5(REQUEST_METHOD+ ":" + REQUEST_URI)); | + | username +":"+ realm + ":" + pass |
+ | ) | ||
+ | + ":" + nonce + ":" + | ||
+ | md5( | ||
+ | REQUEST_METHOD+ ":" + REQUEST_URI | ||
+ | ) | ||
+ | ); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Версия 17:24, 7 ноября 2016
Дайджест-аутентификация доступа
Описание HTTP Authorization Header
username - юзернейм авторизованного пользователя
realm - сообщение (вероятнее всего содержимое страницы)
nonce - случайно сгенерированный хеш md5($_SERVER[‘REMOTE_ADDR’] . ‘:’ . time() . ‘:случайная_строка’);
uri - URI страницы авторизации
response
1 md5(
2 md5(
3 username +":"+ realm + ":" + pass
4 )
5 + ":" + nonce + ":" +
6 md5(
7 REQUEST_METHOD+ ":" + REQUEST_URI
8 )
9 );
opaque -
qop - метод вычисления. Может быть равен auth, auth-int или не определен.
nc -
cnonce -
Brutforce
Скрипт для брутфорса пароля зная куки:
1 ############################################################################
2 method="GET"
3 uri = "/login.php"
4 username = "factoreal"
5 realm = "this page for admin only, go out now!"
6 nonce = "554aed8c0b2d8"
7 nc = "00000001"
8 cnonce = "d6d1a0a39a93b4c3"
9 qop = "auth"
10 response="d9b58c347f96195884ce27036f3c9546"
11 ############################################################################
12 import hashlib
13 password = open('passwords.txt').read().splitlines()
14 h2 = hashlib.md5(method+":"+uri).hexdigest()
15 for i in range(len(password)):
16 h1 = hashlib.md5(username+":"+realm+":" + password[i]).hexdigest()
17 result = hashlib.md5(h1 + ":"+nonce+":"+nc+":"+cnonce+":"+qop+":" + h2).hexdigest()
18 if result == response:
19 print "[*] Password found: " + password[i]
20 exit()
Райтапы
ASIS Quals CTF 2015: Strange Authen