58 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
source .env
# vars used from .env
#ROUTER_USERNAME
#ROUTER_PASSWORD
#ROUTER_ADDRESS
SesTokInfo_req(){
req=$(curl -s $ROUTER_ADDRESS/api/webserver/SesTokInfo)
TokInfo=$(echo $req | xmlstarlet sel -t -v "/response/TokInfo")
SesInfo=$(echo $req | xmlstarlet sel -t -v "/response/SesInfo")
}
gen_pass_hash(){
hash1=$(echo -n $ROUTER_PASSWORD| sha256sum | awk '{print $1}')
hash2=$(echo -n $ROUTER_USERNAME$hash1$TokInfo| sha256sum | awk '{print $1}')
passhash=$hash2
}
gen_login_body(){
body=$(echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?><request><username>$ROUTER_USERNAME</username><password_type>4</password_type><password>$passhash")
}
login(){
curl -s $ROUTER_ADDRESS/api/user/login \
-H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
-H "Cookie: SessionID=$SesInfo" \
-H "__RequestVerificationToken: $TokInfo" \
--data-raw $body
}
#disable_data(){
#curl -s $ROUTER_ADDRESS/api/user/login \
# -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' \
# -H "Cookie: SessionID=$SesInfo" \
# -H "__RequestVerificationToken: $TokInfo" \
#}
# exec oder
SesTokInfo_req
gen_pass_hash
gen_login_body
login
# debug
echo $TokInfo
echo $SesInfo
echo $passhash
echo $body