Windows PowerShell使用curl登录校园网

1.抓包分析登录过程

这里尝试过两种方法:一是直接用新版edge的DevTools,即按F12键;另一种则是使用Wireshark软件。下面分别演示这两种方法。

方法一:使用DevTools

校园网登录页面
首先打开校园网的登录页面
DevTools
接着按F12进入DevTools,选择NetWork的选项卡,默认开始记录网络活动
登录
然后返回登录页面,输入账号密码点击登录

抓取结果
此时去到DevTool的窗口,查看抓取的结果。抓取结果默认是按照时间顺序排列的,如果不是可以使用WaterFall的选项卡进行升序或者降序的排列
查找数据包
在抓取的网络活动当中,发现有名为login.php的活动,猜测其为登录的关键步骤。上图是其中的某一个login.php的活动,其向目标网址发送了一个post请求,且携带的参数当中包含账号和密码。此活动应该是登录的关键步骤。

方法二:使用WireShark

校园网登录页面
同样打开校园网的登录页面
启动WireShark
启动WireShark,选择网络接口进行抓取。一般来说,抓取的网络接口都是直接对外的总连接的接口,即波动较大的网络。如果不清楚选择哪一个,也可以打开网络中心看一看对外连接的是哪一个网络接口。

登录
然后返回登录页面,输入账号密码点击登录

抓取结果

由于已知登录界面的主机的ip,所以在这里就直接输入了ip和协议进行过滤。如果不清楚,还是需要去F12的界面查看。关于过滤规则详见1

2.构造数据包模拟登录

从F12和WireShark的抓取结果来看,登录过程主要是本地主机向登录页面发送了一个POST的请求,并携带账号密码进行验证。构造数据包的方法也有两个,一个是curl命令行构造,一个是python脚本构造

方法一:使用curl命令

curl命令行登录
原本是参照某篇博文2进行构造命令,然后发现Windows下Powshell的命令格式有所不同,并不能使用这篇博文的方式。后续根据报错查找,另一篇博文3展示了改进方法。关于Powshell下curl命令的使用方法,这里有两篇博文也有很好地说明。45也可以参照该博文6使用curl进行登录。

方法二:使用python脚本

在这里插入图片描述

python代码如下:

import requests

login_url = ""

data = {
    "opr":"",
    "userName":"",
    "pwd":"",
    "ipv4or6":"",
    "rememberPwd":""
}

doc = requests.post(login_url,data).text
print(doc)

以上代码参考了该博文7

3.总结

在抓包过程当中,DevTools的目标更明确,指定对某一个具体的页面的网络活动进行抓取,可以看到该页面的ip地址、端口等等;相比之下Wireshark的目标更宽泛,所有通过网络接口的数据均进行抓取,需要过滤才能看到目标页面的信息。不仅目标宽泛,WireShark抓取的数据也更多,过滤后,目标页面的TCP三次握手的过程也能够看到。

此次抓取的是登录过程,后续也抓取过退出过程,方法基本一致。退出过程的目标地址和登录过程的目标地址一样,只是携带的参数不同。

除此之外,也尝试过模拟登录搜狐邮箱,同样参考这篇博文7,但并没有成功。分析是携带的参数不对,除了时间戳这个变量之外,每次登录的参数还受其他变量的影响。而且其使用的是加密的https的方式,还需要对WireShark进行配置才能解密数据包8

还尝试过抓取B站的弹幕,参考的这两篇博文910,但都没有成功。原因是并没有找到储存弹幕的xml文件,也就没有找到弹幕的服务器地址和获取弹幕的请求参数。不过有大佬做了API11,可以直接使用API获取弹幕。除了用API之外,其实也可以用BeautifulSoup等python库,因为我发现弹幕是可以直接在网页的HTML文件里面找到的。直接爬取HTML文件,根据规则过滤,拿到弹幕也是可以的。但是在F12的界面,初始的HTML文件是没有弹幕的。猜测是有脚本从服务器获取了弹幕,然后按照某种规则填充了进去。如果可以从脚本开始分析,或许能够找到存储弹幕的服务器和请求弹幕的参数。

有博文12指出了之前获取弹幕XML文件的两种方法依然适用:

1、https://comment.bilibili.com/视频的cid.xml
2、https://api.bilibili.com/x/v1/dm/list.so?oid=视频的cid

获取cid的方法可以去上面的博文里面查看。

虽然以上的两种方法依然适用,但是我现在,仍旧没有在F12的页面当中找到XML的传输记录


  1. Wireshark 常用过滤方法 ↩︎

  2. curl命令登录网页 ↩︎

  3. 在 Windows PowerShell 中执行命令:curl -X POST –data,报错:Invoke-WebRequest : 找不到接受实际参数“POST”的位置形式参数。的分析解决 ↩︎

  4. 在PowerShell中使用curl(Invoke-WebRequest) ↩︎

  5. Invoke-WebRequest ↩︎

  6. curl命令实现上网认证登录 ↩︎

  7. 搜狐网模拟登录案例 ↩︎ ↩︎

  8. 配置Wireshark抓取https数据包 ↩︎

  9. python爬虫----b站的弹幕获取 ↩︎

  10. Python爬虫爬取Bilibili弹幕过程解析 ↩︎

  11. bilibili_api,仅用 3 行代码获取B站(弹幕、评论、用户)数据 ↩︎

  12. 感谢大佬,B站弹幕也能抓取啦~ ↩︎

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值