中国医大CT-YOUNG 闪讯和深澜并存的验证机制研究

中国医大CT-YOUNG 闪讯和深澜并存的验证机制研究

更新

2020-03-14:

已经很久未曾了解过学校的网络,本贴中的各种方法可能都已失效。

2017-11-01:

iMakar闪讯认证软件,可以给路由器或者其他设备认证,辽宁省内应该都可以用,其他的地方就不太清楚了

https://github.com/still-night/iMakar-CTYoung-Client/

背景:

2016年的暑假,中国医科大学在全校范围内开启了CMU和CT-Young两个wifi,并且深澜由之前深澜客户端PPPoE拨号的验证方式更改为网页验证,CMU使用深澜,而ct-young使用电信的闪讯客户端来登录.由于之前将深澜移植到路由器上来运行,所以这种改变引起了我很大的好奇,我开始研究如何将新版的验证方式也移植到路由器上来运行.2017年的暑假,学校将学生寝室网口原有的深澜验证改为闪讯,变得更加复杂,导致路由器不能正常在校园网内使用,因此我开始了新的验证方式的研究.
##使用过的工具:

  • CT-Young 闪讯手机客户端
  • SingleNet闪讯电脑客户端
  • Burp Suite Professional 抓包和模拟发包
  • Packet Capture 安卓抓包
  • apktool 安卓app解包
  • dex2jar 安卓app反编译
  • jd-gui 从jar包提取java源码
  • IntelliJ IDEA java编程IDE
  • jdk java编程
  • PyCharm python编程IDE
  • python2.7
  • openwrt路由器
  • xshell 用于连接openwrt路由器

深澜网页验证:

关于深澜的网页验证机制,我是16年的时候破解出来的,现在来总结一下.
深澜是在校内设置一个授权服务器,所有通过无线或者有线连接的设备都会分配到一个10.0.0.0/8的IP地址,但是现在不能连到互联网或者校内的其他服务,只可以连到深澜的登陆服务器 192.168.100.10,通过浏览器访问这个IP会进入登陆的网页(电脑版: http://192.168.100.10:802/srun_portal_pc.php?ac_id=1&),如下图
这里写图片描述

然后填好用户名和密码之后会发送验证信息到到深澜验证服务器

POST /include/auth_action.php HTTP/1.1
Host: 192.168.100.10:802
Connection: keep-alive
Content-Length: 103
Pragma: no-cache
Cache-Control: no-cache
Accept: */*
Origin: http://192.168.100.10:802
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://192.168.100.10:802/srun_portal_pc.php?ac_id=1&
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,ja;q=0.6,en;q=0.4
Cookie: login=bQ0pOyR6IXU7PJaQQqRAcBPxGAvxAcrh7N4TPxBk5meltyAaeznoenPbt1%252BLEhhiTV27dJdsVTGeUTu53c6jXcyTU1P106ogFOfl1CbKnr7LK2UTusy8u0IM7bOyZJKAFJT268QAU0%252BjeSyfSJ1o9SFiiR3WX08GCwtGATyne3DhsQag7OroWHMp892coA%253D%253D

action=login&username=20123456&password={B}MTYw&ac_id=1&user_ip=&nas_ip=&user_mac=&save_me=1&ajax=1

其中重要的部分如下

POST /include/auth_action.php HTTP/1.1
Host: 192.168.100.10:802

action=login&username=20123456&password={B}MTYw&ac_id=1&user_ip=&nas_ip=&user_mac=&save_me=1&ajax=1

可以看出是post到服务器来进行验证,第一行第二行是网页和主机地址端口,第三行中分为很多字段,重要的为:

  • action : 操作类型
  • username : 用户名
  • password : 加密后的密码

userip字段在我们学校是无效的,服务器会根据发送请求的源IP来授权上网.
密码的加密方式很简单,通过分析 网页中引用的 srun_portal.js
在第208行附近得到

var   e=encodeURIComponent(base64encode(utf16to8(frm.password.value)));
var d = "action=login&username="+encodeURIComponent(frm.username.value)+
"&password={B}"+e+
"&ac_id="+$("input[name='ac_id']").val()+
"&user_ip="+$("input[name='user_ip']").val()+
"&nas_ip="+$("input[name='nas_ip']").val()+
"&user_mac="+$("input[name='user_mac']").val()+
"&save_me="+save_me+
"&ajax=1";
//可以得到password是如下的表达式
password="{B}"+encodeURIComponent(
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

M2kar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值