当前位置: 首页>編程日記>正文

python攻击校园网_Python模拟校园网登录

python攻击校园网_Python模拟校园网登录

最近忙着实验室的项目,学习的时间相对较少。前一段时间刚开始接触python时,依葫芦画瓢照着写了一个爬虫,爬取了某个网站的图片。当看到一张张图片自动出现在电脑屏幕上时,有些小小成就感。我想大多数人开始了解Python学习Python都是从爬虫开始的吧。最近又想着解决用Python实现校园网的自动登录过程,每天登录校园网都要输入学号和密码,没有一个记住密码的功能真是毫无人性。为了偷点懒开始了学习,懒真的是学习的动力。记录一下学习的过程。

1 抓包

其实用Python实现校园网登录已经有很多爱钻研的同学实现了,但是对于我这一个刚了解Python语法的小白来说,代码艰深难懂,再者说每个学校的校园网登录过程也是不同的,别人的代码终究无法直接使用。因此我从基本知识开始学起,再理解代码,再到它山之石可以攻玉。在这些爱钻研同学的博客中,我不断看到抓包这个词。那什么是抓包呢,搜索一下就有答案。

抓包(packet capture)就是将网络传输发送与接收的数据包进行截获、重发、编辑、转存等操作,也用来检查网络安全--来自百度百科

意思是明白了,但也只是明白其字面上的意思,对于真正理解还是要去实践才能有更深的体会。

2 Fiddler

Fiddler是一款抓包工具,至于为什么下载了这款软件,也是看推荐的人较多。那么为了实现自动登录校园网的功能,我又开始了学习Fiddler软件的使用。看了这几篇博客也基本有了一个了解。

3 Http请求响应

了解抓包工具的使用还远远不够,看着Fiddler里面展示的数据一头雾水。还得接着学习者软件里展示的是什么数据,数据是什么意思,我需要什么数据。网络知识及其匮乏的我无论搜索什么看到的结果都是新鲜的知识。那么其中最主要的是Http请求和响应了。我又搜索到了以下几篇博客,对于这些也有了一些基本的认识。我们的校园网其实也就是一个Http请求响应的过程,只要知道了请求的网址,请求的数据以及其他相应的要求,模拟登录也就实现了一半了。

感谢网络,感谢这些不仅爱钻研还爱奉献的同学们。

4 Python相关知识

基础性知识前面基本了解的差不多了,剩下的就是实现工具Python的学习了。看了相关同学的代码后,主要使用到了以下三个模块,urllib、urllib2、cookielib。

urllib 和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL。

urllib提供urlencode方法用来GET查询字符串的产生,而urllib2没有。这是为何urllib常和urllib2一起使用的原因。目前的大部分http请求都是通过urllib2来访问的。

cookielib是内置的操作cookie模块,配合urllib、urllib2模块可以轻易地模拟登录、爬取数据了。

对于这些知识,以下博客有比较详尽的介绍。

5 实现

打开我们的Fiddler抓包工具,设置一下Filter,设置Host地址,只抓取登录校园网页面的信息。

打开校园网登录页面,输入账号密码,点击登录。

在Fiddler中我们就可以看到整个的登录过程。

可以看到左边共有4个URL地址,第一个为登录页面网址,但这并不是数据提交请求的URL,因此不是我们需要的URL。第二个URL才是整个实现过程的重点。点击Inspectors按钮,可以看到Post请求的所有信息。上面的URL就是我们模拟登录所需要的URL。下面红色框框起来的就是post的表单数据,我们在模拟的时候需要构造这个表单。中间是我们构造Header所需要的信息。得到这个就可以进行代码的编写啦。参考

# -*- coding: utf-8 -*-

import urllib2

import urllib

import cookielib

# 构建opener

cookie = cookielib.CookieJar()

opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))

#posturl,即post方法所提交的url

post_url ='http://202.114.64.105:8080/eportal/userV2.do?method=login&param=true&wlanuserip=2f4818f809bb03949855832f02b16d5e&wlanacname=1e45aef6b6ca19a225a0ea53d741eeac&ssid=&nasip=5e15ad0ffd6b5c5c547d6756a5026574&snmpagentip=&mac=0b7f9d26b9fca3c8440b6a736dd7cd9d&t=wireless-v2&url=096e8e7059e430e083d28bd1997d6c398f3c08c737495b2fe98713e6195541bf2880d0d92acf2250&apmac=&nasid=1e45aef6b6ca19a225a0ea53d741eeac&vid=bee7bb6a6937bb74&port=a0a45c9f5ae3c42f&nasportid=ac41d60d7f1382084fc1d18ad6536cc7ff1d8558fc05d393faf4237ae4c8c8ab&username=2017xxxxxxxxx&pwd=xxxxxx'

# 根据抓包信息 构造表单

data = {

'is_auto_land': 'false',

'usernameHidden': '2017xxxxxxxxx',

'username_tip': 'Username',

'username': '2017xxxxxxxxx',

'strTypeAu': '',

'uuidQrCode': '',

'authorMode': '',

'pwd_tip': 'Password',

'pwd': 'xxxxxx'

}

post_data = urllib.urlencode(data)

#根据抓包信息构造headers

headers = {

'Accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",

'Accept-Language': 'zh-CN,zh;q=0.9',

'Connection': 'keep-alive',

'Host': '202.114.64.105:8080',

'Referer': 'http://202.114.64.105:8080/eportal/index.jsp?wlanuserip=2f4818f809bb03947c121d8e304df716&wlanacname=1e45aef6b6ca19a225a0ea53d741eeac&ssid=&nasip=5e15ad0ffd6b5c5c547d6756a5026574&snmpagentip=&mac=0b7f9d26b9fca3c8440b6a736dd7cd9d&t=wireless-v2&url=096e8e7059e430e083d28bd1997d6c398f3c08c737495b2fe98713e6195541bf2880d0d92acf2250&apmac=&nasid=1e45aef6b6ca19a225a0ea53d741eeac&vid=bee7bb6a6937bb74&port=a0a45c9f5ae3c42f&nasportid=ac41d60d7f1382084fc1d18ad6536cc7ff1d8558fc05d393faf4237ae4c8c8ab',

'User-Agent': "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36",

}

req = urllib2.Request(post_url, post_data, headers)

content = opener.open(req)

#print content.read().decode('gbk').encode('utf-8')

print "连接成功"

代码中涉及账号密码都都用xxx代替。整个代码很简短,但是其中涉及的知识不少,当然这是对于小白来说的。

回顾昨天的学习历程,我只想说感谢互联网,以及感谢这些不仅爱钻研还爱奉献的同学们,是你们的总结让后来的人少走很多弯路。昨天在搜索自动登录校园网的时候,在知乎上看见有人回答这是最简单最基础的问题,实现起来相当easy,我当时想这哪里简单了,完全一头雾水呀。站在今天了解些许相关知识后,我竟然觉得那回答还挺有道理的,的确是调用一下相关的库,构造一下相关的表单、header就OK。加上我们学校的校园网对于密码没有加密,也没有验证码,问题变得更加简单。

懒是学习的动力,而通过实现一些小功能也是不错的学习方法,比起枯燥的看书来得有意思些。继续学习~


https://www.fengoutiyan.com/post/14455.html

相关文章:

  • python伪装ip地址
  • python网络安全
  • python123平台登录
  • Python网络编程
  • python攻击
  • python做界面
  • python登录网站
  • python cookbook
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機