一次性付费进群,长期免费索取资料。
进微信群回复公众号:微信群;QQ群:460500587
教程列表 见微信公众号底部菜单 | 本文底部有推荐书籍微信公众号:计算机与网络安全
ID:Computer-network
JSON是一种轻量级的数据交换方式,也是一种基于文本的数据交换方式。JSON也是一种数据结构,类似于txt、Excel及XML等文本。无论是前端语言中的JavaScript还是后端语言,JSON都可以作为一个对象来读写。如此一来,开发者就可以很方便地管理并读写所需要的数据。而且,前端语言与后端语言的数据读写行为彼此独立。只要后端语言返回的JSON格式不变,前端语言就能正常显示;只要前端语言传输的JSON格式不变,后端语言处理逻辑也不会变。
JSON其实就是一个更具有一般意义的管理数据的格式,只要这个格式不变,格式中的内容可以随意改变而不会改变整体的格式。
我们来介绍下JSON的安全问题。当程序在解析JSON数据的时候,若该JSON数据没有做安全过滤或者被攻击者植入了恶意数据,那么这些恶意数据很可能在程序中会被当作代码来执行,这样就造成了JSON注入。攻击者可以将任意数据注入JSON中,包括SQL注入漏洞攻击数据、跨站脚本漏洞攻击数据及任意文件读取数据等。
如果某站存在JSON注入漏洞,攻击者就能使用Burp Suite截取JSON传输的数据包,如图1所示。
图1 截取JSON传输数据包
将该数据包发送至Web服务器,Web服务器返回信息如图2所示。
图2 JSON请求返回信息
由图2可见,Web服务器向客户端返回了JSON数据。于是,攻击者可以在JSON中注入数据试试,向JSON数据中注入跨站脚本漏洞攻击代码,如图3所示。
图3 注入跨站脚本漏洞攻击代码
攻击者将已注入跨站脚本漏洞攻击代码的数据包发送至Web服务器,Web服务器返回信息如图4所示。
图4 注入跨站脚本漏洞攻击代码的JSON请求返回信息
由图4可见,这里的反斜杠被Web服务器进行了安全转义处理,无法进行JSON注入。此时,攻击者进入Web服务器,关闭Web服务器上的安全转义。于是,我们使用浏览器重现一下刚才JSON注入的效果,JSON注入成功,如图5所示。
图5 JSON注入成功
微信公众号:计算机与网络安全
ID:Computer-network
【推荐书籍】