域名快到期了,原来在39互联(39au.cn)上注册的域名,39互联是861.cn的代理商,861.com是新网的代理商,最终的域名解释是在新网,现在39互联出现了问题,客服好像没有了,快半年了一直联系不上,所以准备换掉,一种方法是将域名转走到其他的域名服务商,一种是换新网的代理商。
咨询了一下换域名转走需要原来的代理商出局证明到新网,新网给转移密码,然后到新的服务商进行转入;换代理商只需要知道新网dns管理密码就可以,然后找一个新网的代理商,有很多个人代理商比较便宜。
39互联提供一个到861代理网页的一个链接,并提供到861.cn的dns管理密码,但是这个密码是861.cn自己管理的,不是新网dns管理密码,但是861.cn到http://www.paycenter.com.cn有一个链接,自动登录到http://www.paycenter.com.cn/,不需要新网的管理密码。我想应该在这个页面中存在密码,然后开始分析这个页面,向新网提交时使用了下面的代码
<form action="https://..." onsubmit="return check(this);"> ......
<input type=hidden name=Domain value="mydns"> <input type=hidden name=Suffix value=".cn"> <input type=hidden name=Password value="114522156c">
|
主要看下面的三个input,前两个是组成域名mydns.cn,后面是一个密码,但是使用这个密码在新网登录不成功,然后发现在提交时会调用一个函数check(this),这个函数使用了一种加密方法,代码如下
<script language="javascript"> <!-- document.write(unescape("%3Cscript%20language%3D%22javascript%22%3E%0D%0A%3C%21--%0D%0Afunction%20check%28form%29%7B%0D%0A%09var%20pass%20%3D%20%2Uui7ama5]g?9OqF5%22%3B%0D%0A%09var%20newPass%20%3D%20%22%22%3B%0D%0A%09for%28i%3D1%3Bi%3Cpass.length%3Bi+%3D2%29%7B%0D%0A%09%20%20%20%20if%28pass.charCodeAt%28i%29%20%3D%3D%2032%29%0D%0A%09%20%20%20%20%20%20%20%20newPass%20%3D%20newPass%20+%20%22%7E%22%3B%0D%0A%09%20%20%20%20else%0D%0A%09%20%20%20%20%09newPass%20%3D%20newPass%20+%20String.fromCharCode%28pass.charCodeAt%28i%29%20-%201%29%3B%0D%0A%20%20%20%20%7D%0D%0A%09form.Password.value%20%3D%20newPass%3B%0D%0A%09form.submit%28%29%3B%0D%0A%09return%20false%3B%0D%0A%7D%0D%0A//--%3E%0D%0A%3C/script%3E")); //--> </script>
|
这段代码是将一个函数输出到网页,但是使用了转义字符,需要转过来才能看明白,下面的代码是我转过来的一个事例,并输出出来
<script language="javascript"> //alert(unescape("%7E")); check(); function check(){ var pass = "vuE7]mx5lgSqX5"; var newPass = ""; for(i=1;i<pass.length;i+=2){ if(pass.charCodeAt(i) == 32) newPass = newPass + "~"; else newPass = newPass + String.fromCharCode(pass.charCodeAt(i) - 1); } alert(newPass); return false; }
</script>
|
过程是这样的使用asert(unescape("%7E"))输出转移字符是什么,然后查找替换,直到所有的转移字符替换完成,然后执行以下输出结果就可以了,据我猜测check函数应该每次都会变动,不过解析出来密码就出来了。