我的数据库受到攻击

时间:2015-09-01 08:21:15

标签: database sql-server-2008-r2 server-side-attacks

我有一个运行SQL Server 2008 r2的数据库。我遇到了一些列值的问题

我注意到某些字段值会自动更新。

它们包含如下数据:

  • 原始价值 12345
  • 脏值 12345 <div style="display:none">why do husband cheat <a href="http://blog.businessdating.com/page/How-women-cheat">wifes that cheat</a> why do men cheat on their wife</div>

我不知道这怎么会发生什么样的攻击呢?知道在我的应用程序代码中,这是一个ASP.Net WebForms应用程序,我没有更新语句,并且一些受感染的列不是从客户端输入读取的,但它们是foriegn键,它们的值是从数据库中读取的所以没办法把这些肮脏的价值放进去。

1 个答案:

答案 0 :(得分:2)

我认为这是一次SQL注入攻击。

SQL注入攻击的全部意义在于它们发现执行任意SQL命令的单一弱点。如果您接受来自Web的输入,无论是插入/更新/删除/选择查询,还是不使用参数化查询,攻击者都可以访问数据库中的任何表并根据需要进行操作。

如果没有更多详细信息,很难准确说明它是如何工作的 - 它似乎是一个脚本,因为互联网上有很多页面使用相同的URL,并且它们都使用.asp作为后缀。< / p>

我记得ASP语法已经太久了,但我会给它一个旋转。我也没有打扰HTML编码,以使其更清晰。

例如,假设您有一个页面,您可以在其中找到有关产品的信息:

http://myapp.com/customers.asp?productID=1

当该页面命中您的服务器时,您构造一个SQL字符串:

Select * from products where productID = & request.productID

然后执行该操作,在页面上显示结果。

在正常情况下,您的SQL请求为Select * from products where productID = 1

攻击者可能按如下方式操纵URL:

http://myapp.com/customers.asp?productID=1 union sp_help

这意味着你执行

Select * from products where productID = 1
union
sp_help

并在结果网页上显示结果。获取sp_help结果以匹配产品数据中的列需要一些试验和错误,但最终攻击者会获得完整的数据库模式。

如果攻击者想要操纵数据,他们可能会做类似

的事情
http://myapp.com/customers.asp?productID=1; update lookupTable set description = description  + '<div style="display:none">why do husband cheat <a href="http://blog.businessdating.com/page/How-women-cheat">wifes that cheat</a> why do men cheat on their wife</div>'