PJBlog3 V3.2.9.518可恶意注册BUG解决方法



前天发现博客会员数增加了很多,查了下,很多属于恶意注册用户并且已持续了几个月:





搜索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

明白了,这边有个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

OK,问题解决。

后记:网上搜索了下,中招的不只我的博客:





评论: 1 | 引用: 0 | 查看次数: 125556
洋葱头[2015-07-18 12:46 AM | | | 114.88.226.180 | del | 回复回复]
沙发
我的修改过了怎么还被恶意注册呢
回复来自 dnawo dnawo 回复 [2015-08-08 09:26 AM]
前段时间没网络,这两天记录了下注册信息,每天都有恶意注册,仅有少部分成功:username=EstherMattingly586&password=Ae56GW&Confirmpassword=Ae56GW&Gender=2
&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
发表评论
登录后再发表评论!