我的一个自定义开发的ASP.NET网站今天被黑了:“被天鹅黑了(请停止战争!...)” 它使用ASP.NET和SQL Server 2005以及IIS 6.0和Windows 2003服务器。 我没有使用Ajax,我认为我在连接到数据库的任何地方使用存储过程,所以我不认为它是SQL injection。 我现在已经删除了文件夹的写入权限。
我怎样才能知道他们为破解网站所做的工作以及如何防止网站再次发生?
服务器是所有Windows更新的最新版本。
他们所做的是将6个文件(index.asp,index.html,index.htm,...)上传到网站的主目录。
我应该上传哪些日志文件?
我有来自此文件夹的IIS日志文件:c:\winnt\system32\LogFiles\W3SVC1
。
我愿意向你们中的一些人展示,但不认为在互联网上发帖是件好事。有谁愿意看看它?
我已经在Google上搜索过,但我发现其他网站都被黑客攻击了 - 我还没有看到任何关于它的讨论。
我知道这与编程并不严格相关,但对于程序员来说这仍然是一件很重要的事情,并且许多程序员都被这样的黑客攻击。
答案 0 :(得分:13)
对您的网站的攻击似乎是SWAN于2008年11月21日针对运行IIS 6.0的Windows 2003和Windows 2000盒子进行的大规模污损的一部分。这里的其他人提出了很多建议。我只想补充说,无论何时你决定打开网站,请格式化框并从头开始重新安装。一旦盒子被破坏,它就完全无法被信任,无论你如何清理和净化它。
答案 1 :(得分:5)
IIS进程
检查您的ASPNET进程是否有权在服务器上写入文件。如果您需要该进程具有写入权限,请仅允许它们对特定文件夹执行此操作,并拒绝所有用户帐户对该文件夹的执行权限。
SQL注入
要查看查找SQL vunrabilities的人,请查看日志文件中的以下文本:“CAST(”。
你有什么地方可以在后面的代码中构建SQL来查询数据库吗?这些可能容易发生SQL注入攻击。通过替换以下代码,您将更安全。
Dim strSQL As String = "Select * FROM USERS Where name = '" & Response.Querystring("name") "'"
然后考虑如下的替代方案。
Dim strSQL As String = "Select * FROM USERS Where name = @name"
然后将相应的SQL参数添加到sql命令。
答案 2 :(得分:2)
嗯,对于初学者:
如果您确实拥有或不确定是否存在SQL注入问题,那么您可以在这里进一步询问,否则我会找一些安全专家来帮助您。
这确实是一个编程网站,所以除非您的问题与编程相关,否则它很可能会再次关闭。
答案 3 :(得分:2)
希望您已启用IIS日志文件,希望黑客不会删除它们。默认情况下,它们位于:c:\ winnt \ system32 \ LogFiles \ W3SVC1,通常以日期命名。
然后,弄清楚如何使用免费的日志解析器(来自Microsoft)可能会有所帮助。然后use this guide帮助您查看日志文件。你有防火墙,因为它的系统日志可能会有所帮助。
帮助您找到SQL注入问题的另一个不错的工具是here并下载HP的Scrawlr。
如果您对找到的内容有任何疑问,请回来询问。
答案 4 :(得分:1)
你可能想尝试使用像Metasploit这样的渗透工具包来发现任何明显漏洞。
另外,如果您的日志文件未被篡改,请发布。
答案 5 :(得分:0)
您应该做的第一件事是检查您的日志文件。您可以将它们粘贴到此处,我们会告诉您是否识别出攻击。
答案 6 :(得分:0)
设置Google Analytics并查看对您网站发出的所有请求。 如果您通过查询字符串处理SQL注入,则可以轻松找到它们执行的操作以及它们如何发现您的漏洞。
答案 7 :(得分:0)
FTP是否已开启?
我曾经有一个客户因为某些原因而打开了他们的FTP,黑客只是设置了一个机器人运行,尝试随机/普通用户/密码组合。那个黑客比你的更糟糕,因为它没有在网页上显示,但是试图安装一个ActiveX ......
因此,您可以检查您的FTP日志。