python脚本实现自动登陆校园网

搞了几天终于把这个搞出来了,代码不到50行,要是别的网站很好模拟,但这个稍微有点麻烦,抓包工具用了好多,httpfox没抓全,wireshark抓的又太多不好分析,最后还是用神器fiddler才把它搞出来。本着负责任的心态,我就一步一步的把它写下来,希望对后来学习python的人有帮助。
我是用fiddler中的设置断点的方式来分析报文的,首先设置响应后断点,然后连上校园网,随便点击一个网站这里写图片描述例如点击优酷它就自动跳转到校园网了这里写图片描述然后抓包发现第一个跳转的网页请求和回复是这样的这里写图片描述python脚本就要依照他的头部和url来请求,
import requests
url='http://10.10.3.3:8080/portal?userip=172.20.59.118&userurl=http://10.10.3.4:8080'
my_headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive',
}
a=requests.get(url, headers=my_headers)

它的响应报文回复的地址正是它第二次要请求的url,于是第二次请求的url就是a.url,请求头部不变

b=requests.get(url=a.url, headers=my_headers)

这次请求会得到什么呢?
这里写图片描述
我们发现这次请求不仅得到了下一次请求的地址,还得到了cookies值,我们接着看
这里写图片描述
这次请求就加上了cookie值,并且这个网页是登陆页面,需要添加用户名和密码的,我们加上用户名和密码之后,看他会把数据post到哪呢?
这里写图片描述
post后边是网址,cookie就是我们之前取得的cookie值,我们再把需要提交的数据加上模拟登陆就成功了,涉及到隐私,就不把用户名和密码贴出来了
这里写图片描述
完整的代码看这

import requests
url='http://10.10.3.3:8080/portal?userip=172.20.59.118&userurl=http://10.10.3.4:8080'
my_headers = {
    'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'Accept-Encoding': 'gzip, deflate',
    'Connection': 'keep-alive',
    }
a=requests.get(url, headers=my_headers)
b=requests.get(url=a.url, headers=my_headers)
r = requests.get(url=b.url,headers=my_headers)
headers={
    'Accept': 'text/plain, */*; q=0.01',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0',
    'X-Requested-With': 'XMLHttpRequest',
    'Referer': 'http://10.10.3.3:8080/portal/templatePage/20150126153340986/login_custom.jsp?userip=172.20.59.118&userurl=http://10.10.3.4:8080'
}
my_data = {
    'userName':'xxxxxxxxxx',
    'userPwd':'xxxxxxxxxxx',
    'serviceType':'teacher',
    'isSavePwd':'on',
    'userurl':'http://10.10.3.4:8080',
    'userip':'172.20.59.118',
    'basip':'',
    'language':'Chinese',
    'usermac':'null',
    'wlannasid':'',
    'wlanssid':'',
    'entrance':'null',
    'loginVerifyCode':'',
    'userDynamicPwddd':'',
    'customPageld':'0',
    'pwdMode':'0',
    'portalProxyIP':'10.10.3.3',
    'portalProxyPort':'50200',
    'dcPwdNeedEncrypt':'1',
    'assignIpType':'0',
    'appRootUrl':'http://10.10.3.3:8080/portal/',
    'manualUrl':'',
    'manualUrlEncryptKey':''
}
url3='http://10.10.3.3:8080/portal/pws?t=li'
z=requests.post(url3,data=my_data,headers=headers,cookies=r.cookies)

有任何问题可以在评论上提

  • 7
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值