本帖最后由 tornado 于 2017-10-31 17:00 编辑 某公司上班打卡需要登录内网WEB系统,通过微信绑定后扫描系统签到页面二维码进行打卡。
本帖只讲述易语言实现内网登录密码加解密,签到打卡其他的不进行描述。
一、抓取登录数据包
通过抓包抓取登录内网系统发送数据
登录数据包括三个参数:STAFFID(帐号)、pwdpwd(加密后的密码)、v_code(验证码)
其中帐号为明文,密码通过加密,验证码正常都是空。 二、获取加密密码来源
在Httpwatch里面搜索pwdpwd参数,发现在首域名里面写着,提交按钮被单击,document.myform.pwdpwd.value=encode(document.myform.PWD.value);,也就是说是通过encode进行加密的。
查找encode,发现这个函数是在一个encode.js文件里面
js代码整理如下:
[Asm] 纯文本查看 复制代码 function encode(Dvdr_sy$1){
var JwccNiiE2=Dvdr_sy$1;
var o3="";
JwccNiiE2=BASE64["\x65\x6e\x63\x6f\x64\x65\x72"](JwccNiiE2);
while (JwccNiiE2["\x6c\x65\x6e\x67\x74\x68"]>0)
{
o3=o3+JwccNiiE2["\x73\x75\x62\x73\x74\x72"](JwccNiiE2["\x6c\x65\x6e\x67\x74\x68"]-1,JwccNiiE2["\x6c\x65\x6e\x67\x74\x68"]);
JwccNiiE2=JwccNiiE2["\x73\x75\x62\x73\x74\x72"](0,JwccNiiE2["\x6c\x65\x6e\x67\x74\x68"]-1);
}
JwccNiiE2=BASE64["\x65\x6e\x63\x6f\x64\x65\x72"](o3);
return JwccNiiE2;
}
代码经过了base64编码,解码后如下:
[Asm] 纯文本查看 复制代码 function encode(Dvdr_sy$1)
{
var JwccNiiE2=Dvdr_sy$1;
var o3="";
JwccNiiE2=encoder(JwccNiiE2);
while (JwccNiiE2.length>0)
{
o3=o3+JwccNiiE2.substr(JwccNiiE2.length-1,JwccNiiE2.length);
JwccNiiE2=JwccNiiE2.substr(0,JwccNiiE2.length-1);
}
JwccNiiE2=encoder(o3);
return JwccNiiE2;
}
其中函数又调用到了一个encoder函数,再次查找encoder,在一个base64.js里面找到这个函数,其实就是base64编码
三、加密思路
根据上面的代码进行查看,原始密码先进行base64编码,然后在通过一个while循环实现倒序排列,最后再进行一次base64编码得到加密后的密码
四、易语言实现加密解密
新建 易程序.rar
(39.08 KB, 下载次数: 55)
至此,加密解密完成。
|