如何使 Subversion 存储库中被黑客攻击的文件再次可编辑?

如何使 Subversion 存储库中被黑客攻击的文件再次可编辑?

我正在调查网站中的一些被黑客攻击的文件,并且该网站在 Subversion 存储库中受到版本控制,但它没有显示这些文件已被修改。如何阻止 SVN 忽略文件以便我可以签入干净的副本?

我正在清理一个被黑客攻击的网站(相对较小,一些赌场链接被添加到页面标题中),并且该网站由 SVN 存储库的工作副本托管。 (是的,它确实有一个有效的 .htaccess 文件,可以阻止对文件.svn夹的访问。)有趣的是,被黑客攻击的文件具有 SVN 存储库中最后更新版本的修改日期,svn status显示它未经修改,svn log -v <hacked_file>显示没有超过最后一次的提交SVN 存储库中的更新版本svn diff <hacked_file>也显示该文件与存储库中最后修改的版本之间没有差异。我编写了一些脚本来检查每个版本之间的日志和差异,并且没有任何修改该文件。

但是,我注意到文件名确实出现在 中.svn/all-wcprops,如下所示:

K 25
svn:wc:ra_dav:version-url
V 48
/<repo>/!svn/ver/97/trunk/www.example.com/<hacked_file>
END
favicon.ico

当然,svn proplist -v <hacked_file>不会输出任何内容并svn propget 'svn:wc:ra_dav:version-url' <hacked_file>返回错误,指出它是“wcprop,因此客户端无法访问”。

我没有看到任何“svn:ignore”道具,也svn status --no-ignore没有显示被黑的文件。

我做了很多研究,但确实没有在 SVN 'wcprops' 或.svn/all-wcprops.删除all-wcprops文件安全吗?

除了删除工作副本并检查新副本(这在一个太大的存储库中,因此非常耗时,并且需要很长时间进行审查以确保一切正常)之外,还有任何其他可能性/选项/建议,特别是因为我不能相信没有可能丢失的修改文件)?这是否可能在主 SVN 存储库中进行了修改?

答案1

正如其他人指出的那样,无论如何,最好从 SVN 检查存储库的新副本,因为工作副本既不可信也不可靠。所以,我做了以下事情:

  • 签出了新的工作副本
  • 确认被黑客攻击的文件内容与存储库中显示的内容正确无误,没有恶意修改
  • 确认对被黑文件(以及中列出的其他文件)的修改在编辑时.svn/all-wcprops将显示为已修改svn status
  • 交换工作副本
  • 运行diff -qrx .svn <hacked_working_copy>/ <new_working_copy>/以确定在被黑客攻击的工作副本中实际更改/添加了哪些文件,但没有这样显示
  • 根据需要确认任何未提交文件的内容并手动复制
  • 存档并删除被黑的工作副本以供进一步调查/证据,然后将其删除

当然,我们正在采取进一步的行动和预防措施,但递归diff可以轻松识别有问题的文件。

相关内容