我有几个旧网站刚刚被我的托管公司脱机,显然是由于SQL注入攻击。我查看了我的数据库,是的,我被黑了。 * *糟糕
我的数据库已经填充了附加到我的原始数据的脚本标记(至少我的原始数据仍然存在,所以这很好)。
我一直在查看我的旧代码并且看到了一些未经过处理的输入位置,所以很明显我会仔细检查并检查更多内容。 我还下载了黑客网站,将其与我多年前上传的版本(使用某种文件检查程序)进行比较,这应该让我看看他们是否曾尝试添加后门。
我的问题是......
1)有没有办法可以从数据库中删除所有附加的脚本标签,因为它们完全一样?
2)还有什么我应该注意或忽略的吗?
我想指出的是,这些旧网站上没有存储任何敏感材料,所以这没什么大不了的,我只想让它们重新启动并再次运行。
我正在汲取我的安全知识,并将很快删除主机上的所有文件,更改所有密码并上传改进的(并且不那么黑客友好的)网站。
感谢...
答案 0 :(得分:2)
具体回答您的脚本标记替换问题,除了作为手动任务之外,我看不到任何其他内容。
我确定你已经考虑过了这个问题,但是对一个领域的一个简单的替换声明应该把这些东西拿出来:
update MyTable
set field = replace(field, 'unwanted', '')
where field like '%unwanted%'
如果有很多表和字段,那么我相信你可以使用SQl数据字典来实现某种自动化。如下所示:
DECLARE @ColName varchar(255), @TableName varchar(255), @sSQL varchar(1000)
DECLARE colcur CURSOR for
SELECT name, object_name(id)
FROM syscolumns
WHERE name = 'Moniker'
OPEN ColCur
FETCH NEXT FROM ColCur
INTO @ColName, @TableName
WHILE @@FETCH_STATUS = 0
BEGIN
Set @sSQL = 'update ' + @TableName + ' set ' + @ColName + ' = replace(' + @ColName + ', ''unwanted'', '''') where ' + @ColName + ' like ''%unwanted%'''
exec(@sSQL)
select @ColName, @TableName
FETCH NEXT FROM ColCur
INTO @ColName, @TableName
END
CLOSE ColCur
DEALLOCATE ColCur
答案 1 :(得分:2)
我想这些是理想情况下的一些步骤:
正如您所提到的,黑客页面上没有存储敏感材料,这可能意味着您可以跳过第6步和第7步。
答案 2 :(得分:1)
如果你有备份,这是使用备份的理想时间,因为你不确切知道你的数据是如何被破坏的。如果您没有备份,那么这应该是将来使用备份并保护自己免受此类攻击的教训。此外,如果您没有备份,则应创建一个清理数据的算法,但这并不能保证不会留下任何垃圾。
答案 3 :(得分:0)
然后,从最近的备份中恢复数据。