关于检测web蜜罐利用jsonp获取信息的一些想法
字数 1128 2025-08-19 12:41:54

检测Web蜜罐利用JSONP获取信息的技术分析与防御方法

0x00 引言

本文详细分析商业蜜罐如何利用JSONP接口窃取攻击者信息的技术原理,并提供相应的检测与防御方法。重点针对蜜罐通过JavaScript脚本调用JSONP接口获取攻击者信息的过程进行剖析。

0x01 蜜罐技术概述

现代商业Web蜜罐通常采用以下关键技术:

  1. JSONP接口配置

    • 预先配置JSONP接口信息
    • 生成对应的JavaScript文件(固定或动态URL)
  2. 蜜罐网站配置

    • 仿站技术(扒取目标站点静态页面,功能不可用)
    • 二次修改后的源码(功能可用但数据全为假数据或精简版源码)
  3. 信息收集机制

    • 将配置好的JSONP接口JS文件URL插入蜜罐静态文件中
    • 访问者打开蜜罐网站时自动加载并执行JS脚本
    • 调用JSONP接口将攻击者数据回传至蜜罐后端

0x02 检测与防御实现方案

检测流程

  1. 打开网页
  2. 查看源代码
  3. 查找所有引用的JS文件
  4. 检查JS文件是否有蜜罐特征

浏览器插件实现方案

通过开发浏览器插件实现自动化检测和拦截:

核心功能

  1. 规则订阅系统

    • 定义JSON格式的检测规则
    • 规则结构示例:
    {
      "test111": [
        {
          "filename": "xss.min.js",
          "content": "hello"
        }
      ],
      "test222": [
        {
          "filename": "main.js",
          "content": "word"
        }
      ]
    }
    
    • filenamecontent可使用通配符*表示任意匹配
  2. 缓存处理机制

    • 设置短时间缓存(避免从缓存加载已拦截的JS文件)
    • 使用chrome.browsingData.removeCache清除近期缓存
  3. 请求拦截系统

    • 使用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 深入思考与扩展

检测方法优化方向

  1. 基于哈希值的检测

    • 计算蜜罐特征文件的哈希值进行匹配
    • 提高检测准确率,减少误报
  2. 行为特征检测

    • 检测本站向多个外部网站短时间内发起请求的行为
    • 不依赖JS文件内容特征,检测异常请求模式
  3. 内联脚本检测

    • 针对直接在HTML中使用script标签写入JS代码的情况
    • 分析DOM内容中的可疑脚本
  4. 非JSONP蜜罐检测

    • 扩展检测其他类型的蜜罐技术
    • 如服务蜜罐(mysql、redis、docker等)

攻防对抗思考

  1. 蜜罐的进化

    • 商业蜜罐可能在被访问时就已触发报警
    • 检测需要更快速、更前置
  2. 研究途径

    • 实战中踩蜜罐后的逆向分析
    • 服务甲方时的研究机会
    • 安全研究人员间的信息共享
  3. 防御体系建设

    • 将蜜罐检测工具集成到攻击工具链中
    • 建立蜜罐特征库并持续更新

0x04 总结

本文详细分析了Web蜜罐利用JSONP获取信息的技术原理,并提供了基于浏览器插件的自动化检测方案。通过特征匹配和行为分析,可以有效识别和拦截大多数基于JSONP的信息窃取型蜜罐。然而,蜜罐技术也在不断进化,需要持续研究新的检测方法和防御策略。

检测Web蜜罐利用JSONP获取信息的技术分析与防御方法 0x00 引言 本文详细分析商业蜜罐如何利用JSONP接口窃取攻击者信息的技术原理,并提供相应的检测与防御方法。重点针对蜜罐通过JavaScript脚本调用JSONP接口获取攻击者信息的过程进行剖析。 0x01 蜜罐技术概述 现代商业Web蜜罐通常采用以下关键技术: JSONP接口配置 预先配置JSONP接口信息 生成对应的JavaScript文件(固定或动态URL) 蜜罐网站配置 仿站技术(扒取目标站点静态页面,功能不可用) 二次修改后的源码(功能可用但数据全为假数据或精简版源码) 信息收集机制 将配置好的JSONP接口JS文件URL插入蜜罐静态文件中 访问者打开蜜罐网站时自动加载并执行JS脚本 调用JSONP接口将攻击者数据回传至蜜罐后端 0x02 检测与防御实现方案 检测流程 打开网页 查看源代码 查找所有引用的JS文件 检查JS文件是否有蜜罐特征 浏览器插件实现方案 通过开发浏览器插件实现自动化检测和拦截: 核心功能 规则订阅系统 定义JSON格式的检测规则 规则结构示例: filename 和 content 可使用通配符 * 表示任意匹配 缓存处理机制 设置短时间缓存(避免从缓存加载已拦截的JS文件) 使用 chrome.browsingData.removeCache 清除近期缓存 请求拦截系统 使用 chrome.webRequest.onBeforeRequest 监听器 对 script 类型请求进行拦截检查 核心代码实现 0x03 深入思考与扩展 检测方法优化方向 基于哈希值的检测 计算蜜罐特征文件的哈希值进行匹配 提高检测准确率,减少误报 行为特征检测 检测本站向多个外部网站短时间内发起请求的行为 不依赖JS文件内容特征,检测异常请求模式 内联脚本检测 针对直接在HTML中使用script标签写入JS代码的情况 分析DOM内容中的可疑脚本 非JSONP蜜罐检测 扩展检测其他类型的蜜罐技术 如服务蜜罐(mysql、redis、docker等) 攻防对抗思考 蜜罐的进化 商业蜜罐可能在被访问时就已触发报警 检测需要更快速、更前置 研究途径 实战中踩蜜罐后的逆向分析 服务甲方时的研究机会 安全研究人员间的信息共享 防御体系建设 将蜜罐检测工具集成到攻击工具链中 建立蜜罐特征库并持续更新 0x04 总结 本文详细分析了Web蜜罐利用JSONP获取信息的技术原理,并提供了基于浏览器插件的自动化检测方案。通过特征匹配和行为分析,可以有效识别和拦截大多数基于JSONP的信息窃取型蜜罐。然而,蜜罐技术也在不断进化,需要持续研究新的检测方法和防御策略。