XSS跨站脚本攻击——及修复防御

XSS漏洞相关基础知识-浏览器工作机制

  • 浏览器常见的有IE、Firefox、Chrome等,这些浏览器在性能和效率上也许有较大差别,但是它们基本的工作机制是相同的。
  • 浏览器主要是解析渲染Web中间件响应的HTML、JavaScript、CSS等资源。

XSS漏洞相关基础知识-HTML

  • HTML 是用来描述网页的一种语言。Web 浏览器的作用是读取 。
  • HTML 文档,并以网页的形式显示出它们。浏览器不会显示 。
  • HTML 标签,而是使用标签来解释页面的内容。

XSS漏洞相关基础知识-JavaScript

  • JavaScript 是一种轻量级的编程语言。
  • JavaScript 代码可插入 HTML 页面,并由所有的现代浏览器执行。
  • JavaScript 能够改变任意 HTML 元素的大多数属性。
  • JavaScript 往往用来改善HTML的展现,从而带给用户更好的体验。

XSS漏洞原理

  • XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是攻击者往Web页面或者URL里插入恶意JavaScript脚本代码,如果Web应用程序对于用户输入的内容没有过滤,那么当正常用户浏览该网页的时候,嵌入在Web页面里的恶意JavaScript脚本代码会被执行,从而达到恶意攻击正常用户的目的。
  • Xss   攻击的代码是   javascript代码。
  • Xss 一般情况植入到url或者web中。
  • Xss的攻击目标是普通用户(不是服务器)。
  • 跨站脚本攻击—XSS(Cross Site Script),是指攻击者通过在Web页面中写入恶意脚本,造成用户在浏览页面时,获取控制用户浏览器进行操作的攻击方式。

XSS漏洞出现的两个条件

  • 1、可以控制的输入点
  • 2、输入能返回到前端页面上被浏览器当成脚本语言解释执行

XSS漏洞危害

  • Cookie窃取
  • 持久型Cooke以文本形式存储在硬盘上,由浏览器存取
  • 临时型Cookie也称会话Cookie,存储在内存中,当前浏览器关闭后会消失
  • cookie是Web应用程序用来识别用户的凭证,很多情况下是唯一的凭证。当用户第一次登录网站时,网站会给用户发放一个唯一的cookie,用户再次登录网站时,凭借该cookie用户就不需要再次登录。
  • 通过JavaScript,浏览器可以操作用户的cookie。
  • 在浏览器地址栏输入javascript:alert (document. cookie)就可以查看某个网站颁发的Cookie
  • Session和Cookie最大的区别在于:
  • Session是保存在服务端的内存里面,而Cookie保存与浏览器或客户端的文件里面。
  • 会话劫持
  • 如某 CMS 的留言系统存在一个存储型 XSS 漏洞,攻击者把 XSS 代码写进留言信息中,当管理员登录后台并查看是,便会触发 XSS 漏洞,由于 XSS 是在后台触发的,所以攻击的对象是管理员,通过注入 JavaScript 代码,攻击者便可以劫持管理员会话执行某些操作,从而达到提升权限的目的。
  • 比如,攻击者想利用 XSS 添加一个管理员账号,只需要通过之前的代码审计或其他方式,截取到添加管理员账号时的 HTTP 请求信息,然后使用 XMLHTTP 对象在后台发送一个 HTTP 请求即可,由于请求带上了被攻击者的 Cookies,并一同发送到服务端,即可实现添加一个管理员账户的操作。
  • 键盘记录
  •  
  • 客户端信息探查
  •  
  • XSS蠕虫
  • 通过精心构造的 XSS 代码,可以实现非法转账、篡改信息、删除文章、自我复制等诸多功能。
  • 网页挂马
  • 一般都是通过篡改网页的方式来实现的,如在 XSS 中使用