某公司内部WEB系统登录密码加密解密分析及易语言实现源码
本帖最后由 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代码整理如下:
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编码,解码后如下:
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编码得到加密后的密码
四、易语言实现加密解密
至此,加密解密完成。
有的还是不错的 有点看不懂 但是正在学习 这个思维很好,虽然 这个加密好简单。。只是编码了一下。 - -这是要搞事,现在签到真是烦死人啊,唉 自动打卡是不行的,但是我已经实现了将签到链接发到手机上。可以实现随时随地远程打卡~ 这个加密有点简单啊。。{:1_907:} {:1_907:} 对于万能的程序员,!!! 就是base64编码加密解密{:1_918:} 易语言实现源码:eee
页:
[1]
2