admin 管理员组文章数量: 1184232
本文参考
的博文对自己的路由器进行分析,并且实现重启路由器的操作
原理:利用burp site捕获登录路由器时的请求,然后调用python的requests库来重现该请求即可达到登录路由器的目的,同样只要捕获到重启路由器操作时浏览器发送到路由器的请求,然后重现即可。
1.本人第一次用burp site,不太清楚怎么用,就设置浏览器用127.0.0.1:8080这个本地代理,这样burp site就可以捕获到请求了。
2.安装burp site要先装jdk8,然后cmd中执行java -jar burp-loader-keygen.jar安装burp site,后面的安装教程省略自己百度。
3.原博文中调用了requests.session(),这个函数的作用如下:
在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息
(1)requests库的session对象能够帮我们跨请求保持某些参数,也会在同一个session实例发出的所有请求之间保持cookies。
(2)requests库的session对象还能为我们提供请求方法的缺省数据,通过设置session对象的属性来实现
s=requests.session()
#登录路由器
response = s.get(' headers=header_login)
4.最后面的python代码中,把重启代码换成登录代码可以模拟登录,获取到登录的源代码,登录的代码如下
response = requests.get(' headers=header_login)
下面是登录时捕获的请求:
GET / HTTP/1.1
Host: 192.168.2.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Authorization: ###这里是Authorization参数,包含验证信息,也就是账号密码,这里打个码###
下面是重启时捕获的请求:
POST /apply.cgi HTTP/1.1
Host: 192.168.2.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 48
Authorization: ###这里是Authorization参数,包含验证信息,也就是账号密码,这里打个码###
Connection: close
Referer:
Upgrade-Insecure-Requests: 1
action_mode=reboot&action_script=&action_wait=90
分析:重启时其实和登录的代码几乎一样,就多了一个
action_mode=reboot&action_script=&action_wait=90
,这个其实就是重启路由器的post请求。所以重启的代码=登录请求+重启请求
import requests
ip = '192.168.2.1'
#为了避免密码泄露,将Authorization的值存在Authorization.txt中
with open('Authorization.txt') as Authorization_file:
Authorization = Authorization_file.read()
# 登录get请求,这里其实只需要'User-Agent'和'Authorization'这两个请求头,如果不行可以添加一些捕获的请求中其他的验证
header_login = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0',
'Authorization': Authorization
}
# 重启路由器的post请求
reboot = {
'action_mode': 'reboot',
'action_script': '',
'action_wait': '90'
}
#重启路由器(捕获请求第一行`POST /apply.cgi HTTP/1.1`表明了是get请求还是post请求,以及验证的文件为apply.cgi
#所以要在post参数中加上这个,让它知道我需要把该请求头发送给谁,这里是
reboot = requests.post(' = reboot,headers = header_login)
print(reboot.text) #返回重启的页面信息
版权声明:本文标题:不求人,用Python代码自动重启路由器 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1773460627a3562189.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论