【网络安全】XSS如何绕过HttpOnly获取Cookie以及XSS与CORS漏洞利用

2024-01-09

目录

HttpOnly

XSS如何绕过HttpOnly获取Cookie

直接读取

目录

HttpOnly

当开启HttpOnly时不依靠cookie如何登录后台

直接读取

表单劫持

XSS如何绕过HttpOnly获取Cookie

利用phpinfo获取cookie

Apache漏洞获取cookie

XSS与CORS漏洞利用

Host、Referer、Origin的区别

Cors 漏洞原理

Cors漏洞复现

XSS和Cors漏洞结合


表单劫持

利用phpinfo

XSS与CORS漏洞利用

Host、Referer、Origin的区别

Cors 漏洞原理

Cors漏洞复现

XSS和Cors漏洞结合


HttpOnly

如果在cookie中设置了HttpOnly属性,那么通过js脚本将无法读取到cookie信息,这样能有效的防止 XSS 攻击

当开启HttpOnly时不依靠cookie如何登录后台

我们获取Cookie的目的无非就是登录后台,而登录后台往往还有另一种更为普遍的方式:账号密码登录。

所以当HttpOnly开启时,我们无法通过Cookie来登录,只能想办法获取账号密码。

若对方管理员有账号密码保存在浏览器的习惯,那么可以通过XSS漏洞读取浏览器中存储的账号密码信息。分以下两种情况:

  1. 保存读取:对方浏览器已经记录账号密码信息——直接读取
  2. 没有保存读取:对方浏览器没有保存账号密码信息——表单劫持

直接读取

XSS平台-用于xss漏洞测试专用

如果管理员账号密码保存在浏览器,则登录时以及登录后触发了XSS语句(勾选获取浏览器记住的明文密码),都会把账号密码信息发送到XSS后台。

表单劫持

当使用者输入账号密码时,浏览器会通过HTML的表单提交数据,再由POST方式将接收的数据参数提交到后台

此时抓包就能看见用户的账号和密码

如果能够在登录时触发XSS的表单劫持脚本代码,就会将账号密码信息发送回XSS后台,我们就能以此拿到管理员的账号密码信息。

需要注意的是,如果要利用表单劫持,那么XSS漏洞必须出现在登录框所在页面,也即XSS的表单劫持代码必须插入到登录框所在的页面(XSS代码提前写入此页面等待触发),若登录框所在页面不存在跨站漏洞,就无法得到账号密码信息。

XSS如何绕过HttpOnly获取Cookie

利用phpinfo获取cookie

phpinfo中很有可能藏着大量的信息,其中说不定就包含着cookie

Apache漏洞获取cookie

Apache服务器2.0-2.2版本存在个漏洞 CE-2012-0053:

攻击者可通过向网站植人超大的Cookie,令其HTTP头超过Apache的LititRequestFieldSize (最大请求长度,4192字节),使得Apache返回400错误,状态页中包含了HttpOnly 保护的Cookie。

XSS与CORS漏洞利用

CORS,跨域资源共享 (Cross-origin resource sharing),是H5提供的一种机制,WEB应用程序可以通过在HTTP增加字段来告诉浏览器,哪些不同来源的服务器是有权访问本站资源的,当不同域的请求发生时,就出现了跨域的现象。

Host、Referer、Origin的区别

  • Host :去哪里。 域名+端口 。值为客户端将要访问的远程主机,浏览器在发送Http请求时会带有此Header
  • Referer :来自哪里。 协议+域名+端口+路径+参数 。当前请求的 来源页面 的地址,服务端一般使用 Referer 首部识别访问来源,可能会以此进行统计分析、日志记录以及缓存优化等
    • 常见应用场景:百度的搜索广告就会分析Referer来判断打开站点是从百度搜索跳转的,还是直接URL输入地址的
    • 一般情况下浏览器会带有Referer,但这些情况不会带有Referer这个头
      • 来源页面协议为File或者Data URI(如页面从本地打开的)
      • 来源页面是Https,而目标URL是http
      • 浏览器地址栏直接输入网址访问,或者通过浏览器的书签直接访问
      • 使用JS的kk跳转

若浏览器不能获取到请求源页面地址,Referer头不会发送,但Origin依旧会发送,只是值是null而已(注:虽然值为null,但此请求依旧属于Cors请求)

  • Origin :来自哪里(跨域)。 协议+域名+端口 。它用于Cors请求和同域POST请求

只有跨域请求,或者同域时发送post请求,才会携带Origin请求头

Cors 漏洞原理

Cors请求可分为两类,简单请求和非简单请求。所谓简单请求,就是请求方式为GET,POST,HEAD这三种之一,并且HTTP头不超出(Accept,Accept-Language,Content-Language,Lat-Event-ID,Content-Type)这几种字段。

当浏览器发现服务器的请求为简单请求时,会在头信息里加入Origin字段。Origin字段代表此次请求来自哪个域,服务器就可以检验是否来自该域。如果匹配,服务器就会在响应里增添三个字段:

  • Access-Control-Allow-Origin
  • Access-Control-Allow-Credentials
  • Access-Control-Expose-Headers

其中 Access-Control-Allow-Origin是必须有的,而剩下两个可有可无。Access-Control-Allow-Origin字段代表允许哪个域访问。当字段值为‘*’时,就代表任意域都可以访问,这样,就导致了Cors漏洞的产生。

Cors漏洞复现

随意打开一网站,找到一些用户信息:

再查看该网页的响应包:

可以看到响应包里面:Access-Control-Allow-Origin:*,这就代表了任意域可以访问,构造poc:

POC:全称 ’ Proof of Concept ',中文 ’ 概念验证 ’ ,常指一段漏洞证明的代码。

<!DOCTYPE>
<html>
<script type="text/javascript">
function loadXMLDoc()
{
    var xhr = new XMLHttpRequest();

    xhr.onreadystatechange=function()
    {
        if(xhr.readyState == 4 && xhr.status == 200) //if receive xhr response
        {
            var datas=xhr.responseText;
            alert(datas);
        }
    }
    //request vuln page
    xhr.open("GET","http://www.target.com","true") //网页地址
    xhr.send();
}
loadXMLDoc();
</script>
</html>

可以看到成功截取到了用户的信息

XSS和Cors漏洞结合

需要先验证XSS和Cors漏洞都存在

然后构造能够通过CORS跨域获取到敏感数据的JavaScript代码,如复现中的poc

该代码通过loadXMLDoc()函数,判断当前的访问状态,如果是正常访问(即状态码为200),则获取目标网页地址文件的body下的全部内容(也可以根据ID获取)并弹框展示出来。

现在我们只需要把反射XSS的payload替换为利用CORS跨域获取敏感信息的payload即可,例如:

程序成功执行。

接下来我将给各位同学划分一张学习计划表!

学习计划

那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:

阶段一:初级网络安全工程师

接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。

综合薪资区间6k~15k

1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?

阶段二:中级or高级网络安全工程师(看自己能力)

综合薪资区间15k~30k

7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。

零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;

Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完

用Python编写漏洞的exp,然后写一个简单的网络爬虫

PHP基本语法学习并书写一个简单的博客系统

熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)

了解Bootstrap的布局或者CSS。

阶段三:顶级网络安全工程师

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里 ???? https://mp.weixin.qq.com/s/QcrzhSEZfIjzmVWM1GQmzg)

学习资料分享

当然, 只给予计划不给予学习资料的行为无异于耍流氓 ,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可扫描下方二维码链接领取哦。

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

【网络安全】XSS如何绕过HttpOnly获取Cookie以及XSS与CORS漏洞利用 的相关文章

  • 网络安全(黑客)自学启蒙

    一 什么是网络安全 网络安全是一种综合性的概念 涵盖了保护计算机系统 网络基础设施和数据免受未经授权的访问 攻击 损害或盗窃的一系列措施和技术 经常听到的 红队 渗透测试 等就是研究攻击技术 而 蓝队 安全运营 安全运维 则研究防御技术 作
  • 【无标题】

    大家都知道该赛项的规程和样题向来都是模棱两可 从来不说具体的内容 导致选手在备赛时没有头绪 不知道该怎么训练 到了赛时发现题目和备赛的时候完全不一样 那么本文将以往年信息安全管理与评估赛项经验来解读今年2023年国赛的规程 帮助选手们指明方
  • 如何使用 HTML/PHP 防止 XSS?

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

    我对 PHP 很陌生 但我听说 XSS 漏洞很糟糕 我知道它们是什么 但如何保护我的网站 为了防止 XSS 攻击 您只需正确检查和验证您计划使用的所有用户输入的数据 并且不允许从该表单插入 html 或 javascript 代码 或者您可
  • 可以在 CodeIgniter 中“重复”xss-clean 数据吗?

    以下是在 Codeigniter 中清除 XSS 数据的方法 set global xss filtering在配置中TRUE use xss clean use xss clean作为验证规则 将第二个参数设置为TRUE in this
  • 如何在没有 Spring Boot 的情况下阻止或防止 Spring MVC 4 应用程序的 XSS

    如何保护 清理采用原始 JSON 主体并通常输出 JSON 响应且不使用 Spring Boot 的应用程序 我只看到一个可能有效并使用 JsonComponent 的好例子 如果我们不使用 jsoncomponent 如何过滤掉请求以从整
  • 是否需要验证或转义jsonp回调字符串

    我有一个名为 action php 的文件 它将执行一些操作 我想将其公开为纯 JSON 或 JSONP 输出 用户将使用如下 URL 来调用它 action php jsonp callback 在我的action php中我正在做这样的
  • 在没有脚本标签的情况下执行 XSS JavaScript

    我正在学习 XSS 出于道德目的 我想知道如何在不使用
  • Asp.Net MVC 输入验证在禁用后仍然触发

    我已经禁用了validateRequest在我的 web Config 中 但应用程序仍然引发错误 从客户端检测到潜在危险的 Request Form 值 我的 web Config 中有以下内容
  • 使用 Python 清理用户输入

    针对基于 Python 的 Web 应用程序清理用户输入的最佳方法是什么 是否有一个函数可以删除 HTML 字符和任何其他必要的字符组合以防止XSS http en wikipedia org wiki Cross site scripti
  • 我应该采取哪些预防措施来防止用户提交的 HTML 出现 XSS?

    我计划制作一个网络应用程序 允许用户在我的网站上发布整个网页 我正在考虑使用HTML 净化器 http htmlpurifier org 但我不确定 因为 HTML Purifier 会编辑 HTLM 并且 HTML 的发布方式保持不变非常
  • CKEditor 安全最佳实践

    我在用http ckeditor com http ckeditor com 在我建立的一个小型 PHP MySQL 论坛中 我的问题 将用户创建的 HTML 像这样保存在数据库中然后在我的应用程序中重新显示它是否安全 我应该采取哪些预防措
  • HTMLPurifier 破坏图像

    我试图根据 WYSIWYG CK 编辑器 的用户输入运行 HTMLPurifier 但图像损坏 未过滤的输入 img alt laugh src lib ckeditor plugins smiley images teeth smile
  • img src 属性中使用 javascript 进行 XSS 攻击

    一些较旧的浏览器容易受到 XSS 攻击 img src 当前版本的 IE FF Chrome 不是 我很好奇是否有浏览器容易受到类似的攻击 img src somefile js or 或其他类似的地方 somefile js 包含一些恶意
  • 为什么 XSS 注入需要对 & 进行转义

    OWASP 建议转义以防止 XSS 注入的五个字符是 lt gt 其中 我无法理解为什么 符号 应该被转义以及如何将其用作注入脚本的向量 有人可以举个例子 所有其他四个字符都被转义 但与号没有转义 所以会有 XSS 注入漏洞 我已经检查了另
  • https 安全 cookie 是否可以防止 XSS 攻击?

    https 连接是否可以保护 cookie 并防止 XSS 攻击 我有一个简单的博客 允许用户输入 JavaScript 代码作为输入 我希望允许用户输入 Javascript 同时仍然防止 XSS 攻击和 cookie 窃取 https
  • GWT SafeHTML、XSS 和最佳实践

    OWASP 的优秀人员强调 您必须对 HTML 文档中要放入不受信任数据的部分 正文 属性 JavaScript CSS 或 URL 使用转义语法 看OWASP XSS https www owasp org index php XSS 2
  • 使用内容安全策略防止 Internet Explorer 11 上的内联 JavaScript

    是否可以使用 ASP NET WebForm 上的 CSP 来阻止 Internet Explorer 11 上的内联 JavaScript 我知道 IE 11 不支持内容安全策略级别 2 但它支持级别 1 0 我尝试了很多方法 但没有明确
  • HTML-Entity 转义以防止 XSS

    我有一些用户输入 在我的代码中 我确保对以下符号进行转义 gt amp lt gt lt gt gt gt OWASP https www owasp org index php XSS 28Cross Site Scripting 29
  • 使用 CSP 防止自动点击链接 XSS 攻击

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

随机推荐

  • 手机未来发展的趋势与挑战

    随着科技的飞速发展 手机已经成为我们生活中不可或缺的一部分 然而 随着5G 人工智能等新技术的不断涌现 手机的未来发展面临着前所未有的机遇和挑战 本文将探讨手机未来发展的趋势与挑战 一 手机未来发展的趋势 5G技术的普及 随着5G技术的不断
  • 鸿鹄云商B2B2C:JAVA实现的商家间直播带货商城系统概览

    saas云平台 打造全行业全渠道全场景的saas产品 为经营场景提供一体化解决方案 门店经营区域化 网店经营一体化 本地化 全方位 一站式服务 为多门店提供统一运营解决方案 提供丰富多样的营销玩法覆盖所有经营场景 助力商家成功 系统稳定压倒
  • 【Leetcode】49. 字母异位词分组

    49 字母异位词分组 题目链接 代码一 代码二 题目链接 Leetcode 49 字母异位词分组 代码一 func groupAnagrams strs string string 存放字典序相同的字符串切片 hash map string
  • APP加固技术及其应用

    文章目录 引言 APP加固的概念 APP加固的方案 APP加固在实际开发中的应用 总结 引言 在移动应用开发过程中 APP加固技术起到了非常重要的作用 APP加固是将apk文件进行混淆加密 以防止别人反编译获取我们的源码和资源文件 目前市场
  • pytorch09:可视化工具-TensorBoard,实现卷积核和特征图可视化

    目录 一 TensorBoard简介 二 TensorBoard安装 三 TensorBoard运行可视化 四 TensorBoard详细使用 4 1 SummaryWriter 4 2 add scalar 4 3 add scalars
  • 24分+的医药顶刊带你学习表观组学解析超级热点“肿瘤耐药”的机制

    对癌症患者采用治疗干预时获得性耐药是转移性癌症复发的主要原因 此前 获得性耐药发展的研究主要集中在识别耐药肿瘤中常见的基因突变 越来越多的证据表明 在永久性获得性耐药出现之前 癌症中存在一种表观遗传调控的可逆耐药状态 这种可逆状态可能会导致
  • 2024几个测试接口的好工具,效率加倍~

    作为一名后端程序员 一定要对自己写的接口负责 保证接口的正确和稳定性 因此 接口测试也是后端开发中的关键环节 但我相信 很多朋友是懒得测试接口的 觉得这很麻烦 一般自己写的接口自己都不调用 而是直接甩给前端或者其他调用方去验证 出了问题再改
  • 测试市场已经饱和了吗?现在转行软件测试会不会太迟?

    非常有意思的话题 某种程度上来说 测试职场一条从未设想过的道路真的走通了 这条路指广大测试呼吁对测试从业进行学历保护 专业保护 就像医学那样设置护城河 以一种令人意想不到的方式完成了 得益于大量培训机构为了赚钱 盲目的向大量非计算机相关专业
  • 一篇文章让你搞懂性能测试6大类型及其关系!

    性能测试是软件测试过程的一个关键环节 用于确定和验证应用程序或系统在各种操作条件下的性能特征 目标是确保软件在高负载 高压力 长时间运行以及其他非标准情况下仍能保持预期的行为和效率 一 性能测试的主要类型 1 基线测试 Baseline T
  • h5 唤醒小程序

    weixin dl business appid appid path pages index index
  • 盘点第三方支付行业中一些“专用术语”

    每个行业都有自己的行业术语 在官方场合被称为 术语 如果你是支付行业的新手 或者正在努力深入了解这个复杂但充满机遇的领域 那么掌握行业术语就是打开这扇门的关键 支付系统的需求文档和技术方案文档都充斥着专业词汇和行业术语 有些词汇容易理解 有
  • 【C语言】数组

    一维数组的创建和初始化 数组是一组相同类型元素的集合 数组的创建 数组的创建方式 type t arr name const n type t 是指数组的元素类型 const n 是一个常量表达式 用来指定数组的大小 数组创建的实例 数组创
  • 电商数据接口API深度解析

    随着电子商务的快速发展 电商平台之间的竞争也日益激烈 为了在市场中保持领先地位 电商平台需要不断地优化用户体验 提供个性化的服务和精准的推荐 而这一切都离不开数据 电商数据接口API作为一种高效 便捷的数据交互方式 被广泛应用于电商领域 本
  • 跨境电商三大趋势已经涌现

    在过去的几年里 跨境电商在推动外贸增长中发挥了至关重要的作用 成为了引领行业发展的强大引擎 然而 随着2024年的到来 跨境电商行业又站在了崭新的起点 准备攀登新的发展高峰 数据显示 得益于经济的逐步复苏 未来三年跨境电商行业预计将以16
  • 如何快速搭建一个自营商城?(调用电商API实现快速采集商品)

    一 背景介绍 在数字化时代 电商行业蓬勃发展 无数商家涌入这片蓝海 对于许多有志于开拓电商业务的企业和个人来说 快速搭建一个自营商城成为了迫切的需求 然而 传统意义上的自建商城需要投入大量的人力 物力和时间 这让许多初创企业和个人望而却步
  • 思腾合力赞助CCF YOCSEF太原第十一届学术委员会第三次全体会议

    2024年1月6日 由思腾合力赞助的 CCF YOCSEF太原第十一届学术委员会第三次全体会议暨AC换届选举活动 在山西大学举办 华北区教育行业负责人宋肖敏出席本次会议 会议汇聚了众多学术界和企业界的精英 共同探讨人工智能和计算机科学的未来
  • 在ASP.NET MVC中使用JQuery提供的弹出窗口(模态窗口)

    在ASP NET MVC中使用JQuery提供的弹出窗口 模态窗口 原理 使用 div 图层灵活显示在浏览器的任何位置 默认情况下指定 div 不可见 引用 样式表 在JQuery的官方网站可以下载对应的css样式表 打开官网的 样例页 找
  • KALI Linux 最新超详细安装教程

    自己也在学习所以就想着记录一下 接下来开始安装 一 先下载好kali linux 的镜像 可以去kali的官网 https www kali org get kali kali bare metal 还可以去 清华大学开源软件镜像站下载 h
  • vue2中Cascader 级联选择器限制选择个数和回显问题

    文章目录 1 组件默认数据绑定 2 指定数据绑定 3 watch监听v model绑定的数组 控制选中个数 4 前后端数据转换 实现回显 1 接口初始数据回显 2 重新选择级联选择器后 如何将选择的数据转换成后端需要的数据 3 最后提交数据
  • 【网络安全】XSS如何绕过HttpOnly获取Cookie以及XSS与CORS漏洞利用

    目录 HttpOnly XSS如何绕过HttpOnly获取Cookie 直接读取 目录 HttpOnly 当开启HttpOnly时不依靠cookie如何登录后台 直接读取 表单劫持 XSS如何绕过HttpOnly获取Cookie 利用php