用程序自动登陆58同城网的时候遇到的一些参数处理
2011-08-04 14:05
295 查看
本来模拟登陆不算复杂,就是一些参数的处理。但是今天登陆58同城发现有点小蹊跷。
因为你输入了密码,它提交过去的密码域的值还是"password"这个字符串,但是多了2个p1和p2的值,大家看一下提交时候的js代码:
,大概可以看到是用了2个函数对密码字段进行了处理,这个处理函数的2个参数,一个是密码,一个是timesign。这个timesign也大概看出来了,是一个时间戳减去页面加载时候的时间,再加上提交时候的时间。通过对1312436462073 的眼观就基本知道是个1970到现在时间的毫秒数。
通过对页面中js的下载这2个函数的js也找到了,整个页面也就那么5个吧。有个看着很像处理密码的js但是不是,最终给出的js是个文件名很随机的一个js文件,我尝试着对上一次的get(这个登陆不是post是get)的地址串进行测试,发现这个串在一定时间内是可以使用的,但是过了一阵子就不可以了。
猜测:服务器端做了一些判断,这个页面加载时候的时间戳还是有一定的规律的,不能乱写。最后确定这个值就以提交时间的格林尼治的毫秒数作参数(因为请求页面到post的时间可以忽略为0.服务器不会坐的限制这么死),根据这个思路:
再次组装get请求传,并且利用下载厚的js加密。得到我的正确验证,可以用程序模拟登陆了。。。
我的程序是winform,我找到了winform可以直接操作js的资料了。。问题解决。。。。
我在网上搜索有人出钱在搞定这个58的登陆。。作为分享技术的目的,,公开给大家了。。
因为你输入了密码,它提交过去的密码域的值还是"password"这个字符串,但是多了2个p1和p2的值,大家看一下提交时候的js代码:
var timespan = 1312436462073 - new Date().getTime(); ...省略无关的.... var timesign = new Date().getTime() + timespan; $("#timesign").val(timesign); $("#p1").val(getm32str($("#password").val(),timesign+"")); $("#p2").val(getm16str($("#password").val(),timesign+"")); $("#password").val("password"); return true;
,大概可以看到是用了2个函数对密码字段进行了处理,这个处理函数的2个参数,一个是密码,一个是timesign。这个timesign也大概看出来了,是一个时间戳减去页面加载时候的时间,再加上提交时候的时间。通过对1312436462073 的眼观就基本知道是个1970到现在时间的毫秒数。
通过对页面中js的下载这2个函数的js也找到了,整个页面也就那么5个吧。有个看着很像处理密码的js但是不是,最终给出的js是个文件名很随机的一个js文件,我尝试着对上一次的get(这个登陆不是post是get)的地址串进行测试,发现这个串在一定时间内是可以使用的,但是过了一阵子就不可以了。
猜测:服务器端做了一些判断,这个页面加载时候的时间戳还是有一定的规律的,不能乱写。最后确定这个值就以提交时间的格林尼治的毫秒数作参数(因为请求页面到post的时间可以忽略为0.服务器不会坐的限制这么死),根据这个思路:
再次组装get请求传,并且利用下载厚的js加密。得到我的正确验证,可以用程序模拟登陆了。。。
我的程序是winform,我找到了winform可以直接操作js的资料了。。问题解决。。。。
我在网上搜索有人出钱在搞定这个58的登陆。。作为分享技术的目的,,公开给大家了。。
相关文章推荐
- MFC编写程序的时候遇到的一些逻辑错误 持续......
- 当 jquery 发送 ajax 请求的时候遇到服务端session过期超时返回 302 跳转登陆页面的时候怎么办的处理方法
- 如何让AIX在启动和停机的时候自动运行一些命令和程序?
- 批处理程序:自动登陆服务端,并循环执行某些命令
- 发布MVC项目到服务器上时候遇到的 模块 DirectoryListingModule 通知 ExecuteRequestHandler 处理程序 StaticFile 错误代码 0x00000000
- 自己移植程序的时候遇到的一些问题
- Winform程序中打开网页,并自动登陆的三种方法
- 自动登陆程序事例
- 证书签发工具程序编译遇到的问题及处理
- 在制作打包程序的时候自动在用户计算机中还原SQL数据库
- 批处理程序如何接受多个文件拖入?开启了变量延迟enabledelayedexpansion之后遇到感叹号要怎么处理?
- 实战 HTTP 处理程序(HTTP Handler) (2) -- 向HTTP 处理程序传递参数
- 部署Yonkly程序时遇到的一些问题
- 当程序遇到 throw后的处理
- 夜间模式demo做的时候遇到的一些问题
- 由Ajax请求一般处理程序下载文件引发的问题后的一些总结
- 产品经理如何与强势的技术沟通? 技术比较有资历,会以技术无法实现等方面的原因拒绝处理产品提出的需求。 你们是否遇到这样的技术? 产品懂技术的话,是不是会好一些,因为可以和技术说“行话”了,并且产品懂技术就不会被忽悠了。
- ExtJS中store自动加载数据的时候,在firebug下http status为Aborted时的处理方法
- 修改程序清单7.7中的3个数组处理函数,使之使用两个指针参数来表示区间.
- QT 遇到的一些处理很久的Bug