中国建设银行英文网站,wordpress缓存插件对比,打金新开传奇网站,58同城网站模板下载关于jsmug
jsmug是一个代码简单但功能强大的JSON Smuggling技术环境PoC#xff0c;该工具可以帮助广大研究人员深入学习和理解JSON Smuggling技术#xff0c;并辅助提升Web应用程序的安全性。 背景内容
JSON Smuggling技术可以利用目标JSON文档中一些“不重要”的字节数据实…关于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_pairBase4符号字节会被成对划分并存放到JSON文档中的指定位置。通过指定应该存放在一起的字节数据的数量我们还可以用其来测试网络安全检测规则的有效性。
工具下载编译
由于该工具基于纯C语言开发因此我们首先需要在本地设备上暗安装并配置好C语言环境或直接安装gcc编译器。
接下来广大研究人员可以直接使用下列命令将该项目源码克隆至本地
git clone https://github.com/xscorp/jsmug.git
然后切换到项目目录中使用gcc编译器完成代码编译
$ cd jsmug$ gcc jsmug.c -o ./jsmug
工具使用
编码文件
我们可以使用下列密令对一个输入文件进行编码并将编码后的结果输出保存到另一个文件中
$ ./jsmug encode input_file_name output_file_name bytes_per_pair
在下面的代码示例中我们将naabu代码编码进了一个JSON文件中输出文件名称为“sweet-document.json” 解码文件
我们可以使用下列命令对一个已编码的文件进行解码并将输出的结果保存到另一个文件中
$ ./jsmug decode encoded_file_name output_file_name
使用演示
$ ./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