首页 | 邮件资讯 | 技术教程 | 解决方案 | 产品评测 | 邮件人才 | 邮件博客 | 邮件系统论坛 | 软件下载 | 邮件周刊 | 热点专题 | 工具
网络技术 | 操作系统 | 邮件系统 | 客户端 | 电子邮箱 | 反垃圾邮件 | 邮件安全 | 邮件营销 | 移动电邮 | 邮件软件下载 | 电子书下载

新闻资讯

邮件服务器 | 行业法规 | 网站公告 | 邮件趣闻 | 邮件人物 | 行业数据 | 反垃圾邮件 | 移动电邮 | IT业界 | 邮件客户端 | 电子邮箱 | 邮件安全 |
首页 > 新闻资讯 > 反垃圾邮件新闻动态 > Ajax让Sohu邮箱成为垃圾邮件的帮凶 > 正文

Ajax让Sohu邮箱成为垃圾邮件的帮凶

出处:it168 作者:空虚浪子心 时间:2007-6-10 1:03:49

 【IT168 专稿】今天,电子邮箱(E-mail)无疑已经成为大众通讯的工具;由于垃圾邮件泛滥,E-mail也成为信息安全的重大隐患之一。搜索到有效邮件地址成为垃圾邮件发送成功与否的决定要素。随着Ajax新兴技术在大型网站,如SOHU等得到应用,使得垃圾邮件制造者有机可乘。

    现在浏览器端以 JavaScript 为核心,基于各种 Web 标准(即:早已完成标准化的XHTML/CSS/DOM/XML/XSLT 和正在进行标准化的XMLHTTP)的技术正在加速整合,Ajax 就是这一系列技术的一个统称。其关键在于对浏览器端的JavaScript、DHTML和与服务器异步通信的组合。使用Ajax,可以使B/S(浏览器/服务器)模式的程序出现类似于C/S(客户机和服务器结构)的即时动态cool效果,实现不刷新页面,动态改变页面数据。

    目前很多大型的网站已经大范围使用了Ajax技术,比如我们经常看到的:google搜索时出来的搜索次数以及可能搜索到的下拉列表、在注册用户时输入用户名后,自动显示该用户是否可以被注册等等。然而这项技术在给用户带来便利的同时,若是考虑不周也会给带来一定的安全隐患。

    我们知道在开发程序用户登陆模块,处理用户登录失败时,出于安全方面考虑,不能返回给用户具体的“密码错误”或“用户名错误”,而要说:“用户名或密码错误”。(如图1)
 

(图1)
 
    既然这样,当然就不能在其他地方给用户返回,具体是用户名错误还是密码错误。但是有些网站采用Ajax技术之后,虽是给用户带来便捷为目的,却犯了这样的错误。据笔者经过一系列的测试发现,国内很多门型网站的邮件系统都存在这样的漏洞, SOHU、网易、21CN等都犯了上述错误。我们就以Sohu为例,看看垃圾邮件制作者是如何利用其email帐户暴露漏洞,得到有效邮件地址列表的。

    说到如何暴出邮件系统的email帐户,有些读者已经想到本文开头的例子“在注册用户时输入用户名后,自动显示该用户是否可以被注册”,说的就是这个例子。大家可以去sohu注册一个帐户:http://passport.sohu.com/web/signup.jsp,输入用户名,光标移到“请输入密码”的输入框,如果这个用户存在,马上后面会提示:(图2)
 

(图2)

     如果不存在,则提示:

(图3)      
  那么这两个信息是怎么来的呢?这里的Ajax处理流程是,JavaScript调用了相应的XMLHttpReques对象去访问一个web应用程序,然后获取返回结果后,直接把返回的结果输出到页面。

    部分源代码:

<script language="JavaScript">
…...
  var checkusername = false;
        function getMyHTML(serverPage, objID) {
   var Ajax = GetO();
      var obj = document.getElementById(objID);       Ajax.open("GET", serverPage, true);
      Ajax.onreadystatechange = function() {
//服务器返回状态为4(数据全部接收完成)并且http返回值为200(正常访问)
          if (Ajax.readyState == 4 &amp;& Ajax.status == 200) {
//把responseText(返回值替换层的html代码)
      obj.innerHTML = Ajax.responseText;
          }
      }
      Ajax.send(null);
  }
//创建XMLHttpReques对象
  function GetO(){
      var Ajax=false;
      try {
       Ajax = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
        try {
        Ajax = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (E) {
        Ajax = false;
       }
      }
      if (!Ajax && typeof XMLHttpRequest!='undefined') {
       Ajax = new XMLHttpRequest();
      }
      return Ajax;
  }
//检查用户名的方法
//在username输入框的onchange事件中调用了CheckUserName方法。
function CheckUserName(time){
 if(document.form1.username.value!=""){
getMyHTML("check.jsp?operator=checkusername&username="+document.form1.username.value+"&userdomain="+document.form1.userdomain.value+"&time="+time,"div_username");
 }
}
……
</script>

    可以看出,它访问了check.jsp页面验证用户名是否存在,把地址简化一下然后直接输入地址栏访问:

(图6)

    在必要的参数中,operator是用来判断调用不同验证方法的(该check页面提供了几种不同的验证,还有两次密码是否一致等等),userdomain是域名,sohu有几个不同域名的邮箱,username就是用户名了,而代码中的time应该是为了保证每次get提交的时候让浏览器不缓存而设的(没有细看,不重要)。所以,三个参数中主要是username发生变化,而服务器仅仅返回两种不同的结果。

    这样就很利于我们爆破用户名了,还记得我们怎么暴力破解邮箱密码么?挂字典,然后不断提交,判断服务器返回字符中有没有特定的字符,破解的速度取决于网速和返回字符的多少。正常的访问是返回一个页面,这样就有一堆垃圾数据。然而Ajax告诉我们,只要从服务器返回“0”和“1”就可以作出判断,所以这里返回的更少了,仅仅是:

(图7)

    为此,我们完全可以可以尝试使用其他更方便的语言写出工具,用于搜集有效邮件地址,速度一定很快。很多大网站都使用了这样的验证方法,就不一一例举了。我已经仿照Ajax使用JAVASCRIPT写个爆sohu用户名测试程序,相关代码在这里不在本文列出来了。有兴趣的朋友可以去论坛(http://www.ixpub.net/thread-654600-1-1.html)查看。

    我列举了大家可能经常想到的一些解决方案:
    1、判断request的来源地址。这样的方式不推荐,因为黑客可以更改http包头,从而绕过检测。
    2、采用验证码。也不推荐,请各位大大想一下用户的感受,刚输入用户名就让我输入注册码?这样Ajax意义何在?
    3、给一个IP在一个小时内,分配一些份额,比如500个(考虑到网吧等等多台机器一个IP,使用NAT的地方)。
    4、返回随机图片。这是我自己设想了一种解决方案,没有经过测试,下面详细说明。

    从给出的前三个方案看,都存在一个误区,认为Ajax应该获得服务器返回的两个有特殊意义的值(用户名可用或不可用),然后再判断,分两种情况在页面显示出来不同的信息,或者把两个不同的返回结果直接给用户,这样两种经典的处理模式,问题就集中在“两个不同结果的值”这里。现在我们从需求出发,分析用户希望看到的结果,无非就是想知道用户名是否可用,也就是说最终的结果显示在用户容易看到的地方,而且用户可以“看懂”信息,并可以加以区别(知道能不能使用这个用户名注册)。而黑客(或垃圾邮件搜集者)认为,只要用户能看懂,程序也应该可以看懂并预测出两种结果,所以就有了这种暴力获取邮箱名称的攻击。如果“人”能看懂而程序不能看懂呢?举个典型的例子,大家还记得QQ网站的那个令人讨厌的中文验证码吧?那个东西就是随机的,程序不能预测并且用户可以看懂。在这里也可以使用这项技术。直接在服务器随机把“可以注册”和“不能注册”四个字,做成随机图片,文字以随机的字体和随机的颜色出现在图片中随机的位置,然后返回给javascript,再由javascript把图片放到网页中,用户看到的是返回的是随机大小的图片,暴力获取邮箱名的攻击就立刻失去了效果。
 

(图8)

    是否该在这里也使用Ajax技术,无所谓对错,只要大网站一带头,这样做的就会大有人在,只是我们在模仿的时候也要仔细考虑。毕竟Ajax的实质其实是在用户“感觉不出来”的情况下访问了web应用程序,再把返回的结果交给用户,同时用户可以去做其他的事情,不用等待结果。既然Ajax可以访问,恶意用户当然也可以自己去访问,所以我们应该把处理Ajax请求的web应用程序像其他页面一样做好相应的防范措施,就可以有效的避免安全问题。

相关文章 热门文章
  • 企业邮箱与垃圾邮件的战争
  • 漫画网管员系列:病毒及垃圾邮件伤不起
  • 今年6月垃圾邮件总数400亿件 同比大降82.22%
  • Exchange Server 2003 用白名单脚本拦截垃圾邮件
  • 利用Exchange Server 2007的Edge服务器角色抵制垃圾邮件
  • 如何选择反垃圾邮件网关
  • 企业为什么需要反垃圾邮件网关
  • 企业应如何防范邮件服务器被盗用来发送垃圾邮件
  • 2011年垃圾邮件及钓鱼攻击趋势预测
  • 美国男子通过起诉垃圾邮件制造商获利百万
  • 电信行业反垃圾邮件需求分析及实践案例
  • 中国邮箱用户满意度普遍较低,防病毒反垃圾邮件体验最差
  • 垃圾邮件掺杂黄色信息 10岁男童受诱惑
  • 电邮发明人:垃圾邮件将伴随一生
  • 受邮件诱惑欲购春药追踪:出售邮址成热门生意
  • 中国互联网协会封杀127个邮件服务器
  • 垃圾邮件制造链解密:发送660万封仅需500元
  • 清除Internet“牛皮癣”
  • 全球80%垃圾邮件出自10人之手
  • 趋势科技领先网关和邮件服务器防病毒市场
  • 铭万智能网站“专打”垃圾邮件
  • 雅虎开放反垃圾邮件技术
  • 中国反垃圾邮件专业门户面世
  • 反垃圾邮件屏保使用两个中国网站倒闭
  • 自由广告区
     
    最新软件下载
  • SharePoint Server 2010 部署文档
  • Exchange 2010 RTM升级至SP1 教程
  • Exchange 2010 OWA下RBAC实现的组功能...
  • Lync Server 2010 Standard Edition 标..
  • Lync Server 2010 Enterprise Edition...
  • Forefront Endpoint Protection 2010 ...
  • Lync Server 2010 Edge 服务器部署文档
  • 《Exchange 2003专家指南》
  • Mastering Hyper-V Deployment
  • Windows Server 2008 R2 Hyper-V
  • Microsoft Lync Server 2010 Unleashed
  • Windows Server 2008 R2 Unleashed
  • 今日邮件技术文章
  • 腾讯,在创新中演绎互联网“进化论”
  • 华科人 张小龙 (中国第二代程序员 QQ...
  • 微软推出新功能 提高Hotmail密码安全性
  • 快压技巧分享:秒传邮件超大附件
  • 不容忽视的邮件营销数据分析过程中的算..
  • 国内手机邮箱的现状与未来发展——访尚..
  • 易观数据:2011Q2中国手机邮箱市场收入..
  • 穿越时空的爱恋 QQ邮箱音视频及贺卡邮件
  • Hotmail新功能:“我的朋友可能被黑了”
  • 入侵邻居网络发骚扰邮件 美国男子被重..
  • 网易邮箱莫子睿:《非你莫属》招聘多过..
  • 中国电信推广189邮箱绿色账单
  • 最新专题
  • 鸟哥的Linux私房菜之Mail服务器
  • Exchange Server 2010技术专题
  • Windows 7 技术专题
  • Sendmail 邮件系统配置
  • 组建Exchange 2003邮件系统
  • Windows Server 2008 专题
  • ORF 反垃圾邮件系统
  • Exchange Server 2007 专题
  • ISA Server 2006 教程专题
  • Windows Vista 技术专题
  • “黑莓”(BlackBerry)专题
  • Apache James 专题
  • 分类导航
    邮件新闻资讯:
    IT业界 | 邮件服务器 | 邮件趣闻 | 移动电邮
    电子邮箱 | 反垃圾邮件|邮件客户端|网络安全
    行业数据 | 邮件人物 | 网站公告 | 行业法规
    网络技术:
    邮件原理 | 网络协议 | 网络管理 | 传输介质
    线路接入 | 路由接口 | 邮件存储 | 华为3Com
    CISCO技术 | 网络与服务器硬件
    操作系统:
    Windows 9X | Linux&Uinx | Windows NT
    Windows Vista | FreeBSD | 其它操作系统
    邮件服务器:
    程序与开发 | Exchange | Qmail | Postfix
    Sendmail | MDaemon | Domino | Foxmail
    KerioMail | JavaMail | Winwebmail |James
    Merak&VisNetic | CMailServer | WinMail
    金笛邮件系统 | 其它 |
    反垃圾邮件:
    综述| 客户端反垃圾邮件|服务器端反垃圾邮件
    邮件客户端软件:
    Outlook | Foxmail | DreamMail| KooMail
    The bat | 雷鸟 | Eudora |Becky! |Pegasus
    IncrediMail |其它
    电子邮箱: 个人邮箱 | 企业邮箱 |Gmail
    移动电子邮件:服务器 | 客户端 | 技术前沿
    邮件网络安全:
    软件漏洞 | 安全知识 | 病毒公告 |防火墙
    攻防技术 | 病毒查杀| ISA | 数字签名
    邮件营销:
    Email营销 | 网络营销 | 营销技巧 |营销案例
    邮件人才:招聘 | 职场 | 培训 | 指南 | 职场
    解决方案:
    邮件系统|反垃圾邮件 |安全 |移动电邮 |招标
    产品评测:
    邮件系统 |反垃圾邮件 |邮箱 |安全 |客户端
    广告联系 | 合作联系 | 关于我们 | 联系我们 | 繁體中文
    版权所有:邮件技术资讯网©2003-2010 www.5dmail.net, All Rights Reserved
    www.5Dmail.net Web Team   粤ICP备05009143号