« 淘宝开店之遭遇中评买家以艺术之名 »

[注意] Zblog的catalog.asp可被利用发起拒绝服务攻击

密陀僧发布 技术 2007年11月7日 次浏览
今天服务器又有异常,打开任务管理器,w3wp.exe进程占用cpu高达80%,在停用数个流量较大的网站的服务后终于发现了罪魁祸首:是我自己的博客。
我这个博客采用了zblog构架,数据库是自己由官方提供的access版本转成的mssql版本,没有做过查询优化,但比起access版本,执行效率已经高了许多。照理说,一个日志页面纯静态化的网站不可能占用系统资源达80%之多!为了更精确的找到存在问题的页面,我使用了一个小程序,这个程序是我在别处花了200大洋购买的,采用isapi技术嵌入iis,可以即时显示当前网站页面访问记录。通过这个软件,我们可以看到,catalog.asp这个文件执行效率特别低,在下图中可以看到这个页面经常发生假死情况。

大家注意一下202.105.139.74这个ip,在这个截图里,这个ip在不到1分钟内,造成了9次的页面假死,分析一下这是什么情况。
很明显,这是一次小规模的拒绝服务攻击,对方选择了catalog.asp这个页面做为入口。

catalog.asp源代码的内容部分的写法

If ArtList.ExportByMixed(Request.QueryString("page"),Request.QueryString("cate"),Request.QueryString("auth"),Request.QueryString("date"),Request.QueryString("tags"),ZC_DISPLAY_MODE_ALL) Then
  ArtList.Build
  Response.Write ArtList.html
End If


不得不说,zblog的代码写的非常优秀,优秀到堪称经典,但对于这种前台经常会用到的,且频繁查询数据库的,执行时间超过500ms的程序,zblog忘记了一件很关键的事--对同一用户一定时间内请求该页面的限制。

事实上,拒绝服务攻击一旦形成足够的势力,不是软件所能抵御的了的,但现在的情况是:人家一个IP就让我的服务器差点当掉。

这是什么样的一种境界……

于是赶紧放下手头的事,给catalog.asp加上一段代码

Dim ClientIP

ClientIP=Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ClientIP="" Or Isnull(ClientIP) Then ClientIP=Request.ServerVariables("REMOTE_ADDR")

If Session("ClientIP")=ClientIP And DateDiff("s",Session("ClientTime"),Now())<10 Then
  response.write "请不要持续刷新本页面" 
  response.end 
End If

Session("ClientIP")=ClientIP
Session("ClientTime")=Now()


上传后服务器压力大减,再在iis中将这个ip拒绝,OK,搞定。

所以从今天开始,打开我的catalog.asp页的时候10秒内不要频繁刷新哦,否则可能被我当成恶意访客挡在网站大门之外。

10分钟后的新发现
202.105.139.74这个ip据查询属于广东省深圳市 迅雷网络技术公司
汗流浃背:难道是迅雷的蜘蛛!!!

不管怎样,catalog.asp这个低效的多用途的页面应该加上一段禁止重复请求的代码。

附上这个神奇的IP的相关:

转载请注明:转载自漱风斋[ http://0e2.net/ ]

本文链接地址:http://0e2.net/post/913.html
  • 汗汗汗,一看到你写服务器方面的东西就得快点学习了,我也是自己的服务器感觉有时候也会出现这样的情况。马上去修改我的博客!
    密陀僧 于 2007-11-7 13:39:43 回复
    一起学一起学 yct5
  • 评论作者:xueshan——2007-11-7 13:39:43 回复该留言
  • 晕 和尚。。你以后多教教我。。我网站程序会点但是不精
    我学好了请你喝酒
    叫上贱人 一起玩PP去~~`
    密陀僧 于 2007-11-7 13:38:47 回复
    喝酒啊
    偶只喝白酒啊
    喔哈哈哈
  • 评论作者:fangzi——2007-11-7 13:38:47 回复该留言
  • 和尚,象我们这些小BLOG会不会也遇到这样的问题捏?
    密陀僧 于 2007-11-7 13:38:15 回复
    呵呵,最好也加上。
  • 评论作者:一剑——2007-11-7 13:38:15 回复该留言
  • 真强啊,佩服不已,整个处理过程也值得学习
  • 评论作者:birder——2007-11-14 10:43:38 回复该留言
  • 通过学习,我已经修改过了。谢谢
  • 评论作者:行者——2009-3-6 14:39:15 回复该留言

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Copyright 2009-3000 0e2.net. Some Rights Reserved.  Powered By Z-Blog.