XSS注入的原理与利用

XSS的简单介绍

  • 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户目的。
  • XSS危害:
    • 流量劫持
    • 获取用户cookie信息,盗取账号
    • 篡改、删除页面信息(钓鱼)
    • 配合CSRF攻击,实施进一步攻击
  • XSS分类
    • 反射型XSS:反射型XSS也被称为非持久性XSS,当用户访问一个带有XSS代码的HTML请求时,服务器端接收数据后处理,然后把带有XSS的数据发送到浏览器,浏览器解析这段带有XSS代码的数据后,就造成XSS漏洞,这个过程就像一次反射,所以叫反射型XSS。
    • 存储型XSS:存储型XSS又被称为持久性XSS,存储型XSS是最危险的一种跨站脚本漏洞,当攻击者提交一段 XSS代码后,被服务端接收并存储,当攻击者或用户再次访问某个页面时,这段XSS代码被程序读出来响应给浏览器,造成XSS跨站攻击,这是存储型XSS。
    • DOM型:不经过后端,DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。

实验场景一:钓鱼攻击

任务一:

测试管理界面是否存在XSS

小提示:提示错误url会返回username的值,闭合前后标签

在用户名框中输入">(闭合input标签)

XSS注入的原理与利用_第1张图片

结果,界面弹窗,证明该系统存在XSS注入

XSS注入的原理与利用_第2张图片

任务二:

上一步验证得出,该页面存在XSS漏洞。接下来针对该漏洞进行修改链接属性实现跳转到钓鱼界面

在username=后面加上">

XSS注入的原理与利用_第3张图片

点击忘记密码,进入了钓鱼网站

实验场景二:盗取cookie

任务一:

将js代码’"> 发表在文章管理系统的留言板上(该地址指向存放接收信息的服务器上的js路径)

XSS注入的原理与利用_第4张图片

任务二:

当后台管理员审核留言(或者其他用户查看到该留言)时,触发页面执行js脚本,将浏览器的cookie发送到接收服务器

XSS注入的原理与利用_第5张图片

收到cookie后,手动给浏览器添加对应cookie

XSS注入的原理与利用_第6张图片

实现伪造管理员(用户)登录

XSS注入的原理与利用_第7张图片

XSS漏洞防范

  • XSS的威力主要是取决于JavaScript能够实现的程度,XSS跨站脚本的形成原因是对输入输出没有严格过滤,导致在页面上可以执行JavaScript等客户端代码,所以只要将敏感字符过滤,就可以修复XSS跨站漏洞。
  • 修复和防范方法:
    • 三种类型的XSS漏洞都可以通过过滤或编码进行修复。
    • 反射型XSS和存储型XSS可以在服务端对用户输入输出的内容过滤和编码操作,将关键字进行过滤处理,关键符号进行编码处理,如将所有on事件,script等关键字进行过滤,将所有<,>,”,’,=等特殊符号进行实体化编码或url编码便可以修复。
    • DOM型XSS如有在服务端进行交互,也可参考上述的方法进行修复,如未和服务端进行交互,可在客户端使用JavaScript等客户端脚本语言进行编码和过滤处理。

你可能感兴趣的:(安全,信息安全)