用脚本控制普通路由器:curl

来源:互联网 发布:临沂淘宝拍照详情制作 编辑:程序博客网 时间:2024/05/17 23:19

Which can control your tp-link router automatically.

适用于无人值守,管理不便但已知路由器管理权限的情况,实现由远程主机对路由器(普联、水星等)配置进行修改(打开端口映射,静态地址等)。

1.获取GET请求:

Capture
连接路由器,进页面,点“保存”,GET请求暴露无遗。
Copy as cURL(bash):

curl 'http://192.168.1.1/userRpm/WlanNetworkRpm.htm?ssid1=guanlixi&wlMode=2&channel=0&mode=5&chanWidth=2&ap=1&broadcast=2&brlssid=&brlbssid=&keytype=1&wepindex=1&authtype=1&keytext=&Save=%B1%A3+%B4%E6' -H 'Authorization: Basic YWRtaW46YWRtaW4=' -H 'Accept-Encoding: gzip, deflate, sdch' -H 'Accept-Language: zh-CN,zh;q=0.8' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H 'Referer: http://192.168.1.1/userRpm/WlanNetworkRpm.htm' -H 'Connection: keep-alive' --compressed

(之前不知道Chrome有这么一个功能Copy as cURL,当然,也可以直接在右下角抄些头部信息来写脚本。)
整理后:

#!/bin/bash# WiFi SW# Test device: TP-Link 740# Client: Ubuntu 12.04# Browser: Mozilla firefoxexec(){curl    -H "Host: 192.168.1.1" \        -H "Authorization: Basic%20YWRtaW46MTIzNDU2Cg==" \        -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" \        -H "Accept-Language: en-US,en;q=0.5" \        -H "Accept-Encoding: gzip, deflate" \        -A "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0" \        -e "http://192.168.1.1/userRpm/WlanNetworkRpm.htm" \        "http://192.169.1.1/userRpm/WlanNetworkRpm.htm?ssid1=Hope_2&wlMode=2&channel=0&mode=5&chanWidth=2$1&broadcast=2&brlssid=&brlbssid=&detctwds=1&keytype=1&wepindex=1&keytext=&Save=%B1%A3+%B4%E6"        >> /dev/null}AP1="&ap=1"read -p "Wifi enable?[y/n]" SWcase $SW in        y)exec $AP1 ;;&        n)exec      ;;&esac

2.curl参数

-A/–user-agent 设置用户代理(客户端信息)
-H/–header 自定义头信息(header)
-e/–referer 来源网址

3.关于登录验证

用户名、密码包含于每次请求的头部参数中并进行了base64加密:
Authorization:Basic%20YWRtaW46MTIzNDU2Cg==
其中,%20 代表一个空格,从后面的字符串开始解:

pi@RAS:~/tplink $ echo "YWRtaW46MTIzNDU2Cg==" | base64 -dadmin:123456#用户名:密码 

4.关于中文乱码

加入 iconv -f gb2312 -t utf-8iconv -f gb2312 -t utf-8

pi@RAS:~/tplink $ ./status_virtual_server | iconv -f gb2312 -t utf-8iconv -f gb2312 -t utf-8

5.拓展

#!/bin/bash# 12306 Ticketcurl    -H "Host: kyfw.12306.cn" \        -H "Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3" \        -H "Accept-Encoding: gzip, deflate" \        -H "Cache-Control: no-cache" \        -A "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0" \        -e "https://kyfw.12306.cn/otn/lcxxcx/init" \        -k "https://kyfw.12306.cn/otn/lcxxcx/query?purpose_codes=ADULT&queryDate=2016-09-13&from_station=WHN&to_station=OTQ" \        | jq '.'

6.工具集

站长工具之URL编码解码
站长工具之Base64加密解密

鸣谢

curl命令伪装http_referer和user-agent访问

curl为何不生效呢?

php实现登录tplink WR882N获取IP和重启

几种在Linux下查询外网IP的办法

0 0
原创粉丝点击