码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • jsmug:一个针对JSON Smuggling技术的测试PoC环境


    关于jsmug

    jsmug是一个代码简单但功能强大的JSON Smuggling技术环境PoC,该工具可以帮助广大研究人员深入学习和理解JSON Smuggling技术,并辅助提升Web应用程序的安全性。

    背景内容

    JSON Smuggling技术可以利用目标JSON文档中一些“不重要”的字节数据实现任意文件传输。根据JSON文档的官方定义,JSON文件中的某些位置允许使用被称为不重要字节的字节数据来传输内容。这些所谓不重要的字节在JSON文档中没有任何的意义,因此会被jq之类的JSON解析工具直接忽略。这种“不重要”的字节包括:

    0x09(水平制表符)

    0x0a(新行)

    0x0d(回车)

    0x20(空格)

    这些字节本身就不起眼,甚至根本就不是肉眼可见的,而且JSON解析器也会直接忽略这些字节,因此这4个字节可以用来编码任意数据或文件。与我们使用Base2系统以二进制格式表示数据相同,我们可以使用Base4系统使用这4个字节来表示数据:

    上图中的数据显示了原始字节是如何以Base4表示的,接下来这些Base4字节被映射到它们各自的“不重要字节”的部分。根据指定的bytes_per_pair,Base4符号字节会被成对划分,并存放到JSON文档中的指定位置。通过指定应该存放在一起的字节数据的数量,我们还可以用其来测试网络安全检测规则的有效性。

    工具下载&编译

    由于该工具基于纯C语言开发,因此我们首先需要在本地设备上暗安装并配置好C语言环境,或直接安装gcc编译器。

    接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

    git clone https://github.com/xscorp/jsmug.git

    然后切换到项目目录中,使用gcc编译器完成代码编译:

    $ cd jsmug
    
    $ gcc jsmug.c -o ./jsmug

    工具使用

    编码文件

    我们可以使用下列密令对一个输入文件进行编码,并将编码后的结果输出保存到另一个文件中:

    $ ./jsmug encode   

    在下面的代码示例中,我们将naabu代码编码进了一个JSON文件中,输出文件名称为“sweet-document.json”:

    解码文件

    我们可以使用下列命令对一个已编码的文件进行解码,并将输出的结果保存到另一个文件中:

    $ ./jsmug decode  

    使用演示:

    $ ./jsmug decode ./encoded-binary.json decoded-binary

    在下面的代码示例中,我们对之前生成的“sweet-document.json”JSON文件进行解码,并获取原始的naabu代码,然后将其标识为“decoded-binary”:

    项目地址

    jsmug:【GitHub传送门】

    参考资料

    RFC 8259 - The JavaScript Object Notation (JSON) Data Interchange Format

    https://grimminck.medium.com/

    https://grimminck.medium.com/json-smuggling-a-far-fetched-intrusion-detection-evasion-technique-51ed8f5ee05f

  • 相关阅读:
    Ubuntu 22.04上安装Anaconda,及 conda 的基础使用
    骨传导耳机是怎么传声的?骨传导耳机到底有哪些好处?
    大数据必学Java基础(二):Java核心机制
    阿里云高校计划学生认证领无门槛代金券和教师验证方法
    【WPF】实现动态切换语言(国际化)以及动态换肤功能
    GO语言容器大全(附样例代码)
    无需公网IP,如何远程访问内网SVN服务?
    卧槽Winform也可以这么好看?
    在linux(centos7)部署xxl-job的过程
    Google Earth Engine(GEE)——多源遥感变量筛选(PCA主成分分析),变量筛选/降维处理
  • 原文地址:https://blog.csdn.net/FreeBuf_/article/details/139326060
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号