База данных моего сайта взломана - PullRequest
2 голосов
/ 01 октября 2010

Мой сайт был атакован каким-то вредоносным скриптом / скриптом заголовка src = http: // google-stats46.info/ur.php. Этот сценарий автоматически добавляется к любому столбцу (-ам) какой-либо таблицы. Я удалил этот скрипт. Но через несколько часов он снова появился в некоторых таблицах. Но на этот раз это / title script src = http: // google-stats45.info/ur.php Это происходит с недели. Я не знаю, как это возможно. Пожалуйста, дайте мне решение

Ответы [ 5 ]

2 голосов
/ 01 октября 2010

Проверьте свой веб-сайт (или любую другую конечную точку, подключенную к Интернету, которая использует эту БД) на предмет SQL-инъекций атак.

2 голосов
/ 01 октября 2010

изменить имя пользователя и пароль для подключения к базе данных.может быть, это какой-то простой пользователь и пароль, и сценарий их основал.

1 голос
/ 01 октября 2010

Найдите в своих журналах IIS термин CAST(, чтобы попытаться найти попытки внедрения SQL.

Кто-то еще с той же проблемой.

0 голосов
/ 07 октября 2010

Если вы видите в своих таблицах javascript, то это классическая SQL-инъекция. Вам необходимо обновить ASP-страницы, чтобы проверить вводимые данные из строк запросов, прежде чем добавлять в команду SQL.

Что касается текущего состояния БД, вы можете восстановить резервную копию или написать собственные сценарии, чтобы удалить вставленный JavaScript из ваших таблиц.

Я покопался в каком-то старом коде и нашел функцию (ниже), которую я написал для старого сайта, который несколько лет назад подвергся массированной атаке с помощью инъекций. Я просто использовал эту функцию для проверки всех значений из строки запроса, которые не были проверены.

Очевидно, что есть гораздо более безопасный, постоянный и "правильный" способ исправить это, но это было быстро, легко и остановило все атаки.

Пример

Текущий SQL "SELECT lname, fname from t_users, где userid =" & request ("userid")

Изменить на "SELECT lname, fname из t_users, где userid =" & V (request ("userid"), "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
0 голосов
/ 01 октября 2010

сделайте это , если сценарий снова там, затем обновите вопрос, может быть, это просто простая проблема пользователя / пароля, которую можно решить таким образом ... если нет, может быть, URL вашеговеб-сайт, может быть, здесь кто-то может искать дыру в безопасности :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...