当前位置: 首页 > news >正文

淘宝电商平台网站扬州市广陵区建设局网站

淘宝电商平台网站,扬州市广陵区建设局网站,wordpress视频api,室内软装设计引言 在网络安全领域#xff0c;技术的研究与讨论是不断进步的动力。本文针对WordPress的一个对象注入漏洞进行分析#xff0c;旨在分享技术细节并提醒安全的重要性。特别强调#xff1a;本文内容仅限技术研究#xff0c;严禁用于非法目的。 漏洞背景 继WordPress CVE-2…引言 在网络安全领域技术的研究与讨论是不断进步的动力。本文针对WordPress的一个对象注入漏洞进行分析旨在分享技术细节并提醒安全的重要性。特别强调本文内容仅限技术研究严禁用于非法目的。 漏洞背景 继WordPress CVE-2022-21661注入漏洞之后安全研究人员又发现了一个严重的对象注入漏洞该漏洞允许具有管理员权限的用户通过修改特定的选项来获取服务器的shell访问权限。 影响范围 以下是受该漏洞影响的WordPress实例条件 WordPress版本低于5.8.3。启用了多站点模式。存在一条可用的反序列化链本文不展开讨论。 GitHub上的漏洞修复记录可以在此链接查看 环境搭建 为了复现此漏洞首先需要搭建一个符合条件的WordPress环境。可以通过以下命令获取漏洞修复前的WordPress源码 git clone https://github.com/WordPress/WordPress git checkout 7d20ea9漏洞分析 漏洞入口点 首先来到 wp-admin/upgrade.php这是管理员可以直接访问到的文件也是我认为的此漏洞的入口点。 跟进 wp_upgrade函数来到 wp-admin/includes/upgrade.php 首先看几个全局变量$wp_db_version在 wp-includes/version.php中定义根据其定义处的注释来看这是本安装程序的数据库版本在下一行中从数据库中取出了 db_version赋值给 $wp_current_db_version看这情况大概是一个是固定的数据库版本另一个是可变的upgrade.php会时不时地比较当发生改变时会进行一些操作 接下来看到我下的断点处进入 upgrade_all()函数 这里就是在将两个版本进行比较一致时不发生任何变化不一致时运行后面的代码接着看下面 根据从数据库中取出的 db_version也就是此处的 $wp_current_db_version的大小会进行不同的处理我们来关注断点处的 upgrade_280函数 看到 1611 行的 is_multisite()跟进 这是一个判断是否开启了多站点的函数这也是本漏洞的一个开启条件必须要开启多站点才可以。开多站点需要改配置文件我这里图省事儿直接改了判断条件 !is_multisite()强行让他绕过了 继续看上面进入循环每次从 wp_options表中取 20 条数据将每一条数据都进行反序列化漏洞的点就在此处了因为 wp_options中的数据大部分都是可控的我们可以通过管理员修改其值最后进入反序列化。 还有两个问题第一如何控制 db_version的值让他进入我们想要进入的函数第二如何更改 wp_options中的值。 数据写入 其实这两个是同一个问题一并解决wordpress后台没有直接访问所有 options的按钮但我们可以访问 wp-admin/options.php 这里可以更改 db_options中大部分的值包括 db_version我们将其修改为 10300就满足了进入漏洞函数的要求接下来我们尝试写入反序列化字符串 我们先随便选择一个选项写入反序列化字符串这里我首先选择的是 blogdescription也就是博客描述这个也可以在常规选项中更改更建议因为需要处理的值会更少调试没那么费力,post的数据会逐个进入 wp-includes/option.php中的 update_option来看几个比较重要的函数PS太长截图截不完 这里首先说明一下 $option是每个选项的键$value是每个选项的值 首先看到 sanitize_option 这个函数会根据不同的键来选择不同的处理方式比如一些一定会用整数的就会intval处理所以选择的选项也是有讲究的我之前选择的blogdescription就因为这个函数而无法使用他会将一些特殊字符编码导致无法正常反序列化这个可以慢慢尝试尽量选择这个函数不会进行太多处理的选项 最终我选择的是 wp-admin/options-writing.php中的 “密码”选择 options.php中的mailserver_pass也一样是同一个一般来说密码对字符都不会有太多的限制至少这里是的 回到之前的 update_option的代码稍微注意一下这里的比较 如果我们输入的选择没有发生改变就不会继续后面的代码继续往下走进入 wp-includes/functions.php中的maybe_serialize函数 如果是数组或者对象那么会直接序列化后返回。然后进入 is_serialized函数 这里会取字符串的第一个字符进行比较这里几乎囊括了反序列化字符串的所有类型遇到是这一些的返回后会再次反序列化也就是进行了二次反序列化这样几乎是防止了可能的反序列化。 这里遗漏了一个 C类型官方文档对他的描述是 custom object自定义对象这个以前几乎没有用到过因此这次进行了一次测试 代码 结果 同一个类将类型从 O修改为了 C反序列化运行后虽然报错但最后仍然会触发 __destruct方法因此我们可以将一个正常的反序列化字符串将第一个字符 O修改为 C这样就可以逃过这里的二次反序列化从而将我们的反序列化字符串写入数据库等待触发即可。 0x03 漏洞复现 本菜鸡找不到 wordpress的链子只能随意触发一个 __destruct意思意思 这里使用 wp-includes/Requests/Transport/cURL.php中的 Requests_Transport_cURL类 C:23:Requests_Transport_cURL:0:{}查看数据库并没有被二次序列化 来到wp-admin/options.php将 db_version修改为 10300 这里一个意外的发现修改数据库的时候就会触发漏洞入口 成功取出数据库中的反序列化串并且执行反序列化 触发 __destruct方法 总结 通过对WordPress对象注入漏洞的深入分析与复现我们发现漏洞的利用存在一定的复杂性。这不仅是对技术能力的挑战也是对安全意识的考验。在学习和研究过程中我们应始终保持谨慎和敬畏之心。 参考链接 GitHub漏洞利用代码仓库d5shenwu/vulPOC 关于 剑芸信息安全团队 剑芸信息安全团队成立于2022年9月我们是一个专注于互联网攻防技术研究的团队。我们的研究领域涵盖网络攻防、Web安全、移动终端安全、安全开发以及IoT/物联网/工控安全等。 想了解更多关于我们请继续关注。
http://www.hkea.cn/news/14424171/

相关文章:

  • 太原做网站联系方式郑州网站制作郑州网站制作
  • 网页制作与网站建设完全学习手册下载怀柔区企业网站设计机构提供
  • 遵义仁怀网站建设下载天眼查企业查询官网
  • 莆田建设信息网站基于多站点的网站内容管理平台的管理与应用
  • 网站cms是什么意思如何看待响应式网页设计
  • 移动网站制作价格wordpress首页设置错误
  • 福州仓前网站建设个人做的网站
  • 周年庆网站要怎么做淘宝客网站怎么做优化
  • 胶州网站建设培训163企业邮箱服务器怎么设置
  • 网站转化率大学网站方案设计
  • 企业网站推广的方法有搜索引擎推广网站建设销售该学的
  • dede仿手机网站模板做旅游攻略的网站
  • 石家庄搭建网站专注软件优化分享的网站
  • 2019年10月电子商务网站设计遵义专业网站建设公司电话
  • 青岛市黄岛区建设局网站泉州大型网站建设
  • 平潭综合实验区交通与建设网站苏州互联网公司工资
  • 合肥专业网站制作网站建设及维护价钱
  • 南阳网站运营摄影设计思路
  • 外贸网站建设开发南京做网站哪家公司最好
  • 建个网站费用生产型或服务型企业网站有哪些
  • 东盟建设工程有限公司网站wordpress启动慢
  • 网站建设和实现外贸服装网站建设
  • 深圳罗湖建网站WordPress搭建连不上数据库
  • 北京网站开发最专业的公司wordpress 3.5下载
  • 家乡网站建设策划书视频外链平台
  • 织带东莞网站建设技术支持网站建设周志200字
  • 网站安全狗服务名wordpress 列表排序
  • ps怎么做网站的广告条wordpress 作品相册
  • 企业网站建设规划方案精美的网站
  • 网站 空间地址是什么亚马逊云服务器