我认为这是 SQL 注入攻击。
SQL 注入攻击的全部意义在于他们找到了执行任意 SQL 命令的单一弱点。如果您接受来自网络的输入,无论是用于插入/更新/删除/选择查询,并且您不使用参数化查询,那么攻击者可以访问您数据库中的任何表并按照他们的意愿进行操作。
如果没有更多详细信息,很难准确说明它是如何工作的——它似乎是一个脚本,因为 Internet 上有很多具有相同 URL 的页面,并且它们都使用 .asp 作为后缀。
对我来说记住 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>'