理解jsonp劫持漏洞

JSONP劫持

存在漏洞的链接格式类似于以下这种:

http://www.xxx.com/xxx.do?callback=info

参数名也常见有cb jsoncb call jsoncall cback等

分析jsonp原理

http://www.xxx.com/xxx.do 服务器伪代码:

//获取callback的值
$name=$_GET["callback"];
//校验用户身份信息,从数据库获取用户信息
$result=查库并返回结果
//返回信息
$name+"("+$result+")"
//放到实际例子就是这样的
info({"name":"Jack","phone":"18888888888","location":"NanJin"})

jsonp响应:

info({"name":"Jack","phone":"18888888888","location":"NanJin"})

json格式:

{"name":"Jack","phone":"18888888888","location":"NanJin"}

上面的jsonp响应其实是一句js代码:

执行info() 函数 ,{"name":"Jack","phone":"18888888888","location":"NanJin"}作为入参

攻击者构造一个页面http://hack.html

包含以下代码

<script>
function info(data){alert(JSON.stringify(data)); }
</script>
<script src="http://www.xxx.com/xxx.do?callback=info"></script>

script标签的src属性可以跨域引入脚本,因此hack.html引入js后相当于:

<script>
function info(data){ alert(JSON.stringify(data)); }
info({"name":"Jack","phone":"18888888888","location":"NanJin"})
</script>

弹出用户信息,即可证明该页面可以跨域操作用户敏感数据;实际攻击中,不会弹窗,而是会偷偷把数据存起来~

原文地址:https://www.cnblogs.com/mkdd/p/10129532.html

时间: 2024-10-09 15:57:58

理解jsonp劫持漏洞的相关文章

JSONP 劫持漏洞

0x01 Jsonp简介: Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据. 为什么我们从不同的域(网站)访问数据需要一个特殊的技术(JSONP )呢?这是因为同源策略. 同源策略,它是由Netscape提出的一个著名的安全策略,现在所有支持JavaScript 的浏览器都会使用这个策略. 0x02 JSONP劫持漏洞实例 服务端getUser.php <?php header('Cont

Dll劫持漏洞详解

  一.dll的定义 DLL(Dynamic Link Library)文件为动态链接库文件,又称"应用程序拓展",是软件文件类型.在Windows中,许多应用程序并不是一个完整的可执行文件,它们被分割成一些相对独立的动态链接库,即DLL文件,放置于系统中.当我们执行某一个程序时,相应的DLL文件就会被调用.一个应用程序可使用多个DLL文件,一个DLL文件也可能被不同的应用程序使用,这样的DLL文件被称为共享DLL文件. 如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Wi

深入理解JSONP原理——前端面试

JSON和JSONP虽然只有一个字之差,但是它们俩是八竿子打不着的:JSON是一种数据交换格式,JSONP是非正式的跨域数据交换协议. 为什么说JSONP是非正式的传输协议呢?因为它就是利用了<script>标签没有跨域限制这一"漏洞"来达到与第三方通讯的目的.简单地说,该协议就是,允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名包裹json数据,这样客户端就可以随意定制自己的函数自动处理返回的数据了. 即,需要通讯时

Openssl FREAK 中间人劫持漏洞 - 解决方案

openssl升级步骤: 环境CentOS 1 wget http://www.openssl.org/source/openssl-1.0.2a.tar.gz 2 tar zxvf openssl-1.0.2a.tar.gz 3 cd openssl-1.0.2a 4 ./config --prefix=/usr/local/ssl 5 make && make install 6 mv /usr/bin/openssl /usr/bin/openssl.OFF 7 mv /usr/in

同源策略与JSONP劫持原理

同源策略 浏览器中有两个安全机制,一个浏览器沙盒(Sandbox),另一个就是同源策略(Same Origin Policy,简称SOP) ,下面介绍同源策略.同源是指同协议.同域名.同端口,必须三同,缺一不可.下面列举了一些例子,为方便读者了解哪些是属于同源,下面列举一些案例: 根据这个策略,a.com域名下的JavaScript无法跨域操作b.com域名下的对象.跨域的安全限制都是对浏览器端来说的,服务器端是不存在跨域安全限制的.如下流程图: 流程图1. 流程图2. 不同源也意味着不能通信,

无线路由器认证会话劫持漏洞

1.漏洞原理 在已经破解了WEP或者WPA-PSK连接加密成功后,下面才有效. 由于之前大量旧型号的路由器设计都采用HTTP身份验证机制,该机制使得处于内网的攻击者可以较容易地实现会话劫持攻击.若具备admin的会话已经存在于无线网络中,则由于认证过程在传输中是明文的缘故,其密码等都可以直接通过sniff来获得.若该admin会话处于有线网络连接中,则攻击者也可以使用ARP欺骗等方式来截获该管理密码. 目前,绝大数的路由器都支持基于web的登录方式,基于IP地址的认证被大部分Web认证使用,用于

点击劫持漏洞

0x01:什么是点击劫持 点击劫持是一种视觉上的欺骗手段,攻击者使用一个透明的.不可见的iframe,覆盖在一个网页上,然后诱使用户在该网页上进行操作,此时用户在不知情的情况下点击了透明的iframe页面.通过调整iframe页面的位置,可以诱使用户恰好点击在iframe页面的一些功能性按钮上,攻击者常常配合社工手段完成攻击. 0x02 漏洞危害 攻击者精心构建的另一个置于原网页上面的透明页面.其他访客在用户毫不知情的情况下点击攻击者的页面从而完成攻击.具体危害取决Web应用. 0x03 POC

简单理解jsonp原理

对于javascript程序员来说,发送ajax请求获取后台数据然后把数据和模板拼接成字符串渲染回DOM实现无刷新更新页面这样的操作可谓是轻车熟路.但众所周知,ajax有一个不好,就是不能跨域传输数据,而跨域传输有时候又是必须用到的,比如我们可能需要调用第三方网站提供的某些API来获取某些信息,提供给我们网站的用户. 例如,要开发一个天气应用,你可能需要调用第三方的天气API,这个时候就必然涉及到跨域请求数据,因为毕竟我们不可能为了开发一个天气应用就自己搭建一个天气API.在少数情况下,如果第三

深入理解jsonp解决跨域访问

在我们做的这个项目中充分利用jsonp跨域这一个特性,完成了简单的单点登录功能和权限统一认证控制,实现思路并不复杂同各种实现单点登录的产品相比可以说微不足道,各有各的好处.各有各的优点,选择什么方式实现完全取决于我们自己或者项目经理的开发经验,对各种框架的理解程度往往决定了目前开发项目的整体架构. 这不是一项凭空产生的新东西,仅仅是JS的一个特性而已之前没有被我们提及也没有被我们注意到原来经常使用的js还可以跨域呢,觉的我们对已经学过的东西理解还不是不够深入.有些肤浅,JS绝大多数在浏览器中运行