Sql server 被入侵的SQL Server数据库需要正则表达式

Sql server 被入侵的SQL Server数据库需要正则表达式,sql-server,database,Sql Server,Database,我的一个客户的数据库被黑客入侵了。我正在尝试重建数据。该站点正在运行带有SQL Server数据库的经典ASP。我相信我已经找到了黑客的弱点所在,并暂时删除了这个入口 数据库中的每个文本列都附加了一些html标记和内联脚本/js标记 以下是一个字段示例: all</title><script> document.write("<style>.aq21{position:absolute;clip:rect(436px,auto,auto,436px);

我的一个客户的数据库被黑客入侵了。我正在尝试重建数据。该站点正在运行带有SQL Server数据库的经典ASP。我相信我已经找到了黑客的弱点所在,并暂时删除了这个入口

数据库中的每个文本列都附加了一些html标记和内联脚本/js标记

以下是一个字段示例:

all</title><script>
    document.write("<style>.aq21{position:absolute;clip:rect(436px,auto,auto,436px);}</style>");
</script>
<div class=aq21>
    <a href=http://samedaypaydayloansonlineelqmt.com >same day payday loans online</a>
    <a href=http://samedaypaydayloan

感谢所有正则表达式的帮助和/或提示。

因为坏东西是以
开头的,因为坏东西是以
开头的,这就是我最后要做的(非常感谢@Bohemian):

我检查了每个表,并检查了哪个列受到影响。然后,我在每个列上运行以下脚本:

UPDATE [tablename]  
set columnname = substring(columnname, 1, charindex('/', columnname)-1)
where columnname like '%</%';
UPDATE[tablename]
set columnname=substring(columnname,1,charindex('/',columnname)-1)

其中columnname类似“%”这就是我最后要做的(非常感谢@Bohemian):

我检查了每个表,并检查了哪个列受到影响。然后,我在每个列上运行以下脚本:

UPDATE [tablename]  
set columnname = substring(columnname, 1, charindex('/', columnname)-1)
where columnname like '%</%';
UPDATE[tablename]
set columnname=substring(columnname,1,charindex('/',columnname)-1)

其中columnname(如“%1”)是否确实要使用regexp进行黑客攻击?;-)regexp的第一印象是从未知/不可预测中提取东西…所以无论如何,你想在这里删除一些不好的东西…哈哈,不,我不是想破解它。这已经是第二次了。首先,我使用上面的SQL修复了它,但这次,我注意到添加的所有垃圾邮件都是随机的。如果您有备份:)这次在invador攻击后有备份计划吗DI有备份,问题是数据库中的数据总是在更新。因此,在黑客攻击之前有一个备份是很好的,但是如果我恢复它,那么我可能会丢失新用户/客户、新产品、新订单等数据。。。。那就太糟糕了。无论如何,我确实设法修复了数据库。这是痛苦和缓慢的。我将把答案贴在这条评论下面。你确定你没有试图使用regexp进行黑客攻击吗?;-)regexp的第一印象是从未知/不可预测中提取东西…所以无论如何,你想在这里删除一些不好的东西…哈哈,不,我不是想破解它。这已经是第二次了。首先,我使用上面的SQL修复了它,但这次,我注意到添加的所有垃圾邮件都是随机的。如果您有备份:)这次在invador攻击后有备份计划吗DI有备份,问题是数据库中的数据总是在更新。因此,在黑客攻击之前有一个备份是很好的,但是如果我恢复它,那么我可能会丢失新用户/客户、新产品、新订单等数据。。。。那就太糟糕了。无论如何,我确实设法修复了数据库。这是痛苦和缓慢的。我会把答案贴在这条评论下面。我会试试看。让您知道它是如何运行的。@user1865092我刚刚注意到查询中的一个错误并修复了它。最好检查where子句是否为
类似“%1”。在我的例子中,上面的查询没有“编译”并留下
,我将尝试一下。让您知道它是如何运行的。@user1865092我刚刚注意到查询中的一个错误并修复了它。最好检查where子句是否为
类似“%1”。在我的例子中,上面的查询没有“编译”并留下

UPDATE [tablename]  
set columnname = substring(columnname, 1, charindex('/', columnname)-1)
where columnname like '%</%';