pikache靶场通关——XSS漏洞

news2024/9/27 17:25:41

文章目录

  • 前言
  • 环境
  • 第一关、反射型xss(get)
    • Step.1、输入特殊字符测试
    • Step.2、输入js语句
    • Step.3、在URL中输入js语句
  • 第二关、反射性xss(post)
    • Step.1、输入获取cookie的js语句
  • 第三关、存储型xss
    • Step.1、输入获取cookie的js语句
    • Step.2、查看页面源码
    • Step.3、感受危害性
  • 第四关、DOM型XSS
    • Step.1、输入js语句测试
    • Step.2、查看页面源码
    • Step.3、再次输入js代码编写的payload
  • 第五关、DOM型XSS-S
    • Step.1、输入js语句测试
    • Step.2、查看页面源码
    • Step.3、输入编写好的payload
  • 第六关、XSS盲打
    • Step.1、输入payload测试
    • Step.2、按提示查看后台
  • 第七关、XSS之过滤
    • Step.1、输入payload测试
    • Step.2、分析
    • Step.3、绕过过滤
  • 第八关、XSS之htmlspecialchars
    • Step.1、输入payload测试
    • Step.2、改造payload再次输入
  • 第九关、XSS之href输出
    • Step.1、输入payload测试
    • Step.2、输入js函数格式的payload
  • 第十关、XSS之js输出
    • Step.1、输入payload测试
    • Step.2、输入构造好的payload


前言

Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:

  1. 反射性XSS;
  2. 存储型XSS;
  3. DOM型XSS;

XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。

形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。

在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:

  • 输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
  • 输出转义:根据输出点的位置对输出到前端的内容进行适当转义;

在这里插入图片描述
靶场一共有10关,现我们就开始通关吧。


环境

靶场安装机器:Windows10(192.168.1.107)
渗透机器:Windows10(192.168.1.108)


第一关、反射型xss(get)

在这里插入图片描述
一个平平无奇的输入框

Step.1、输入特殊字符测试

遇到输入框,作为渗透测试人员,第一反应就是输入特殊字符看看,我这里就先输入一个双引号"瞧瞧。
在这里插入图片描述
能输出,看来特殊字符做了过滤

Step.2、输入js语句

往输入框中输入<script>alert(1)</script>看看
在这里插入图片描述

发现无法完全输入,查看页面源码,这输入框做了长度限制

在这里插入图片描述

把长度限制改成100,再次输入js语句看看

在这里插入图片描述
在这里插入图片描述
能成功弹出,说明存在XSS反射型漏洞

Step.3、在URL中输入js语句

在这里插入图片描述

回车,发现也能成功弹出
在这里插入图片描述
到此,第一关通关


第二关、反射性xss(post)

在这里插入图片描述
登录它吧,pikachu靶场的默认账号密码是:admin/123456,如果你想用渗透手法获取账号密码,也可是使用上一个挑战 —— 暴力破解的手法来获取,这里节省时间,就直接登录了。

在这里插入图片描述
登录后发现,也是一个平平无奇的输入表单

Step.1、输入获取cookie的js语句

输入:<script>alert(document.cookie)</script>
在这里插入图片描述
好了,弹出了cookie信息,说明这里的确存在XSS漏洞,第二关通关


第三关、存储型xss

在这里插入图片描述
平平无奇的一个留言框

Step.1、输入获取cookie的js语句

输入:<script>alert(document.cookie)</script>
在这里插入图片描述
能顺利弹出cookie信息

Step.2、查看页面源码

在这里插入图片描述
直接在留言列表里面能看到我自己输入的payload

Step.3、感受危害性

使用另一个浏览器登录靶场,点开对应页面
在这里插入图片描述
我都还没有进入页面就先弹出我的cookie了,这说明这句payload已经存进了数据库。设想一下,一个正常网站,每次进去都会弹出十几次的弹框,这回让人非常不方便。

打开数据库查看,这一句payload的确已经存进来了。
在这里插入图片描述
第三关通关


第四关、DOM型XSS

在这里插入图片描述
同样也是一个平平无奇的表单。

Step.1、输入js语句测试

输入:<script>alert(document.cookie)</script>
在这里插入图片描述
发现没反应。

Step.2、查看页面源码

在这里插入图片描述
发现被包裹在a标签里面了,难怪不起作用,这稍微构造以下payload吧

Step.3、再次输入js代码编写的payload

输入:'></a><script>alert(document.cookie)</script><a href='
在这里插入图片描述
输入发现没有弹窗,说明这个payload不行

再尝试构造另外一个payload:#' onclick="alert(document.cookie)">
在这里插入图片描述

点击,发现有弹窗了
在这里插入图片描述
第四关通关。


第五关、DOM型XSS-S

在这里插入图片描述
如图,很哀伤的一个表单

Step.1、输入js语句测试

输入:<script>alert(document.cookie)</script>
在这里插入图片描述
没啥反应,这时候得查看页面源码

Step.2、查看页面源码

在这里插入图片描述
这里有个onclick事件,点开它看看
在这里插入图片描述
好了,看到我们输入的内容到这里来了,这直接按照第四关得步骤来吧

Step.3、输入编写好的payload

payload:#' onclick="alert(document.cookie)">
在这里插入图片描述
第五关通关。


第六关、XSS盲打

在这里插入图片描述
有点意思的一个页面

Step.1、输入payload测试

随便输入点payload吧
在这里插入图片描述
提交后什么都没有发生,查看一下页面源码
在这里插入图片描述
同样什么都没有。发现我输入得东西被post表单提交了,想不到,只能看个提示了。
在这里插入图片描述
原来这里要登录后台查看

Step.2、按提示查看后台

在这里插入图片描述
账号密码是:admin/123456,点击登录

在这里插入图片描述
神奇得事情发生了,一登陆,我刚才输入的2个payload都弹出了。
好家伙,原来这就叫盲打,第六关通关。


第七关、XSS之过滤

在这里插入图片描述
一股哲学气息扑面而来。

Step.1、输入payload测试

现在看到这种,第一反应就是扔个payload进去瞧瞧了
<script>alert(document.cookie)</script>
在这里插入图片描述

好的,没反应,再来看看页面源码
在这里插入图片描述
也没看出啥,但是能发现是使用get表单的方式提交,来,抬头看看url
在这里插入图片描述
就在这里了。

Step.2、分析

结合URL和返回结果,只输出了一个 “>”字符,其他的内容被过滤了,但我们完全不清楚它的过滤规则是什么,没办法,就尝试一下把URL中的payload中的部分字母变成大写吧。

Step.3、绕过过滤

把URL中的payload部分字母变成大写
在这里插入图片描述
在这里插入图片描述
显示出来了!这不立即改写一下payload

改写后的payload:'</p><script>alert(document.cookie)</script><p>'
输入后再次提交
在这里插入图片描述
这……看来得想想办法。

换个标签试一试吧,就尝试一下用a标签

输入的payload:<a herf="#" onclick="alert(document.cookie)">
在这里插入图片描述
好了,点击后面变色的内容能够直接弹出了,看来过滤规则是针对script标签的,第七关通关。


第八关、XSS之htmlspecialchars

在这里插入图片描述
这表单挺臭美的

Step.1、输入payload测试

老规矩,输一个payload进去试一试
在这里插入图片描述

查看页面源码
在这里插入图片描述
看到这情况,尝试改造payload,把a标签给闭合掉

Step.2、改造payload再次输入

输入的payload:#' onclick='alert(document.cookie)'>
点击查看
在这里插入图片描述
好了,成功弹出,第八关通关。


第九关、XSS之href输出

在这里插入图片描述
这次反而挺平平无奇

Step.1、输入payload测试

输入payload,发现没反应再查看页面源码
在这里插入图片描述

在这里插入图片描述
发现这里<>被编码了,这样子哪怕是把a标签给闭合也不可能实现,那就只好使用函数了,因为JavaScript里面的a标签中的href属性是可以直接使用函数的。

Step.2、输入js函数格式的payload

输入payload:javascript:alert(document.cookie)
在这里插入图片描述
点击
在这里插入图片描述
好了成功输出。第九关通关。


第十关、XSS之js输出

在这里插入图片描述
回到原初,又是平平无奇

Step.1、输入payload测试

输入payload: <script>alert(document.cookie)</script>
发现下面多了一串乱七八糟的东西
在这里插入图片描述

查看页面源码
在这里插入图片描述
发现我输入的payload到了script标签上来了,顺便还把script标签给闭合了,所以才会出现这一串乱七八糟的东西。

Step.2、输入构造好的payload

接下来就简单了,直接重新构造payload
新的payload:';alert("cookie值是:"+document.cookie); //
在这里插入图片描述
这里cookie值是空获取不到,但弹窗了,第十关通关。


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

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

相关文章

1 君正IPC芯片方案介绍

专栏特色 1、所有源码严格遵守统一的编码规范。 2、手把手教学&#xff0c;让你从零开始&#xff0c;深入了解君正方案IPC库的方方面面。 3、纯C接口&#xff0c;接口封装严谨&#xff0c;接口功能丰富&#xff0c;应用层调用简单便捷。 4、近二十年行业经验和技术积累打造的高…

风电光伏iEEE33节点蒙特卡洛概率潮流计算

基于蒙特卡洛法的概率潮流 以IEEE33节点的电网为研究对象 建立了光伏和风电的概率出力模型 采用蒙特卡洛法进行随机抽样 之后基于抽样序列进行概率潮流计算 最后得到电网的电压概率出力曲线

使用数字钥匙技术的车辆有多安全?

首发微信公众号网络研究院&#xff0c;关注获取更多。 虽然有几种不同的方法来实现汽车使用的数字钥匙&#xff0c;但安全的数字钥匙标准应该利用近场通信 (NFC) 和超宽带 (UWB) 结合蓝牙低功耗 (BLE) 来访问车辆&#xff0c;开始引擎&#xff0c;固定车辆&#xff0c;或授权各…

云原生之使用Docker部署Dashy个人导航页

云原生之使用Docker部署Dashy个人导航页 一、Dashy介绍1.1 Dashy简介1.2 Dashy特点 二、本地环境介绍2.1 本地环境规划2.2 本次实践介绍 三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本 四、部署前准备工作4.1下载Dashy源码包4.2 查看D…

vue基础-ref (!)

&#xff01;1、ref 引用 在父组件中直接去调 子组件中的方法&#xff0c;使用ref 很简单&#xff0c;比父子传值 简单很多 1、使用ref引用DOM元素 第一步&#xff1a;给标签里 写 ref“xxx” 第二步&#xff1a;就可以用this.$refs.xxx 来拿到这个元素 使用 ! 2、使用ref引…

Spring - Bean的6种作用域

1、Bean作用域问题2、作用域定义2.1、Bean的6种作用域singleton 单例模式prototype 原型作用域request 请求作用域session 会话作用域application 全局作用域&#xff08;了解&#xff09;websocket 单例作用域 vs 全局作用域 2.设置作用域 1、Bean作用域问题 通过一个案例来看…

[工业互联-10]:PLC入门简介

目录 前言 PLC的用途 PLC的特点 PLC的分类 1、按PLC的控制规模分类 2、按PLC的控制性能分类 3、按PLC的结构分类 PLC的技术指标 1、硬件指标 2、软件指标 3、主要性能指标介绍 1) 存储容量 2) 输入/输出&#xff08;I/O&#xff09;点数 3) 扫描速度 4) 指令的功…

【Redis】五种数据结构

在内存种种存储形式如下&#xff1a;

练习2:逻辑回归

练习2&#xff1a;逻辑回归 介绍 在本练习中&#xff0c;您将实现逻辑回归并将其应用于两个不同的数据集。还将通过将正则化加入训练算法&#xff0c;来提高算法的鲁棒性&#xff0c;并用更复杂的情形来测试模型算法。 在开始练习前&#xff0c;需要下载如下的文件进行数据上…

90后程序员回家卖羊粪,月销售额120万!

不得不说&#xff0c;程序员是一个勤奋而又善于思考的群体。他们不只是代码写得好&#xff0c;善于逻辑思维&#xff0c;即使有一天不做程序员&#xff0c;转行其他岗位了&#xff0c;也能在新的岗位上面玩出花样。 早在2013年的时候&#xff0c;就有一位新浪的PHP程序员转行卖…

单点登录:CAS使用springboot main方法启动cas-server

1.下载demo git clone https://gitee.com/pelin0963/cas-server.git2.使用eclipse导入maven项目。此次我是用的spring tool suite 4导入的。 导入时会用较长时间&#xff0c;10分钟吧。需要下载很多资源。 3.报错&#xff0c;提示缺少jar包 Missing artifact net.shibbolet…

【java】使用 BeanUtils.copyProperties 11个坑(注意事项)

文章目录 背景第1个坑&#xff1a; 类型不匹配第2个坑: BeanUtils.copyProperties是浅拷贝第3个坑&#xff1a;属性名称不一致第4个坑&#xff1a;Null 值覆盖第5个坑&#xff1a;注意引入的包第6个坑&#xff1a;Boolean类型数据is属性开头的坑第7个坑&#xff1a;查找不到字段…

C语言strlen函数的缺陷与实现,strcpy函数的缺陷与实现,strcat函数的缺陷与实现,strcmp的实现。

1.strlen 函数原型&#xff1a; size_t strlen( const char *string );size_t 是无符号整型&#xff0c;相当于unsigned intconst char *string 是目标字符串 函数作用&#xff1a; 计算字符串的长度。 函数的模拟实现&#xff1a; size_t _strlen(const char * str) {ass…

地址解析省市区详细地址

项目代码源地址在我的github&#xff1a;https://github.com/weitw/address-analyzer 一、项目介绍 1、解析规则 将一个用户输入的地址&#xff0c;解析成省、市、区、详细地址的形式。 如果用户输入的不是标准的地址&#xff0c;则需要推测标准地址。例如用户输入&#xff…

【AIGC】16、Vision-Language 模型在视觉任务中的调研

文章目录 一、简介二、基础知识2.1 视觉任务的训练策略2.2 VLM 基础2.2.1 网络结构2.2.2 预训练目标函数2.2.3 评估和下游任务 2.3 数据集 三、迁移学习3.1 使用 prompt tuning 实现迁移学习3.2 通过特征适应来进行迁移学习 四、VLM 的知识蒸馏4.1 目标检测的知识蒸馏4.2 语义分…

用雪花 id 和 uuid 做 MySQL 主键,被领导怼了

在MySQL中设计表的时候&#xff0c;MySQL官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一)&#xff0c;而是推荐连续自增的主键id&#xff0c;官方的推荐是auto_increment&#xff0c;那么为什么不建议采用uuid&#xff0c;使用uuid究竟有什么坏处&#xff1f;本篇…

打造专属封面!这两款神器必备

无论你是图文博主还是视频博主&#xff0c;做封面都是必不可少的。谈及可制作封面的工具&#xff0c;种类是极其繁多的&#xff0c;比如黄油相机、美图秀秀、美易等。虽然这些工具各有千秋&#xff0c;但我不建议使用&#xff0c;因为它们的某个功能可能做得不错&#xff0c;但…

【MySQL数据库 | 第十九篇】SQL性能分析工具

目录 前言&#xff1a; SQL执行频率&#xff1a; 慢查询日志&#xff1a; profile&#xff1a; profile各个指令&#xff1a; 总结&#xff1a; 前言&#xff1a; 本篇我们将为大家讲解SQL性能的分析工具&#xff0c;而只有熟练的掌握了性能分析的工具&#xff0c;才可以更…

JVM知识点整理

JVM 回收哪个区域&#xff1f;关联面试题&#xff1a;fullgc会回收方法区&#xff08;元空间&#xff09;吗? 怎么判断对象可以被回收了关联面试题&#xff1a;哪些对象可以作为 GC Root &#xff08;两栈两方法&#xff09; JVM GC什么时候执行&#xff1f;分代回收机制思考&…

pandas---文件读取与存储(csv、hdf、json、excel、sql)

数据大部分存在于文件当中&#xff0c;所以pandas会支持复杂的IO操作&#xff0c;pandas的API支持众多的文件格 式&#xff0c;如CSV、SQL、EXCEL、JSON、 HDF5。 1. csv文件 pandas.read_csv(filepath_or_buffer, sep ,, usecols ) filepath_or_buffer:文件路径 sep :…