GreaseMonkey让网站登录验证码形同虚设 - TOMMYHU - 专注互联网开发及运营技术,提供相关资料及软件下载,奇趣网络时事评论!
Mar 29

GreaseMonkey让网站登录验证码形同虚设 不指定

tommyhu , 08:20 , ASP.NET , Comments(0) , Trackbacks(0) , Reads(7164) , Via Original Large | Medium | Small
验证码破解与防破解一直是个纠结的问题,这里引自博客园的一片文章,一个思路!
通常,为了增加暴力猜解网站用户密码的难度,我们会在网页登录框中增加一个验证码,验证码保存在服务器端,而客户端则使用一张图片显示:
Highslide JS

验证码在整个登录过程表现为:用户打开登录页面时,服务器产生一个验证码,点击登录后,跳转到登录页面,服务器端检查用户输入的验证码是否正确,若错误,跳回到登录页面,生成一个新验证码让用户再次输入登录。注意,生成新验证码的条件是登录页面刷新了!

以前没觉得这有什么问题,今天了解12306自动登录脚本后,发现这问题太严重了,当使用GreaseMonkey时,简直可以无视验证码的存在,原因是借助GreaseMonkey可以在页面使用Ajax提交表单进行登录,这过程不会刷新登录页面,所以服务器不会生成新验证码,因而只要手工输下验证码,脚本就可以不断尝试登录进行猜解用户名密码!

1.GreaseMonkey自动登录演示

为了减少代码量,便于说明问题,下边演示时验证码不转为图形,直接输出Session,效果一样,不影响结论。

Login.asp:

GreaseMonkey脚本:

测试结果:
Highslide JS

2.解决方法

提供两种解决方法供参考:

方法一:当验证登录用户名或密码出错时,服务器端强制生成新验证码;
方法二:当尝试登录5次失败时,将帐户锁定一段时间不能登录;

3.参考资料

[1].Firefox扩展Greasemonkey使用示例:http://www.mzwu.com/article.asp?id=3091
本论文来源:http://www.cnblogs.com/dnawo/archive/2012/01/19/2326227.html
▲返回顶部
Last modified by tommyhu on2012/03/29 08:22

Add a comment

Nickname

emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot