我的一个自定义开发的ASP.NET网站今天被黑了:"被天鹅黑了(请停止战争!...)"它使用的是ASP.NET和SQL Server 2005以及IIS 6.0和Windows 2003服务器.我没有使用Ajax,我认为我正在使用存储过程到处连接到数据库,所以我不认为它是SQL注入.我现在已经删除了文件夹的写入权限.
我怎样才能知道他们做了什么来破解网站以及如何防止它再次发生?
服务器是所有Windows更新的最新版本.
他们所做的是将6个文件(index.asp,index.html,index.htm,...)上传到网站的主目录.
我应该上传哪些日志文件?我从这个文件夹中有IIS的日志文件:c:\winnt\system32\LogFiles\W3SVC1
.我愿意向你们中的一些人展示,但不认为在互联网上发帖是件好事.有谁愿意看一看吗?
我已经在谷歌上搜索过,但我发现其他网站都被黑客攻击了 - 我还没有看到任何关于它的讨论.
我知道这与编程没有严格的关系,但这对程序员来说仍然是一件很重要的事情,很多程序员都被这样的黑客攻击.
看来,对您的网站的攻击是SWAN于2008年11月21日针对运行IIS 6.0的Windows 2003和Windows 2000盒进行的大规模污损的一部分.这里的其他人提出了很多建议.我只想补充说,无论何时你决定打开网站,请格式化框并从头开始重新安装.一旦盒子被破坏,它就完全无法被信任,无论你如何清理和净化它.
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命令.