从 Web 存储中提取信息

文章介绍了HTML5中的Web存储机制,包括本地存储和会话存储,以及如何通过XSS漏洞从浏览器的Web存储中提取信息。作者通过实例展示了攻击者如何利用这些漏洞,强调了Web应用在使用存储时的安全问题。同时,文章提到了使用开发人员工具来查看和编辑存储内容的方法,以及Cookie与Web存储的区别。
摘要由CSDN通过智能技术生成

概要

在HTML5之前,Web应用程序在用户计算机中持久或基于会话存储信息的唯一方法是通过cookie。在这个新版本的语言中,增加了新的存储选项,称为Web存储,即本地存储和会话存储。 这些允许应用程序使用JavaScript从客户端(浏览器)存储和检索信息,并且在本地存储的情况下或在会话存储的情况下保留此信息直到显式删除,直到保存它的选项卡或窗口关闭为止。

整体架构流程

在本文中,我们将使用XSS漏洞从浏览器的Web存储中检索信息,表明如果应用程序容易受到攻击,攻击者可以轻松地利用这些信息。

技术名词解释

提示:技术名词解释

例如:

  • Storage(存储)
  • Local Storage(本地存储)

技术细节

  • 启动owasp靶机环境
  • .登录owasp靶机
    在这里插入图片描述靶机地址为192.168.40.150
    在这里插入图片描述
    浏览器登入靶机IP,转到 Mutillidae II | HTML5 | HTML5 Web Storage(存储) | HTML 5 Storage

从 Web 存储中提取信息案例

在这里插入图片描述F12打开开发人员工具
在这里插入图片描述转到 Storage(存储)选项卡:
在这里插入图片描述再转到 Local Storage(本地存
储)并选择靶机地址,可以看到三个值
在这里插入图片描述现在,切换到 Session Storage(会话存储)并选择服务器地址,可以看到四个值,其中一个称为Secure.AuthenticationToken
在这里插入图片描述在同一浏览器上,打开一个新选项卡,然后转到 BodgeIt(http://__/bodgeit/),__处填靶机地址。
在这里插入图片描述点击search搜索
在这里插入图片描述知道 BodgeIt 的搜索易受 XSS 攻击,因此输入以下有效载荷,在搜索框中执行它:

在这里插入图片描述执行后弹窗
在这里插入图片描述点击search返回
在这里插入图片描述现在,尝试使用会话存储:

`在这里插入代码片`,发现无法访问会话存储

在这里插入图片描述由于无法从其他窗口访问会话存储,请返回 MutillidaeII 选项卡并转至 OWASP 2013 | XSS | Reflected(First Order)(反映的第一顺序) | DNS Lookup(DNS 查找)。
在这里插入图片描述在"Hostname/IP"字段中,输入前面的有效内容并单击"Look DNS"(查找 DNS)按钮

在这里插入图片描述出现弹窗

学习收获

如果应用程序使用Web存储来保存有关用户的敏感信息,则XSS不应该是唯一的安全问题。 如果攻击者可以访问用户的计算机,则此攻击者可以直接访问保留本地存储的文件,因为浏览器保存此

心得

时间过的很快,一学期的计算机信息安全课要结束了。通过这一学期的学习,使得自己在计算机信息安全这一方面有了更多的了解也有了更深刻的体会,对计算机信息安全也有了更多的兴趣

分析

首先,我们既然说到cookie的存储和获取,我们就要明确什么是cookie?

Cookie说白了就是储存在用户本地终端上的数据,指的是某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据,通常会经过加密。也可以叫做浏览器缓存。

Cookie 主要是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。

Cookie大概就是这样的一个意思,相信大家了解了什么是cookie之后,现在让我们进入今天我们的主要内容:

从web存储中提取信息

小结

在本文中,我们了解了如何使用浏览器的开发人员工具来查看和编辑浏览器存储的内容。我们验证了本地存储和会话存储之间的可访问性差异,以及XSS漏洞如何将所有存储的信息暴露给攻击者。

首先,我们从不同于添加存储的应用程序访问本地存储,但是在同一个域中。为此,我们使用了window.localStorage.MessageOfTheDay,

将键值作为对象名称并直接将其作为Local Storage的成员引用。 对于会话存储,我们不得不移动到创建存储的窗口并利用其中的漏洞; 在这里,我们使用不同的指令来获取我们的价值想要:window.sessionStorage.getItem(“Secure.AuthenticationToken”。两种形式(键作为类和getItem的成员)对两种类型的存储都有效。我们在会话中使用了getItem,因为键包含句点(。) ,这将由JavaScript解释器作为对象/属性定界符处理,因此我们需要使用getItem

用冒号括起来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值