This commit is contained in:
parent
1e4522adaf
commit
783c73ff30
|
|
@ -1,55 +0,0 @@
|
|||
#!/bin/sh
|
||||
# rci_auth_test.sh
|
||||
# Скрипт для тестирования авторизации Keenetic RCI через X-NDM-Challenge
|
||||
|
||||
USER="${1:-admin}"
|
||||
PASS="${2:-password}"
|
||||
IP="${3:-192.168.1.1}"
|
||||
|
||||
echo "=== Тест авторизации Keenetic RCI ($IP) ==="
|
||||
|
||||
# 1. Получаем challenge и realm
|
||||
echo "Шаг 1: Получение challenge..."
|
||||
resp_headers=$(curl -s -i "http://$IP/rci/system/hostname" | tr -d '\r')
|
||||
realm=$(echo "$resp_headers" | grep -i "X-NDM-Realm" | cut -d' ' -f2)
|
||||
challenge=$(echo "$resp_headers" | grep -i "X-NDM-Challenge" | cut -d' ' -f2)
|
||||
|
||||
if [ -z "$challenge" ]; then
|
||||
echo "Ошибка: Не удалось получить challenge. Проверьте IP или доступность RCI."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo " Realm: $realm"
|
||||
echo " Challenge: $challenge"
|
||||
|
||||
# 2. Считаем MD5(login:realm:password)
|
||||
# -n в echo важно, чтобы не было лишнего перевода строки
|
||||
h1=$(echo -n "$USER:$realm:$PASS" | md5sum | cut -d' ' -f1)
|
||||
echo "Шаг 2: MD5(login:realm:password) = $h1"
|
||||
|
||||
# 3. Считаем SHA256(challenge + h1)
|
||||
# challenge — это бинарная строка? Нет, обычно это hex или string.
|
||||
# В Keenetic challenge (salt) конкатенируется с MD5 хешем (в виде строки).
|
||||
hash=$(echo -n "$challenge$h1" | sha256sum | cut -d' ' -f1)
|
||||
echo "Шаг 3: SHA256(challenge + MD5) = $hash"
|
||||
|
||||
# 4. Пробуем авторизоваться
|
||||
echo "Шаг 4: Попытка запроса с хешем..."
|
||||
# Мы передаем HASH вместо пароля в Basic Auth
|
||||
result=$(curl -s -u "$USER:$hash" "http://$IP/rci/system/hostname")
|
||||
|
||||
if echo "$result" | grep -q "hostname"; then
|
||||
echo "БИНГО! Авторизация через Basic Auth (Password=Hash) успешна."
|
||||
echo "Ответ: $result"
|
||||
else
|
||||
echo "Метод 1 (Basic Auth) не удался. Пробуем Метод 2 (X-NDM-Auth-Hash)..."
|
||||
result=$(curl -s -H "X-NDM-Auth-Hash: $hash" "http://$IP/rci/system/hostname")
|
||||
if echo "$result" | grep -q "hostname"; then
|
||||
echo "БИНГО! Авторизация через заголовок X-NDM-Auth-Hash успешна."
|
||||
echo "Ответ: $result"
|
||||
else
|
||||
echo "Упс... Оба метода не удались."
|
||||
echo "Полный ответ:"
|
||||
echo "$result"
|
||||
fi
|
||||
fi
|
||||
Loading…
Reference in New Issue