码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 跨站脚本攻击XSS介绍、原理、分类、利用、防御


    一、XSS介绍

    XSS(Cross Site Scripting)跨站脚本攻击,恶意攻击者插入恶意Html或Script等脚本代码到用户浏览的web网页上,当用户浏览该页之时,因WEB应用程序对用户输入过滤不足,嵌入其中Web里面的恶意脚本代码会被执行,从而达到恶意攻击用户的目的。

    由于HTML代码和客户端JavaScript脚本能在受害者主机上的浏览器任意执行,这样等同于完全控制了WEB客户端的逻辑,在这个基础上,黑客可以轻易地发起Cookie窃取,会话劫持,钓鱼欺骗等各种各样的攻击。

    二、XSS漏洞原理

    形成XSS的主要原因:程序对输入和输出的控制不够严格,导致恶意脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。

    三、XSS分类

    1、反射型XSS

    反射型XSS:非持久性XSS,这种攻击往往具有一次性。攻击者将具有攻击性的链接等触发性脚本发送给用户,欺骗用户点击等操作触发XSS代码并访问了服务器,服务器接受该用户的请求并进行处理,然后把带有XSS的代码发送给用户,用户浏览器解析执行代码,触发XSS漏洞。

    在这里插入图片描述

    常见场景

    网站的搜索栏、用户登录入口、输入表单等地方,常用来窃取客户端cookies或钓鱼欺骗。

    2、存储型XSS

    存储型XSS:持久化XSS,比反射型XSS更具有威胁性。攻击脚本将被永久的存放在目标服务器的数据库或文件中。这是利用起来最方便的跨站类型,跨站代码存储于服务端(比如数据库中)容易造成蠕虫,盗窃cookie。

    在这里插入图片描述

    常见场景

    评论区、留言区、个人信息、订单信息 、站内信、网页即时通讯、私信、意见反馈、搜索框、当前目录、图片属性、白盒测试(代码审计)…

    3、DOM型XSS

    基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM( Document object model),使用DOM能够使程序和脚本能够动态访问和更新文档的内容、结构和样式(例如:html的内容,结构和样式)。

    并且DOM型XSS是基于JS上的,并不需要与服务器进行交互。其通过修改页面DOM节点数据信息而形成的XSS跨站脚本攻击。不同于反射型XSS和存储型XSS,基于DOM的XSS跨站脚本攻击往往需要针对具体的
    JavaScript DOM代码进行分析,并根据实际情况进行XSS跨站脚本攻击的利用。

    四、漏洞利用

    在这里插入图片描述

    盗取cookie:
    页面跳转:
    盗取cookie并请求服务器:

    img标签
    
    
    
    `
    
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    a标签
    
    aa
    aa
    aa
    
    aa
    aa
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    input标签
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    form标签
    
    alert('xss')">
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    iframe标签
    
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    svg标签
    
    
    ">%0a 
    
    • 1
    • 2
    • 3
    • 4
    还有很多标签:例如:标签,标签,标签...
    
    • 1

    五、XSS的防御

    形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致恶意脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。
    因此在XSS漏洞的防范上,一般会采用输入过滤和输出转义的方式。

    输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;

    输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

    防御方法有很多种,具体问题,具体分析!

    防御参考: -
    XSS(跨站脚本攻击)漏洞解决方案
    XSS(跨站脚本)漏洞详解之XSS跨站脚本攻击漏洞的解决
    xss(跨站脚本攻击)漏洞原理实战

  • 相关阅读:
    算法基础学习|前缀和差分
    第二章:初始Ajax
    P01 Swing综述
    QT:debug日志—打不开头文件以及qDebug和Q_CLASSINFO的使用
    使用@Constraint和自定义注解校验接口入参
    前端js调试如何复制console.log打印的对象或数组
    萌新源api管理系统更新教程
    OFDM基本原理
    【Spring】yaml自定义参数添加提示功能
    阿里国际站(直通车)
  • 原文地址:https://blog.csdn.net/qq_37432174/article/details/127990321
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号