标题:数据库被写入问题(有可能是注入)?
只看楼主
kingfangdeng
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:15
专家分:31
注 册:2009-1-29
结帖率:33.33%
已结贴  问题点数:15 回复次数:5 
数据库被写入问题(有可能是注入)?
先看代码:
dim ErrorAction
    ErrorAction=true
    dim M_Name,M_Password,M_Password1,M_Question,M_Answer,M_Company,M_Tel,M_Fax,M_Mobile,M_Address,M_Zip,M_Contact,prov,city,M_Website,M_Email,M_CompAttribute,M_TradeName,M_mainProducts,M_AnnualRevenue,M_EmployeerNum,checkcode
   
    M_Name=FormatSQL(trim(request("M_Name")))
    checkcode=trim(request.Form("checkcode"))
    M_Password=FormatSQL(trim(request("M_Password")))
    M_Question=FormatSQL(trim(request("M_Question")))
    M_Answer=FormatSQL(trim(request("M_Answer")))
    M_Company=FormatSQL(trim(request("M_Company")))
    M_Tel=FormatSQL(trim(request("M_Tel")))
    M_Fax=FormatSQL(trim(request("M_Fax")))
    M_Mobile=FormatSQL(trim(request("M_Mobile")))
    M_Address=FormatSQL(trim(request("M_Address")))
    M_Zip=FormatSQL(trim(request("M_Zip")))
    M_Contact=FormatSQL(trim(request("M_Contact")))
    prov=FormatSQL(trim(request("prov")))
    city=FormatSQL(trim(request("city")))
    M_Website=FormatSQL(trim(request("M_Website")))
    M_Email=FormatSQL((trim(request("M_Email"))))
    M_CompAttribute=FormatSQL(trim(request("M_CompAttribute")))
    M_TradeName=FormatSQL(trim(request("M_TradeName")))
    M_mainProducts=FormatSQL(trim(request("M_mainProducts")))
    M_AnnualRevenue=FormatSQL(trim(request("M_AnnualRevenue")))
    M_EmployeerNum=FormatSQL(trim(request("M_EmployeerNum")))
    M_Sex=FormatSQL(trim(request.Form("M_Sex")))
    M_zhiwei=FormatSQL(trim(request.Form("M_Zhiwei")))
   
    if M_Name="" then
        Response.Write "<Script Language=JavaScript>alert('\n提示您:\n\n用户名不能为空!');history.back(-1)</Script>"
        Response.end
    end if
   
    if checkcode="" then
        Response.Write "<Script Language=JavaScript>alert('\n提示您:\n\n验证码不能为空!');history.back(-1)</Script>"
        Response.end
    end if
        
    if checkcode<>Session("GetCode") then
        Response.Write "<Script Language=JavaScript>alert('\n提示您:\n\n验证码输入不正确!');history.back(-1)</Script>"
        Response.end
    end if
   
    if M_Company="" then
        Response.Write "<Script Language=JavaScript>alert('\n中国照明信息网提示您:\n\n公司名称不能为空!');history.back(-1)</Script>"
        Response.end
    end if
        
    dim rs,sql
    set rs=server.CreateObject("adodb.recordset")
    sql="select * from member_login where M_Name='"&M_Name&"'"
    rs.open sql,conn,3,3
    if rs.eof then
    rs.addnew
        rs("M_Name")=M_Name
        rs("M_Password")=md5(M_Password)
        rs("M_Question")=M_Question
        rs("M_Answer")=M_Answer
        rs("M_Company")=M_Company
        rs("M_Tel")=M_Tel
        rs("M_Fax")=M_Fax
        rs("M_Mobile")=M_Mobile
        rs("M_Address")=M_Address
        rs("M_Zip")=M_Zip
        rs("M_Contact")=M_Contact
        rs("M_LiveProv")=prov
        rs("M_LiveCity")=city
        rs("M_Website")=M_Website
        rs("M_Email")=M_Email
        rs("M_CompAttribute")=M_CompAttribute
        rs("M_TradeName")=M_TradeName
        rs("M_mainProducts")=M_mainProducts
        rs("M_AnnualRevenue")=M_AnnualRevenue
        rs("M_EmployeerNum")=M_EmployeerNum
        rs("M_Type")=M_Type
        rs("M_Sex")=M_Sex
        rs("M_zhiwei")=M_zhiwei
    rs.update
    rs.close
    set rs=nothing

'*************************************
'过滤特殊字符
'*************************************
Function FormatSQL(ChkStr)
    Dim Str:Str=ChkStr
    If IsNull(Str) Then
        FormatSQL = ""
        Exit Function
    End If
    Str = Replace(Str, "&", "&amp;")
    Str = Replace(Str,"'","'")
    Str = Replace(Str,"""",""")
    Dim re
    Set re=new RegExp
    re.IgnoreCase =True
    re.Global=True
    re.Pattern="(w)(here)"
    Str = re.replace(Str,"$1here")
    re.Pattern="(s)(elect)"
    Str = re.replace(Str,"$1elect")
    re.Pattern="(i)(nsert)"
    Str = re.replace(Str,"$1nsert")
    re.Pattern="(c)(reate)"
    Str = re.replace(Str,"$1reate")
    re.Pattern="(d)(rop)"
    Str = re.replace(Str,"$1rop")
    re.Pattern="(a)(lter)"
    Str = re.replace(Str,"$1lter")
    re.Pattern="(d)(elete)"
    Str = re.replace(Str,"$1elete")
    re.Pattern="(u)(pdate)"
    Str = re.replace(Str,"$1pdate")
    re.Pattern="(\s)(or)"
    Str = re.replace(Str,"$1or")
    Set re=Nothing
    FormatSQL=Str
End Function

%>
放到服务器后,后台数据库总是被写入很多条信息。甚至30秒内会有一次。
搜索更多相关主题的帖子: 数据库 
2010-11-15 17:20
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
得分:8 
加个验证码

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2010-11-16 08:15
kingfangdeng
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:15
专家分:31
注 册:2009-1-29
得分:0 
回复 2楼 hams
加了四个数字的验证码,结果还是一样。。怎么办?
2010-11-16 08:43
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:8 
请问楼主加的验证码是什么?纯文本还是图片?

最好是用图片格式的验证码,而且如果有必要的话把汉字写进去并加干扰符,即用肉眼才能识别其中的字符!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-11-16 11:30
gupiao175
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:40
帖 子:1787
专家分:7527
注 册:2007-6-27
得分:0 
另外楼主可以查看一下日志,或者看看写入的信息是什么,跟踪一下IP等等,把这些信息反馈一下!

Q:1428196631,百度:开发地 即可找到我,有事请留言!
2010-11-16 11:40
hams
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:18
帖 子:912
专家分:3670
注 册:2008-7-30
得分:0 
加个中文的验证码,数字字母的基本没用了。以前我装的动网论坛也是,一天注册几百个号,都是注册机注册的,加数字和字母的没起做用,加中文的之后就没有了。

俺不高手,俺也是来学习的。
俺的意见不一定就对,当你不认同时请点忽视按钮。
当走到十字路口不知该如何走时,可在论坛问下路,但你若希望别人能一路把你送到目的地,显然是不现实的,因为别人也有自己要走的路。
2010-11-16 17:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-325860-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.134386 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved