Dr.com是城市热点公司开发的宽带计费系统,可以控制网络进行管理,认证,计费,限速……许多的高校与企业都有使用。
从接触到drcom就很感兴趣(原因想必大家都懂...)
drcom登陆(认证)方式又有很多不同 这里说下web端登陆的加密方式
在此之前查阅了很多资料 比较用的如下:
用python登录Dr.com: http://blog.csdn.net/cugbabybear/article/details/34106537
南京邮电大学专用的Drcom认证登陆软件: https://git.oschina.net/labrusca/NUPT_Drcom_loginer
同样从码云搜索到的: https://git.oschina.net/neophack/drcom
bjut校园网自动登录: http://blog.csdn.net/x_iya/article/details/52752860
其中python的一段代码:
def calpwd(init_pwd): #使用md5进行密码加密
pid = ''
calg=''
tmp = pid + init_pwd + calg
pwd = md5(tmp).hexdigest() + calg + pid
return pwd
调用:
def login(usr, passwd, url = school_url,force=0):
data = {} # 初始化表单
data["DDDDD"] = usr
data["upass"] = calpwd(passwd) #密码转换
data["R1"] = ""
data["R2"] = ""
data["para"] = ""
data["0MKKey"] = ""
data = urlencode(data) #编码
从上面可以明确的看到加密方式其实就是
MD5(pid+password+calg)+calg+pid
//其中pid 与 calg 都是常量 但是不同地区两个值也可能有所不同
web端的数据提交方式为Post 那么随便抓个包便能获取那有用的信息
我直接使用的手机(没有电脑可用)
这里我使用的软件是
无Root抓包:Packet Capture
抓取的的一段数据:
//使用了账号 1234567890
//密码 567890 DDDDD=12345678&upass=43bfd7c555c8a0f0a937c6e23d21d1b9123456782&R1=0&R2=1¶=00&0MKKey=123456&R6=1 //从上面的数据可以明确看到
//DDDDD为账号
//upass为密码
//(也就是256789012345678经过md5加密后的值加上123456782)
//从而确认 pid=2 calg=12345678
这样得到了提交方式又得到了加密方式 若是账号存在与密码存在一定规则 穷举也就变得ez((〜^㉨^)〜)...