发布于2022年11月4日2年前 黑客入门——详解json和json劫持 1.json与jsonp首先向大家介绍一下什么是json"JSON( Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。"其实通俗来说json就是一种格式,类似于python当中的字典。举个简单的例子{"id" : "1","name" : "小明"},这个就是一个简单的json,然后我们要介绍的是jsonp。Jsonp(json with padding)是基于 JSON 格式的为解决跨域请求资源而产生的解决方案,远程调用 JSON 文件来实现数据传递。再举一个例子"<?php$callback = $_GET['callback'];print $callback . '({"id" : "1","name" : "小明"});';?>"这里出现了callback他的作用就是回调我们的json。上面的php例子相对应的前端是这样写的:"<script type="text/javascript">$.getJSON("http://somejson.com.xxx.php?callback=?", function(getUsers){alert(getUsers.name);});</script>"这就是简单的一段jsonp的运用,跨域传输我们的json文件,那么随着我们jsonp的出现也导致了一些安全问题。我们这里要介绍的是json劫持。2.json劫持由于jsonp的跨域传输同时也带来了很多不安全的因素。这里我们举个例子,某云的一个案例"利用腾x某站点json获取到当前登录者xx号码",我们访问之后就类似于咱们最早举得小明那个例子很想通过calback参数去回调给用户。所以json劫持的挖掘过程也就浮出水面,但是现在很多站存在针对csrf的验证机制,所以在介绍一下csrf的referer绕过机制。1. 正则不严谨如正常请求的referer:www.123.com我们修改为referer只需要攻击者利用时注册相应的域名就可以绕过2. 空referer这里直接删去referer是最简单的一个3. 总结当我们在json劫持的挖掘和利用的时候去寻找敏感操作或者其他能获取用户的信息的位置,我们看是否会有这样的url存在callback回调给用户,这样存在如上的位置都可以被攻击者利用,只是做一个简单的分析。本文尚有不足,望大佬们指出
创建帐户或登录后发表意见