Tenda AC15 ファームウェア V15.03.05.18_multi は、password=<MD5(password)><6文字のサフィックス> という形式の認証クッキーを発行し、HttpOnly、Secure、SameSite フラグなしで返すため、パスワードハッシュがクライアントに露出します。
低エントロピーのサフィックスは予測可能なセッション識別子として機能し、攻撃者によるセッションのリプレイまたはハイジャックを可能にします。
/login/Auth は password=<MD5(password)><6文字のサフィックス> というクッキーを発行する。HttpOnly、Secure、SameSite)がない。document.cookie)でアクセスでき、/main.html へのリクエストで再利用できる。PW_HASH=$(echo -n 'ringzer0' | md5sum | cut -d' ' -f1)
curl -v --compressed -c cookies.txt -D headers.txt -X POST \
"http://192.168.141.128:20080/login/Auth" \
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
--data "username=admin&password=${PW_HASH}"
COOKIE=$(awk 'NF && $0!~/^#/ {print $6"="$7; exit}' cookies.txt)
curl -s -i -H "Cookie: ${COOKIE}" "http://192.168.141.128:20080/main.html" | sed -n '1,40p'
HttpOnly、Secure、SameSite フラグを追加すること。Tenda AC15 ファームウェア V15.03.05.18_multi は、password=<MD5(password)><6桁のサフィックス> という形式の認証クッキーを発行し、HttpOnly、Secure、SameSite フラグなしで返すため、パスワードハッシュがクライアントに露出します。
低エントロピーのサフィックスは予測可能なセッション識別子として機能し、セッションの再利用またはハイジャックが可能になります。
/login/Auth は password=<MD5(password)><6桁のサフィックス> という形式のクッキーを発行する。HttpOnly、Secure、SameSite フラグがない。document.cookie)でクッキーを読み取り、/main.html へのリクエスト時に再利用できる。PW_HASH=$(echo -n 'ringzer0' | md5sum | cut -d' ' -f1)
curl -v --compressed -c cookies.txt -D headers.txt -X POST \
"http://192.168.141.128:20080/login/Auth" \
-H "Content-Type: application/x-www-form-urlencoded; charset=UTF-8" \
--data "username=admin&password=${PW_HASH}"
COOKIE=$(awk 'NF && $0!~/^#/ {print $6"="$7; exit}' cookies.txt)
curl -s -i -H "Cookie: ${COOKIE}" "http://192.168.141.128:20080/main.html" | sed -n '1,40p'
HttpOnly、Secure、SameSite フラグを適用すること。