pikachu漏洞靶机之xss获取键盘记录

2023-10-31 06:40

本文主要是介绍pikachu漏洞靶机之xss获取键盘记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在实验前,先了解一下什么是跨域
http:// www . xyz.com : 8080 / script/test.js
协议 子域名 主域名 端口 资源地址
当协议、主机(主域名,子域名)、端口中的任意一个不相同时,称为不同域
我们把不同的域之间请求数据的操作,成为跨域操作。
跨域-同源策略
而为了安全考虑,所有的浏览器都约定了“同源策略”,同源策略规定,两个不同域名之间不能使用JS进行相互操作。比如:x.com域名下的javascrip并不能操作y.com域下的对象。
如果想要跨域操作,则需要管理员进行特殊的配置。 比如通过:header(“Access-Control-Allow-Origin:x.com”)指定。
Tips: 下面这些标签跨域加载资源(资源类型是有限制的)是不受同源策略限制的。
<script src=“…”> //js,加载到本地执行
<img src=“…”> //图片
<link href=“…”> //css
<iframe src=“…”> //任意资源
为什么要有同源策略:
A登陆了淘宝,攻击者向A发送一个恶意链接urlb:http://www.盗你cookie.com 。如果没有同源策略,即:urlb上的js可以操作A的内容(如:获取cookie等) ,有了同源策略,就限制了这种情况。 再比如: 一个恶意站点A上使用了,发送该恶意url到攻击对象,攻击对象登陆后如果没有同源策略,则A上的JS即可获取B站点的登陆信息。
网络钓鱼就是我们现在攻击方嵌入js代码,代码指向我们组织好的的攻击代码,当用户浏览攻击页面的时候,js代码执行,攻击代码执行,攻击代码中有一个函数(javascript中有一个方法叫做event.keycode方法他能够记录键盘的输入),当他收取到输入之后,再发给我们的后台。在代码中通过ajax,用post请求发送键盘输入的信息如图:
在这里插入图片描述但是这里却违背了同源策略,因为我们在出现漏洞的页面调用我们xss后台的页面是不成功的,那么这里我们应该怎么办?我们可以在xss后台用一个接口,来接受键盘输入的信息,在这个接口代码的前面我们加上上文所述的一句话代码(header(“Access-Control-Allow-Origin:*”),这段代码允许任何的域来访问xss,这样输入信息就可以传送到xss后台。
在这里我们可能会有一个疑问就是我们在嵌入一个js代码的时候如图:
在这里插入图片描述
是否会受到同源策略的限制?当然是不会啦。因为我们前文说过有些标签跨域加载资源的时候是不受限制的。
xss后台接口源码就是:
在这里插入图片描述

这篇关于pikachu漏洞靶机之xss获取键盘记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/313526

相关文章

python获取当前文件和目录路径的方法详解

《python获取当前文件和目录路径的方法详解》:本文主要介绍Python中获取当前文件路径和目录的方法,包括使用__file__关键字、os.path.abspath、os.path.realp... 目录1、获取当前文件路径2、获取当前文件所在目录3、os.path.abspath和os.path.re

Java子线程无法获取Attributes的解决方法(最新推荐)

《Java子线程无法获取Attributes的解决方法(最新推荐)》在Java多线程编程中,子线程无法直接获取主线程设置的Attributes是一个常见问题,本文探讨了这一问题的原因,并提供了两种解决... 目录一、问题原因二、解决方案1. 直接传递数据2. 使用ThreadLocal(适用于线程独立数据)

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

vcpkg子包路径批量获取

获取vcpkg 子包的路径,并拼接为set(CMAKE_PREFIX_PATH “拼接路径” ) import osdef find_directories_with_subdirs(root_dir):# 构建根目录下的 "packages" 文件夹路径root_packages_dir = os.path.join(root_dir, "packages")# 如果 "packages"

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

android两种日志获取log4j

android   log4j 加载日志使用方法; 先上图: 有两种方式: 1:直接使用架包 加载(两个都要使用); 架包:android-logging-log4j-1.0.3.jar 、log4j-1.2.15.jar  (说明:也可以使用架包:log4j-1.2.17.jar)  2:对架包输入日志的二次封装使用; 1:直接使用 log4j 日志框架获取日志信息: A:配置 日志 文

17 通过ref代替DOM用来获取元素和组件的引用

重点 ref :官网给出的解释是: ref: 用于注册对元素或子组件的引用。引用将在父组件的$refs 对象下注册。如果在普通DOM元素上使用,则引用将是该元素;如果在子组件上使用,则引用将是组件实例: <!-- vm.$refs.p will be the DOM node --><p ref="p">hello</p><!-- vm.$refs.child will be the c

react笔记 8-19 事件对象、获取dom元素、双向绑定

1、事件对象event 通过事件的event对象获取它的dom元素 run=(event)=>{event.target.style="background:yellowgreen" //event的父级为他本身event.target.getAttribute("aid") //这样便获取到了它的自定义属性aid}render() {return (<div><h2>{