python自动登陆校园网

由于每次打开电脑都要手动的登录校园网,导致很麻烦,所以写了一个爬虫来模拟浏览器自动登录校园网的功能

1.使用Burpsuit对校园网登录界面进行抓包分析

简介:burpsuite是一款渗透工具,运行环境是Java,所以需要先配置,主要可以用来对HTTP协议的工具包进行分析,也可以扫描网站的漏洞,接下来我们就用它来对校园网登录界面进行一个抓包。

1.1 设置浏览器代理

代理,就是拦截到浏览器的前面将数据包截取下来。

1.2 抓包分析

浏览器输入网址http://10.10.1.6/srun_portal_pc.php?ac_id=1&&userurl=http://www.lzu.edu.cn

然后打开burpsuite,点击forward(前进),就是讲刚才浏览器进行的动作,发送的包截取下来。

我们发现post一个表单到auth_action.php进行处理,在下面cookie里面有一个login还和上面一致。我们将报文复制一份进行分析,

POST /include/auth_action.php HTTP/1.1
Host: 10.10.1.6
Content-Length: 116
Accept: */*
Origin: http://10.10.1.6
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
Referer: http://10.10.1.6/srun_portal_pc.php?ac_id=1&&userurl=http://www.lzu.edu.cn
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: login=bQ0qQMxJvKa38joL2%252FjcHkC%252BmsG82yAhTQz7gmzQkugXpBZMrQUGiPHbG7NW34vDounugHSLx5A8mO4foZDYk3gvuzEOm8oE2SVDxfjaQLfPK6S3nHNRFaSa5KKhD%252FBgYozWIuXKWglZ6pYHmbs0l2KSqBUsQnuEp%252Fth0bbc%252BjfILH2xC501DX3AWRxf9c4IHUiuZZvZAhRsJGqlP9ypVRn9Ii6bTg%253D%253D; language=en; login=bQ0qQMxJvKa38joL2%252FjcHkC%252BmsG82yAhTQz7gmzQkugXpBZMrQUGiPHbG7NW34vDounugHSLx5A8mO4foZDYk3gvuzEOm8oE2SVDxfjaQLfPK6S3nHNRFaSa5KKhD%252FBgYozWIuXKWglZ6pYHmbs0l2KSqBUsQnuEp%252Fth0bbc%252BjfILH2xC501DX3AWRxf9c4IHUiuZZvZAhRsJGqlP9ypVRn9Ii6bTg%253D%253D
Connection: close

action=login&username=********&domain=@cernet&password={B}MTk5NjEy&ac_id=1&user_ip=&nas_ip=&user_mac=&save_me=1&ajax=1

下面是post出去的表单数据,username通过猜测肯定是用户名,然后password是密码,但是发现这个是一个加密的报文,我们来打开firebug查看下网页的javascript代码,发现是base64加密,
save_me字段应该是是否记住密码,如果点击了记住密码就是1否则就是0,接下来我们验证一下这个密码字段是否是base64.

选中password字段,然后点击send to decoderdecoderburp的一个编码解码模块,可以进行解码

发现密码和输入的一致但是前面加了一个{B},可能有什么标志位,接下来,我们继续对这个包进行分析,我们将它发送到repeater模块(中继器模块)可以对包进行修改。右击选中send to repeater

选择Go,发送包,看返回结果是什么

login_ok说明我们已经模拟浏览器登陆成功,但是我想测试下去掉几个无关紧要的字段是否也可以登录呢。经过repeater发包测试发现只有这几个字段是必须的。

经过测试只有request是如上的请求报文,我们就可以登陆成功,接下来我们用python模拟这个请求发送数据。
以下是代码:

import urllib.request

url="http://10.10.1.6/include/auth_action.php"
password="{B}MTk5NjEy"
username="********"
ac_id='2'
save_me='1'
ajax='1'
cookie="login=bQ0qQMxJvKa38joL2%252FjcHkC%252BmsG82yAnZjIv2aOiNLgdcFisQOPGduNfpXrq1m1kMaO3V9pmNJPwW7CiRVsfuOiIH7CP%252BlGaKj03wx3EcoSa1nagEF2HgnfjJcmJl6udXJxskZT0T9dmFgWtrhEObjLeL%252B05%252B3BB0l8ay8RfSeheGn%252F6p7YnxP46H43utiPMSxuZEl5YwF0dIA%253D%253D; language=en; login=bQ0qQMxJvKa38joL2%252FjcHkC%252BmsG82yAnZjIv2aOiNLgdcFisQOPGduNfpXrq1m1kMaO3V9pmNJPwW7CiRVsfuOiIH7CP%252BlGaKj03wx3EcoSa1nagEF2HgnfjJcmJl6udXJxskZT0T9dmFgWtrhEObjLeL%252B05%252B3BB0l8ay8RfSeheGn%252F6p7YnxP46H43utiPMSxuZEl5YwF0dIA%253D%253D"


postdata=urllib.parse.urlencode({
    "username":username,
    "password":password,
    "ac_id":ac_id,
    "save_me":save_me,
    "ajax":ajax,
    "action":"login"
     }).encode('utf-8')
req=urllib.request.Request(url,postdata)
req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36')
req.add_header("Cookie",cookie)
data=urllib.request.urlopen(req).read()
print(data)

  转载请注明: 星晴 python自动登陆校园网

 上一篇
安全行业小工具以及学习资源收集 安全行业小工具以及学习资源收集
简介安全行业小工具以及学习资源收集项目,此项目部分内容来自:https://www.t00ls.net/thread-38964-1-1.html感谢其分享,这里只是作为个人备份,如有问题可邮件通知。 安全资源安全资源包括安全书籍,资料,安
2019-04-12 starjian
下一篇 
admin提权为system admin提权为system
windows底下设置密码 net user username * 提醒输入密码,确认密码 net user查看当前系统下面的用户账号 XP底下是HelpAssistant是远程协助的账号 net user username查看当前系统这个
2019-04-12 starjian
  目录