关于检测web蜜罐利用jsonp获取信息的一些想法
字数 1128 2025-08-19 12:41:54
检测Web蜜罐利用JSONP获取信息的技术分析与防御方法
0x00 引言
本文详细分析商业蜜罐如何利用JSONP接口窃取攻击者信息的技术原理,并提供相应的检测与防御方法。重点针对蜜罐通过JavaScript脚本调用JSONP接口获取攻击者信息的过程进行剖析。
0x01 蜜罐技术概述
现代商业Web蜜罐通常采用以下关键技术:
-
JSONP接口配置
- 预先配置JSONP接口信息
- 生成对应的JavaScript文件(固定或动态URL)
-
蜜罐网站配置
- 仿站技术(扒取目标站点静态页面,功能不可用)
- 二次修改后的源码(功能可用但数据全为假数据或精简版源码)
-
信息收集机制
- 将配置好的JSONP接口JS文件URL插入蜜罐静态文件中
- 访问者打开蜜罐网站时自动加载并执行JS脚本
- 调用JSONP接口将攻击者数据回传至蜜罐后端
0x02 检测与防御实现方案
检测流程
- 打开网页
- 查看源代码
- 查找所有引用的JS文件
- 检查JS文件是否有蜜罐特征
浏览器插件实现方案
通过开发浏览器插件实现自动化检测和拦截:
核心功能
-
规则订阅系统
- 定义JSON格式的检测规则
- 规则结构示例:
{ "test111": [ { "filename": "xss.min.js", "content": "hello" } ], "test222": [ { "filename": "main.js", "content": "word" } ] }filename和content可使用通配符*表示任意匹配
-
缓存处理机制
- 设置短时间缓存(避免从缓存加载已拦截的JS文件)
- 使用
chrome.browsingData.removeCache清除近期缓存
-
请求拦截系统
- 使用
chrome.webRequest.onBeforeRequest监听器 - 对
script类型请求进行拦截检查
- 使用
核心代码实现
var honeypotUrlCache = {};
var http = {};
var ruleStr = '{"test111":[{"filename":"xss.min.js","content":"hello"}],"test222":[{"filename":"main.js","content":"word"}]}';
var rule = JSON.parse(ruleStr);
// 规则匹配函数
function checkForRule(url, content) {
for(item in rule) {
for(r1 in rule[item]) {
if (rule[item][r1]["filename"] == '*' && content.indexOf(rule[item][r1]["content"]) != -1) {
honeypotUrlCache[url] = item;
return;
} else if (url.indexOf(rule[item][r1]["filename"]) != -1) {
if (rule[item][r1]["content"] == '*') {
honeypotUrlCache[url] = item;
return;
} else if (content.indexOf(rule[item][r1]["content"]) != -1) {
honeypotUrlCache[url] = item;
return;
}
}
}
}
}
// 检查URL是否为蜜罐
function checkHoneypot(url) {
let status = false;
if (honeypotUrlCache.hasOwnProperty(url)) {
status = true;
} else {
http.get(url, function(err, result) {
checkForRule(url, result);
if (honeypotUrlCache.hasOwnProperty(url)) {
status = true;
}
});
}
return status;
}
// 请求拦截器
chrome.webRequest.onBeforeRequest.addListener(
details => {
var t = (new Date()).getTime() - 1000;
chrome.browsingData.removeCache({"since": t}, function(){});
if(details.type == 'script') {
if (checkHoneypot(details.url)) {
alert("蜜罐,快跑,当前蜜罐脚本已屏蔽!");
return {cancel: true};
}
}
},
{urls: ["<all_urls>"]},
["blocking"]
);
0x03 深入思考与扩展
检测方法优化方向
-
基于哈希值的检测
- 计算蜜罐特征文件的哈希值进行匹配
- 提高检测准确率,减少误报
-
行为特征检测
- 检测本站向多个外部网站短时间内发起请求的行为
- 不依赖JS文件内容特征,检测异常请求模式
-
内联脚本检测
- 针对直接在HTML中使用script标签写入JS代码的情况
- 分析DOM内容中的可疑脚本
-
非JSONP蜜罐检测
- 扩展检测其他类型的蜜罐技术
- 如服务蜜罐(mysql、redis、docker等)
攻防对抗思考
-
蜜罐的进化
- 商业蜜罐可能在被访问时就已触发报警
- 检测需要更快速、更前置
-
研究途径
- 实战中踩蜜罐后的逆向分析
- 服务甲方时的研究机会
- 安全研究人员间的信息共享
-
防御体系建设
- 将蜜罐检测工具集成到攻击工具链中
- 建立蜜罐特征库并持续更新
0x04 总结
本文详细分析了Web蜜罐利用JSONP获取信息的技术原理,并提供了基于浏览器插件的自动化检测方案。通过特征匹配和行为分析,可以有效识别和拦截大多数基于JSONP的信息窃取型蜜罐。然而,蜜罐技术也在不断进化,需要持续研究新的检测方法和防御策略。