GKD认证脚本
更新日志:
v0.1:登录方式源码脚本开始编改
执行脚本:./giwifi.sh 账号 密码
v0.2:添加sh存储账号密码功能
创建执行文件 :vi giwifi.sh
复制粘贴下方代码
按键盘ESC 键盘输入 :x 保存
给予文件全部权限执行 chmod +x giwifi.sh
然后就可以 ./giwifi.sh开始登录啦!
[root@root AM ~] #vi 1.sh [root@root AM ~] #chmod +x 1.sh [root@root AM ~] #./1.sh
最后更新时间:2024年4月6日
GitHub连接:等待更新
wget下载链接:等待更新
v0.2精简版(只有登录功能):理论上这个就够了
#!/usr/bin/env bash cd $( cd "$(dirname "$0")" pwd ) UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.5.1.4 Safari/537.36" baseUrl="http://192.168.99.2" first_page=$baseUrl'/gportal/web/login' post_url=$baseUrl'/gportal/web/authLogin?round='${RANDOM::3} state_url=$baseUrl'/gportal/web/queryAuthState' logout_url=$baseUrl'/gportal/web/authLogout' test_url="http://nettest.gwifi.com.cn" mywget() { resp_file=$(mktemp) if wget "$@" -qO $resp_file -U "$UA" --header "Origin:"$baseUrl --timeout 2 --tries 2; then cat $resp_file fi rm $resp_file } urlencode() { local string="$1" local strlen=${#string} local encoded="" local pos c o for ((pos = 0; pos < strlen; pos++)); do c=${string:$pos:1} case "$c" in [-_.~a-zA-Z0-9]) o="${c}" ;; *) printf -v o '%%%02x' "'$c" o=$(echo $o | tr 'a-z' 'A-Z') ;; esac encoded+="${o}" done echo "${encoded}" } urldecode() { printf '%b' "$(echo $1 | sed 's/+/ /g; s/%\(..\)/\\x\1/g;')" } aes_128_cbc() { str2hex() { echo -n $1 | hexdump -v -e '/1 "%02x"' } hex2str() { printf "%b" "$(echo -e $1 | sed 's/.\{2\}/\\x&/g')" } zeropadding() { hex=$1 blocksize=16 padlen=$((($blocksize - ${#hex} / 2 % $blocksize) % $blocksize)) for ((i = 1; i <= padlen; i++)); do hex+='00' done echo $hex } hex_key=$(str2hex $2) hex_iv=$(str2hex $3) hex_data=$(str2hex $1) hex_data_padding=$(zeropadding $hex_data) hex2str $hex_data_padding | openssl enc -aes-128-cbc -e -K $hex_key -iv $hex_iv -nopad -base64 -A } get() { mywget $first_page } get_form_input_from_page() { line_urlencode() { params_urlencode() { echo $(urlencode $1)"="$(urlencode $2) } while read line; do new_line=$(echo $line | awk -F '=' '{ print $1 " " $2 }') echo $(params_urlencode $new_line) done } echo $1 | grep -o '<form id=\"'$2'\"[^>]*>.*</form>' | sed 's/<\/form>.*//' | grep -o '<input[^>]*>' | grep -o 'name=\".*\" \([\w]*\(=\".*\"\)\? \)*value\(=\"[^\"]*\"\)\?' | sed 's/ .* / /g' | sed 's/name=\"\([^"]*\)\" value\(=\"\([^\"]*\)\"\)\?/\1=\3/g' | line_urlencode | awk '{printf("%s&", $0)}' | sed 's/&$//' | sed 's/\(\&name=\)\(\&password=\)//g' } json_get() { echo $1 | sed -n 's/.*\"'$2'\":[ ]*\([0-9]*\)[^},]*[,}].*/\1/p' } post() { iv=$(echo $1 | grep -o 'iv=[^\&]*' | sed 's/iv=//g') data=$(aes_128_cbc $1 "1234567887654321" $iv) msg="data="$(urlencode $data)"&iv=$iv" result=$(mywget $post_url --post-data $msg --header "Content-Type:application/x-www-form-urlencoded; charset=UTF-8" --header "Referer:$first_page") json_get "$result" "status" } queryAuthState() { sign=$(echo $1 | grep -o 'sign=[^\&]*' | sed 's/sign=//g') result=$(mywget $state_url --post-data "sign=$sign" --header "Content-Type:application/x-www-form-urlencoded; charset=UTF-8") json_get "$result" "status" } checkAccessInternet() { result=$(mywget $test_url) if [ -n "$internetCheck" ]; then echo 1 else echo 0 fi } logout() { data=$(get_form_input_from_page "$1" "frmLogout") result=$(mywget $logout_url --post-data "$data" --header "Content-Type:application/x-www-form-urlencoded; charset=UTF-8") json_get "$result" "status" } login() { html=$(get) if [ -z "$html" ]; then exit 101 fi myparam=$(get_form_input_from_page "$html" "frmLogin") if [ -z "myparam" ]; then exit 102 fi myparam=$myparam"&name=""$(urlencode $1)""&password=""$(urlencode $2)" authState=$(queryAuthState) if [ $authState -eq 1 ]; then echo "已连接[already online]" logoutBack=$(logout "$html") if [ $logoutBack -eq 1 ]; then echo "注销成功[logout success]" fi fi echo $(post $myparam) } username="在此处输入手机号" password="输入您的登录密码" login $username $password
本文作者:CYHMS
本文链接:https://www.cnblogs.com/cyhms/p/18117101
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步