知道某空间登陆时会对密码进行加密,以前大概分析过其过程,时隔三年,它的登陆过程已经不一样了。记得以前是,直接在表单的onsubmit调用js代码的。
现在的登陆页面,通过iframe来显示登陆界面的,用httpfox查看其iframe源码及js代码和下载的js文件,没看到form中有对js的调用。看来是隐藏了。为了找到
页面是如何对form中的字段进行加密的,走了不少的弯路。
根据对浏览器执行html的过程的猜测,可能用脚本对form的属性进行设置。通过导出js文件,用httpfox可以采用复制的方式进行导出,但导出的文件是只有一行
的,不方便阅读,用si也不能自动格式化,后来在网上找到一个可以对js文件进行格式化的网页,格式化后在复制出来,保存为一个js文件,用si来看就很方便了。
知道某用到了md5来加密,在si中搜索md5.果然找到相关的字段,后在找到$.Encryption = function(),知道这是一个加密函数。再找对该函数的引用,找到pt.login= {}
getSubmitUrl字段对加密函数的调用 ,pt.login.submit又对getSubmitUrl的调用。在pt.login= {}注册了$.e.add(H, "click", pt.login.submit);var H = $("login_button");H为
html的登陆按钮,这样的话当单击登陆按钮时就会调用pt.login.submit(),从而对form的字段进行了加密。
iframe是form可以再父html dom直接访问document.form[]。浏览器下载完js后会直接执行该js文件,而pt.login又是一个对象,所以会生成该对象。pt.login.init()调用了
pt.login.bindEvent();关联了事件与函数.
$.http.ajax(C, null, A, "GET", E)调用xmlrequesthttp来完成数据的传递,其中c为url+param。