不安全JSON解析在PHP中可导致代码执行,主要方式包括:一、eval动态执行;二、unserialize反序列化漏洞;三、键名反射调用函数;四、preg_replace /e修饰符注入;五、自动加载机制触发恶意类执行。
如果JSON数据在PHP环境中被不安全地解析,可能导致意外的代码执行。以下是实现JSON数据解析并触发PHP代码执行的几种方法:
该方法将JSON中预设的PHP代码字符串提取后,通过eval直接执行。此方式绕过常规JSON解码逻辑,直接将字段内容作为PHP指令运行。
1、构造包含PHP代码字符串的JSON,例如:{"cmd":"echo 'Hello'; system('id');"}。
2、使用json_decode解析JSON,获取cmd字段值。
3、对cmd字段内容进行基础校验(如白名单关键词过滤)后,用eval('?>' . $cmd)执行。
当JSON数据被错误地转换为PHP序列化格式并调用unserialize时,若存在可利用的魔术方法类,可能触发任意代码执行。
1、构造JSON数据,其值模拟序列化字符串结构,例如:{"data":"O:8:\"EvilClass\":1:{s:4:\"code\";s:12:\"system('ls');\";}"}。
2、将data字段值取出,替换JSON双引号与转义符,拼接为合法序列化字符串。
3、调用unserialize($malicious_str),触发__wakeup或__destruct中的危险操作。
该方法利用JSON对象键名作为函数名,值作为参数,结合call_user_func_array实现反射式执行。
1、构造JSON,例如:{"function_name":"exec","args":["whoami"]}。
2、使用json_decode解析为关联数组,提取function_name和args字段。
3、检查function_name是否在允许函数白名单内,确认后执行:call_user_func_array($func, $args)。
在旧版PHP中,若JSON中包含正则表达式模式与替换字符串,且解析后传入preg_replace并启用/e修饰符,可导致代码执行。
1、构造JSON,例如:{"pattern":"/.*/e","replacement":"phpinfo()"}。
2、解析JSON后取出pattern和replacement字段。
3、执行preg_replace($pattern, $replacement, 'test'),触发replacement中PHP代码解释执行。
当JSON解码为对象且属性被访问时,若存在__get或__set等魔术方法,并配合自动加载未定义类,可能触发恶意类文件包含与执行。
1、构造JSON,例如:{"class":"MaliciousPayload","param":"/tmp/shell.php"}。
2、使用json_decode($json, false)生成stdClass对象。
3、对该对象属性赋值或读取,触发自动加载机制,加载并实例化MaliciousPayload类,其构造函数中执行include $this->param。
# php
# js
# json
# 正则表达式
# echo
# 关联数组
# 构造函数
# include
# 字符串
# class
# 对象
# this
# 关键词
# 序列化
# 自动加载
# 键名
# 修饰符
# 不安全
# 转换为
# 可利用
# 旧版
# 更早
相关文章:
学校建站服务器如何选型才能满足性能需求?
建站之星代理平台如何选择最佳方案?
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
c# await 一个已经完成的Task会发生什么
如何基于PHP生成高效IDC网络公司建站源码?
建站之星客服服务时间及联系方式如何?
如何选择CMS系统实现快速建站与SEO优化?
红河网站制作公司,红河事业单位身份证如何上传?
python的本地网站制作,如何创建本地站点?
网站制作的方法有哪些,如何将自己制作的网站发布到网上?
如何通过云梦建站系统实现SEO快速优化?
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
如何通过远程VPS快速搭建个人网站?
如何快速生成可下载的建站源码工具?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
如何在云主机上快速搭建多站点网站?
焦点电影公司作品,电影焦点结局是什么?
小型网站制作HTML,*游戏网站怎么搭建?
清除minerd进程的简单方法
北京网站制作网页,网站升级改版需要多久?
如何在云服务器上快速搭建个人网站?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略
,巨量百应是干嘛的?
建站之星云端配置指南:模板选择与SEO优化一键生成
建站主机数据库如何配置才能提升网站性能?
c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】
高端网站建设与定制开发一站式解决方案 中企动力
C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)
建站主机核心功能解析:服务器选择与网站搭建流程指南
活动邀请函制作网站有哪些,活动邀请函文案?
教学论文网站制作软件有哪些,写论文用什么软件
?
已有域名和空间如何快速搭建网站?
如何在局域网内绑定自建网站域名?
如何在Golang中使用encoding/gob序列化对象_存储和传输数据
官网建站费用明细查询_企业建站套餐价格及收费标准指南
C#怎么创建控制台应用 C# Console App项目创建方法
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
建站之星如何配置系统实现高效建站?
弹幕视频网站制作教程下载,弹幕视频网站是什么意思?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
如何在阿里云购买域名并搭建网站?
简历在线制作网站免费版,如何创建个人简历?
如何高效配置香港服务器实现快速建站?
建站之星安装模板失败:服务器环境不兼容?
广州美橙建站如何快速搭建多端合一网站?
如何选择适合PHP云建站的开源框架?
*请认真填写需求信息,我们会在24小时内与您取得联系。