PJBlog3 V3.2.9.518可恶意注册BUG解决方法
编辑:dnawo 日期:2014-12-20
前天发现博客会员数增加了很多,查了下,很多属于恶意注册用户并且已持续了几个月:
搜索IIS日志,能查到对应的POST信息:
这说明恶意注册都是通过提交表单完成的,会不会是验证码被破解了?清除完恶意记录,对验证码进行了升级,但是昨天查看恶意注册仍在继续,会不会是数字验证码太容易破解?再次升级用中文验证码,今天查看恶意注册还在进行中
修改register.asp文件,保存注册数据,得到如下信息:
validate值为空,空验证码也可以注册?在页面上试了下,不行,但放在Fiddler2中提交却注册成功了,为什么?打开register.asp看了下相关程序:
明白了,这边有个BUG:
用第三方程序提交时,不调用common/getcode.asp,验证码Session("GetCode")的值为空,所以空验证码也能注册。
解决方法:打开register.asp文件,修改程序如下(166行):
OK,问题解决。
后记:网上搜索了下,中招的不只我的博客:
搜索IIS日志,能查到对应的POST信息:
引用内容
2014-12-18 07:29:05 W3SVC179938905 42.121.105.222 POST /register.asp - 80 - 178.43.73.53 Mozilla/5.0+(Windows+NT+6.1)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/27.0.1453.116+Safari/537.36 404 0 2
这说明恶意注册都是通过提交表单完成的,会不会是验证码被破解了?清除完恶意记录,对验证码进行了升级,但是昨天查看恶意注册仍在继续,会不会是数字验证码太容易破解?再次升级用中文验证码,今天查看恶意注册还在进行中
修改register.asp文件,保存注册数据,得到如下信息:
引用内容
username=Ldoo88w6j&password=qwedsa&Confirmpassword=qwedsa&Gender=0&email=&hiddenEmail=1&homepage=http%3A%2F%2Fcompresseibrig.eu&validate=&action=save&submit2=%E6%B3%A8%E5%86%8C%E6%96%B0%E7%94%A8%E6%88%B7
validate值为空,空验证码也可以注册?在页面上试了下,不行,但放在Fiddler2中提交却注册成功了,为什么?打开register.asp看了下相关程序:
复制内容到剪贴板 程序代码
If CStr(LCase(Session("GetCode")))<>CStr(LCase(validate)) Then
ReInfo(0) = "错误信息"
ReInfo(1) = "<b>验证码有误,请返回重新输入</b><br/><a href=""javascript:history.go(-1);"">单击返回</a>"
ReInfo(2) = "ErrorIcon"
register = ReInfo
Exit Function
End If
ReInfo(0) = "错误信息"
ReInfo(1) = "<b>验证码有误,请返回重新输入</b><br/><a href=""javascript:history.go(-1);"">单击返回</a>"
ReInfo(2) = "ErrorIcon"
register = ReInfo
Exit Function
End If
明白了,这边有个BUG:
用第三方程序提交时,不调用common/getcode.asp,验证码Session("GetCode")的值为空,所以空验证码也能注册。
解决方法:打开register.asp文件,修改程序如下(166行):
复制内容到剪贴板 程序代码
If CStr(LCase(Session("GetCode")))<>CStr(LCase(validate)) Or Session("GetCode")="" Then
ReInfo(0) = "错误信息"
ReInfo(1) = "<b>验证码有误,请返回重新输入</b><br/><a href=""javascript:history.go(-1);"">单击返回</a>"
ReInfo(2) = "ErrorIcon"
register = ReInfo
Exit Function
End If
ReInfo(0) = "错误信息"
ReInfo(1) = "<b>验证码有误,请返回重新输入</b><br/><a href=""javascript:history.go(-1);"">单击返回</a>"
ReInfo(2) = "ErrorIcon"
register = ReInfo
Exit Function
End If
OK,问题解决。
后记:网上搜索了下,中招的不只我的博客:
上一篇: LINQ to Entities尝试将NULL转为System.Int32出错一例
下一篇: RichTextBox.Find遍历搜索字符串中的坑
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
下一篇: RichTextBox.Find遍历搜索字符串中的坑
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 1 | 引用: 0 | 查看次数: 711973
发表评论
请登录后再发表评论!
&email=oscarhunt2523%400815.ru&homepage=&validate=9111&action=save
&submit2=%E6%B3%A8%E5%86%8C%E6%96%B0%E7%94%A8%E6%88%B7