XSS-----跨站脚本攻击漏洞的概念和危害

感谢邱永华先生写出这么好的关于XSS的书!!
《XSS跨站脚本攻击剖析与防御》

一,基础概念

(1)概念

跨站脚本攻击(Cross Site Script)

  • 跨站脚本 ( Cross-Site Scriptin ) 是由于Web应用程序对用户的输入过滤不足而产生的.攻击者利用网站漏洞把恶意的脚本代码(通常包括HTML代码和客户端 Javascript脚本)注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采取 Cookie资料窃取、会话劫持、钓鱼欺骗等各种攻击.
  • ?能注入恶意的 HTML/JavaScript代码到用户浏览的网页上,从而达到劫持用户会话(等同于控制了web客户端)?
  • 为什么叫跨站?:在一开始,这种攻击是跨域的,所以叫做"跨站脚本".但是发展到今天,由于 JavaScript的强大功能以及网站前端应用的复杂化,是否跨域已经不再重要.但是由于历史原因,XSS这个名字却一直保留下来

在这里插入图片描述


(2)危害

  • 网络钓鱼,包括盗取各类用户账号;
  • 窃取用户cookies资料,从而获取用户隐私信息,或利用用户身份进一步对网站执行操作;
  • 劫持用户(浏览器)会话,从而执行任意操作,例如进行非法转账、强制发表日志、发送电子邮件等;
  • 强制弹出广告页面、刷流量等;
  • 网页挂马;进行恶意操作,例如任意篡改页面信息、删除文章等
  • 进行大量的客户端攻击,如DDoS攻击;
  • 获取客户端信息,例如用户的浏览历史、真实IP、开放端口等;
  • 控制受害者机器向其他网站发起攻击;
  • 结合其他漏洞,如CSRF漏洞,实施进一步作恶;
  • 提升用户权限,包括进一步渗透网站;
  • 传播跨站脚本蠕虫等;

(3)分类

3.1 反射型跨站脚本

反射型跨站脚本( Reflected Cross-site Scripting)也称作非持久型、参数型跨站脚本.

特点

  • 主要用于将恶意脚本附加到URL地址的参数中
  • 只在用户单击url时触发,而且只执行一次,非持久化
  • 常用来窃取客户端 Cookies或进行钓鱼欺骗.
  • 常常为通过引诱用户点击一个恶意链接来实施攻击的
  • 在这里插入图片描述
3.2 存储型跨站脚本

持久型XSS一般出现在网站的留言、评论、日志等交互处,恶意脚本被存储到客户端或者服务器的数据库中,当其他用户浏览该网页时,站点即从数据库中读取恶意用户存入的非法数据,然后显示在页面中,即在受害者主机上的浏览器执行恶意代码.

特点

  • 恶意代码被保存到目标网站的服务器中,每次用户访问时都会执行脚本代码,这种攻击具有较强的稳定性和持久性
  • 比反射型跨站脚本更具威胁性,并且可能影响到Web服务器自身的安全.
  • 一般出现在网站的留言、评论、日志等交互处,
  • 在这里插入图片描述

(4)发掘

  • 数据交互(即输入/输出)的地方最容易产生跨站脚本对网站的输入框、URL参数处进行测试
  • 来自COOKIE、POST表单、HTTP头的内容都可能会产生XSS.

二,XSS-filter绕过

(1) 什么时XSS-filter

为了防御跨站脚本攻击,会在Web应用中设计一个 XSS Filter,即跨站脚本过滤器用于分析用户提交的输入,并消除潜在的跨站脚本攻击、恶意的HIML或简单的HTML格式错误等。

  • XSS Filter一般是基于黑白名单的安全过滤策略
  • 将过滤功能封装在函数中,在处理用户输入时调用这个函数进行过滤
发布了49 篇原创文章 · 获赞 33 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Z_Grant/article/details/99960741