pikache靶场通关——XSS漏洞

news/2024/12/22 12:20:52/

文章目录

  • 前言
  • 环境
  • 第一关、反射型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.ppmy.cn/news/438531.html

相关文章

华为鸿蒙系统手机便签数据怎么转移到苹果手机?

华为手机和苹果手机使用的并非同一操作系统&#xff0c;前者使用的是鸿蒙&#xff0c;后者采用的是iOS。不过&#xff0c;无论是华为鸿蒙系统手机还是iOS系统苹果手机&#xff0c;都可以安装便签&#xff0c;记录便签及待办事项等。那么华为鸿蒙系统手机便签数据怎么转移到苹果…

苹果的新手机都是5G,华为的新手机只有4G,大家怎么看待这个现象?

因为4GWiFi比5G更优秀。事实说明&#xff0c;5G存在诸多弊端&#xff0c;厕所覆盖不到&#xff0c;高铁用不了&#xff0c;农村难以覆盖&#xff0c;这样的5G也就只能作为城市中部分场景下的热点存在。 4G则已覆盖了城市的每个角落&#xff0c;农村地区也基本覆盖了4G&#xff…

华为与苹果区别在哪

今天有位在华为工作的孩子来家拜年&#xff0c;见到我家附近就是苹果&#xff1b;于是就问我&#xff0c;华为与苹果的区别在哪里&#xff1f;其实这话本来是不好回答的&#xff0c;因为企业文化和企业体制的不同而带来全方位的不同。再加上我实际并不了解这两家企业&#xff0…

华为mate50和苹果14区别 哪个好

mate50还是iPhone14的话&#xff0c;小编觉得&#xff0c;只谈性能&#xff0c;那么肯定是iPhone14更强了&#xff0c;现在iPhone 13的A15性能就比骁龙8处理器更出色&#xff0c;而iPhone14目前很有可能也是A15处理器。 华为mate50搭载的是骁龙8处理器&#xff0c;性能落后A15一…

从手机到平板,华为凭啥总能超越苹果?

​ 618期间电商平台激战&#xff0c;各大平台传来喜报&#xff0c;尤其是平板电脑销量增速惊人。 京东公布的华为在618期间的数据表明&#xff1a;6月1日-10日&#xff0c;笔记本电脑成交额同比增长60%&#xff0c;平板电脑成交额同比增长270%&#xff0c;路由器成交额同比增长…

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

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

S2011设置IP地址,打印自检页方法

转载于:https://blog.51cto.com/7701254/2337051

软件无法查看打印机驱动处理方案

通过软件无法查看打印机驱动处理方案&#xff1a; 问题描述&#xff1a;无法查看打印机驱动&#xff0c;设备有打印机 以思迅软件商云X为例&#xff1a; 处理方案&#xff1a;开启打印机服务&#xff1a; 1.首先右击桌面的“此电脑” 然后点击“管理” 2.点击做成任务栏中…