我有一个运行SQL Server 2008 r2的数据库。我遇到了一些列值的问题
我注意到某些字段值会自动更新。
它们包含如下数据:
<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键,它们的值是从数据库中读取的所以没办法把这些肮脏的价值放进去。
答案 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>'