我的网站数据库被黑了

时间:2010-10-01 05:45:49

标签: sql-server-2005 asp-classic

我的网站遭到一些恶意脚本/标题脚本src = http:// google-stats46.info/ur.php的攻击。此脚本会自动附加到某个表的任何列。我删除了这个脚本。但几个小时后,它又重新出现在一些表格中。但这一次是/ title script src = http:// google-stats45.info/ur.php 这已经发生一周了。我不知道怎么可能。 请给我解决方案

5 个答案:

答案 0 :(得分:2)

更改数据库连接的用户名并传递。也许这是一个简单的用户和传递,并且脚本已经建立了它们。

答案 1 :(得分:2)

检查您的网站(或连接到使用此数据库的互联网的任何其他端点)进行SQL Injection攻击。

答案 2 :(得分:1)

在IIS日志中查找术语CAST(以尝试查找SQL注入尝试。

Someone else with the same problem.

答案 3 :(得分:0)

do this,如果脚本再次存在,那么更新问题,可能只是一个简单的用户/密码问题,可以通过这种方式解决...如果没有,也许你的网站的URL可能在这里有人可以寻找安全漏洞:)

答案 4 :(得分:0)

如果您在表中看到javascript,那么它就是Classic SQL注入攻击。在附加到SQL命令之前,您需要更新ASP页面以验证来自查询字符串的输入。

对于数据库的当前状态,您可以还原到备份或编写自定义脚本以清除表中插入的javascript。

我挖了一些旧代码并找到了一个函数(下面),我写了一个旧网站,几年前被一次注入攻击大量击中。我刚刚使用此函数来验证查询字符串中未验证的所有值。

显然有更安全,永久和“正确”的方法来解决这个问题,但这很快,很容易,并且可以阻止所有攻击。

示例

当前SQL“SELECT lname,来自t_users的fname,其中userid =”&请求( “用户id”)

更改为“SELECT lname,fname from t_users where userid =”& V(请求( “用户id”), “INT”)

function V(x,t)
' ====================================================================
' Function will validate the data type of the passed string.
' EXAMPLES:
' Date -            v([STRING],"Date")
' Integer           v([STRING],"Int")
' Email             v([STRING],"Email")
' String Length     v([STRING],25)
' ====================================================================
bFail = 0
SELECT CASE ucase(t)
CASE "DATE" ' Date
    If not isDate(x) then bFail = 1
CASE "INT" ' Integer
    If not isNumeric(x) then bFail = 1
CASE "EMAIL" ' Email Address
    sString = Trim(x)
    nIndex = InStr(1, sString, "@")
    nDotIndex = InStrRev(sString, "." )
    If nIndex < 2 Then bFail = 1
    If nDotIndex < nIndex + 1 Then  bFail = 1
    If InStr( nIndex + 1, sString, "@" ) > nIndex Then bFail = 1
    If nDotIndex > Len( sString ) - 2 Then bFail = 1
    If len(x) > 100 then bFail = 1
CASE ELSE
    if isnumeric(t) then ' Pass a integer to test for len
        ' Test for length
        If len(x) > t then bFail = 1
    end if
END SELECT
if bFail then
          response.redirect("/error.asp") ' Sent to Error page
else
          v=x   ' PASS
end if
end function