Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 攻防对抗 › 「抓包分析」校园网之锐捷网页认证以及L4分析

「抓包分析」校园网之锐捷网页认证以及L4分析

Eswlnk的头像
Eswlnk
2024-11-04 0:11:11
「抓包分析」校园网之锐捷网页认证以及L4分析-Eswlnk Blog
智能摘要 AI
作者因校园网锐捷认证频繁掉线,决定通过抓包工具Fiddler分析认证流程,使用Python模拟登录请求,并尝试通过伪造MAC和IP地址实现多拨,但因设备限制未能成功。

0x00 前言

由于被发配到了远离“驾校”本部的小区,导致网络认证非常难受,每天都会不定时的掉线。为了保证寝室的网络质量以及我的nuc的正常运行,决定对校园网的锐捷认证进行处理。

0x01 思路

之前的操作是通过F12直接抓取请求,获取加密密码和查询字符串,但最近F12的使用效果不佳,于是我使用了Fiddler这款抓包工具,具体的配置就不赘述了。我们先断网,看看请求的过程。

「抓包分析」校园网之锐捷网页认证以及L4分析-Eswlnk Blog

当我们断网并打开网页时,会被重定向到一个认证页面。无线网络和有线网络的请求方式可能有所不同,但问题不大。

接着,在Fiddler中访问以下URL,查看请求过程。

http://10.254.241.19/

我们发现前两个请求返回的状态码是302,随后有一个200状态的请求指向123.123.123.123,而第五个请求则是我们之前跳转后登录页面的地址。第二个图中显示的请求方法是“login”,这正是我们需要模拟的登录请求。

通过网页表单,我们了解到提交的是学号,密码则变成了一串难以辨认的字符,还有一些空字段。查询字符串看起来非常熟悉,实际上就是登录页面网址的后半部分,推测是与本机的MAC地址等信息有关的一个字符串,具体生成方式暂时不追究。最后一个passwordEncrypt字段默认为true,说明现在默认是加密的。之前如果将其改为false就能直接用密码登录,现在则需要进行加密。

「抓包分析」校园网之锐捷网页认证以及L4分析-Eswlnk Blog

在查看源代码的JavaScript文件时,我发现了一些关键代码,其中调用了security.js。因此,我们可以使用Python模拟这一过程,大致步骤是使用RSA进行加密,这里涉及两个重要参数:publicKeyExponent和publicKeyModulus。

这两个参数可以在登录页面上找到,但如何通过请求获取呢?在图2中的pageinfo请求中就可以获取到这些信息。接下来,我们需要探索如何用代码获取查询字符串。仔细查看图1中第三个请求的返回数据,基本验证了我们的猜测。有线和无线的地址可能不同,无线网络似乎是178开头的,所以我们需要从上述请求的返回值中提取两个信息:192.***.50.***和以wlanuserip开头的字符串。

「抓包分析」校园网之锐捷网页认证以及L4分析-Eswlnk Blog

0x02 获取查询字符串的代码

我们首先判断网络状态,如果没有网络则从123.123.123.123获取自己的查询字符串,并提交数据。判断网络是否连接的代码如下:

class internetWorkingFine(Exception):
    def __init__(self, ErrorInfo):
        super().__init__(self)
        self.ErrorInfo = ErrorInfo
    def __str__(self):
        return self.ErrorInfo

def get_info():
    redirect_host = 'http://123.123.123.123/'
    headers = {
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36",
    }
    info = {}
    res = requests.get(redirect_host, headers=headers).content.decode()
    info["querystr"] = res[(res.find("wlanuserip")):(res.find("'</script>"))].replace('=', '%3D').replace('&', '%26')
    if not info["querystr"]:
        raise internetWorkingFine("网络似乎正常~~")
    info["url"] = res[res.find('http:'):res.find('eportal')]
    return info

接下来的流程就比较清晰了。首先需要判断网络是否正常,如果断网则从123.123.123.123获取查询字符串,接着提交数据。

0x03 密码加密和重新认证

注意,部分学校的锐捷网页认证并没有开启加密,所以传参默认用户名和密码就行,例如“驾校”就是没有开启加密功能。这里的分析我们就用通用的。

接下来是加密密码和重新认证的代码,具体流程如下:

def get_password(pwd, exponent, modulus):
    e = int(exponent, 16)
    m = int(modulus, 16)
    t = pwd.encode('utf-8')
    input_nr = int.from_bytes(t, byteorder='big')
    crypt_nr = pow(input_nr, e, m)
    length = ceil(m.bit_length() / 8)
    crypt_data = crypt_nr.to_bytes(length, byteorder='big')
    return crypt_data.hex()

def relogin(uid, pwd):
    session = requests.session()
    pageinfo_url = "{url}eportal/InterFace.do?method=pageInfo".format(url=info["url"])
    page_data = {
        "queryString": info["querystr"]
    }
    req = session.post(pageinfo_url, headers=headers, data=page_data).json()
    exponent = req["publicKeyExponent"]
    modulus = req["publicKeyModulus"]
    password = get_password(pwd, exponent, modulus)

    login_url = "{url}eportal/InterFace.do?method=login".format(url=info["url"])
    login_data = {
        "userId": str(uid),
        "password": password,
        "service": "",
        "queryString": info["querystr"],
        "validcode": "",
        "passwordEncrypt": "true"
    }
    req = session.post(url=login_url, headers=headers, data=login_data).json()
    if req["result"] == "fail":
        return "重新认证失败:" + req["message"]
    return "重新认证成功~~~"

我们依次获取查询字符串、使用pageInfo获取加密参数,然后通过加密算法生成加密后的密码,最后提交认证。

0x04 进一步探索

我们这里可以进一步猜想,能否伪造mac和ip地址,从而实现多拨的效果呢?当然如果你的寝室里正好有一台路由器,并且已经刷上了openwrt,那么恭喜你可以做到,使用MentoHUST插件,即可进行802.11x验证,加上负载均衡,即可实现,如下图所示:

「抓包分析」校园网之锐捷网页认证以及L4分析-Eswlnk Blog

但是很可惜,我的这台水晶路由器不支持刷固件。本来想着用nuc来顶一顶,结果网线接口又不够,没办法,只能当个废弃的旁路由来玩。

那我们就来到,伪造mac地址和ip地址,看看能否实现一线两拨。

我们从上文的分析中可以看到,访问认证页面时会先去访问http://123.123.123.123生成对应的URL允许用户进行登录,那么我们可以从4层协议上进行篡改尝试。

成为会员免费解锁高速下载内容

白嫖赞助免费
已有6人解锁查看
已付费?登录 或 刷新

我在本地测试的时候,增加了一个广播功能。当然,这应该是属于arp attack的范畴了,本人也不太想涉及这方面。

本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
抓包攻防对抗校园网网络安全锐捷
0
1
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
「攻防对抗」TGP Daemon 守护进程致盲360核晶
上一篇
「技术分享」技巧篇之利用工具批量挖掘SRC
下一篇

评论 (1)

请登录以参与评论
现在登录
  • 的头像
    Eswlnk

    设置一个计划任务,N分钟运行效果更佳

    1 年前 • 182.150.*.* • Google Chrome Windows • 回复

猜你喜欢

  • 「漏洞资讯」CVE-2025-12914:宝塔面板曝出注入漏洞
  • 今日热点:伪Clash软件下载陷阱曝光,附防范建议
  • 漏洞资讯:Ollama 未授权访问漏洞分析与防护指南
  • 「攻防对抗」利用 fastjson 原生反序列化与动态代理突破安全限制
  • 「攻防对抗」从上传漏洞到Getshell | 一次完整的渗透过程
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

「日志记录」从零起步揭开路由器漏洞挖掘的面纱
2025-02-07 18:15:56
「攻防对抗」如何实现Powershell免杀?且看本文为你婉婉道来
2023-10-29 22:49:34
对某漫画APP进行的一次渗透测试
2023-02-01 14:47:42

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.731 秒   |  SQL查询 19 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈