目录

1. wordpress插件漏洞

3. Ultimate Produce Catalogue插件SQL注入漏洞

3. Site Editor插件本地文件包含漏洞


1. wordpress插件漏洞

wordpress本身的安全性是比较完善的,通常安全审计中大部分的漏洞都是来自wordpress安装的第三方插件,wordpress并不保证这些插件的安全性,因为第三方插件都是由其他的开发者编写的,插件的安全性取决于开发者的水平和安全意识,毕竟每个开发者的安全意识是不一样的。

因此在进行wordpress漏洞挖掘的时候,从插件入手分析是一个不错的选择。

在分析wordpress插件漏洞的环境以及用到的插件:

Ultimate Produce Catalogue4.2.2插件的sql注入

site-editor1.1.1插件的本地文件包含

本次实验环境使用的是WordPress 4.9版本

Ultimate Produce Catalogue插件SQL注入漏洞实验环境的POC

/wp-admin/admin-ajax.php?action=get_upcp_subcategories

CatID=0 UNION SELECT 1,user()

CatID=0 UNION SELECT user_login,user_pass from wp_users where id=1

3. Ultimate Produce Catalogue插件SQL注入漏洞

搭建好漏洞环境后,登录wordpress后台后,在左侧点击插件---> 安装插件:

安装插件的时候选择zip格式的文件,安装完成后启用插件

安装完插件后需要登录用户账号,然后访问http://www.test2.com/wp-admin/admin-ajax.php?action=get_upcp_subcategories,并提交数据:

Post data中是一段sql注入代码,查询当前数据库的用户,点击Execute提交数据后,后台返回了数据库的用户名信息。

接着我们就可以构造sql注入语句爆出用户名和密码,但是密码是经过加密的:

接下来我们分析插件产生漏洞的原因。

先找到wordpress的插件的目录,找到安装的插件ultimate-product-catalogue,再定位到get_upcp_subcategories函数(路径为plugins\ultimate-product-catalogue\Functions\Process_Ajax.php)

get_upcp_subcategories函数具体实现:

function Get_UPCP_SubCategories() {global $subcategories_table_name;$Path = ABSPATH . 'wp-load.php';include_once($Path);global $wpdb;$SubCategories = $wpdb->get_results("SELECT SubCategory_ID, SubCategory_Name FROM $subcategories_table_name WHERE Category_ID=" . $_POST['CatID']);foreach ($SubCategories as $SubCategory) {$Response_Array[] = $SubCategory->SubCategory_ID;$Response_Array[] = $SubCategory->SubCategory_Name;}if (is_array($Response_Array)) {$Response = implode(",", $Response_Array);}else {$Response = "";}echo $Response;
}

get_upcp_subcategories函数内部只接收了一个CatID数据,而CatID中的数据就是我们提交的sql注入语句,代码中没有对CatID中的内容进行任何安全过滤,直接将CatID拼接到sql语句中执行,将查询到的数据库用户名保存到$SubCategories变量中。

漏洞修复:对传入的数据进行预处理再拼接成sql语句

$wpdb->get_results($wpdb->prepare( "SELECT * FROM {$wpdb->comments} WHERE comment_ID = %d", $comment_id))

3. Site Editor插件本地文件包含漏洞

poc:

/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=../../../../../../../test.txt

Site Editor插件的安装方式和前面的一样。如果提示文件过大,把Site Editor插件解压到\wp-content\plugins目录下,然后在wordpress的后台的插件一栏中启用Site Editor。

利用site editor插件的本地文件包含漏洞通过../来读取test.txt文本的内容,最终构造的url格式:

把test.txt文件名进行替换就可以读取其它文件,例如读取wp-config.php:

http://www.test2.com/wp-content/plugins/site-editor/editor/extensions/pagebuilder/includes/ajax_shortcode_pattern.php?ajax_path=../../../../../../../wp-config.php

接下来我们分析Site Editor插件的本地文件包含漏洞产生的原因。找到\plugins\site-editor\editor\extensions\pagebuilder\includes\ajax_shortcode_pattern.php文件

    //判断是否是文件,文件是否存在
if( isset( $_REQUEST['ajax_path'] ) && is_file( $_REQUEST['ajax_path'] ) && file_exists( $_REQUEST['ajax_path'] ) ){//如果存在直接包含文件require_once $_REQUEST['ajax_path'];
}else{echo json_encode( array('success' => false,'message' => "Error: didn't load shortcodes pattern file",));return ;
}

我们可以看到上面的代码只是对ajax_path参数中的内容进行了简单的判断,并没有做任何安全校验,这才导致了本地文件包含漏洞。

漏洞修复:使用白名单对提交的参数过滤。

7-PHP代码审计——wordpress插件漏洞分析相关推荐

  1. 墨者WordPress插件漏洞分析溯源

    总结:整个流程就算发现这是wordpress然后用专门的wpscan去扫漏洞,然后发现的了插件漏洞,然后利用整个插件漏洞来植入后门,然后获取key文件 思路:尝试绕过登录,进入页面发现不行,然后面向搜 ...

  2. wordpress插件翻译不生效_新的恶意软件利用wordpress插件漏洞攻击数百万网站

    研究人员发现,正在进行的一项针对数百万WordPress网站的恶意攻击活动,目的是利用后门和各种WordPress插件漏洞进行感染. 据wordpress统计,wordpress内容管理系统提供了近6 ...

  3. WordPress 插件漏洞被利用,近 20 万站点还没打补丁

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   攻击者正在利用两个广泛使用的 WordPress 插件中的严重漏洞,以入侵托管站点,影响站点数量众多. 前几天我们才报导过流量排名前一千万网 ...

  4. struts2 ajax上传文件 file空_WordPress插件漏洞分析:WPDiscuz任意文件上传漏洞

    写在前面的话 就在不久之前,Wordfence的威胁情报团队在一款名叫wpDiscuz的Wordpress评论插件中发现了一个高危漏洞,而这款插件目前已有超过80000个网站在使用了.这个漏洞将允许未 ...

  5. 代码审计之DocCms漏洞分析

    0x01 前言 DocCms[音译:稻壳Cms] ,定位于为企业.站长.开发者.网络公司.VI策划设计公司.SEO推广营销公司.网站初学者等用户 量身打造的一款全新企业建站.内容管理系统,服务于企业品 ...

  6. Metasploit训练营中,Zingiri Web Shop插件漏洞分析

    Wordpress Zingiri Plugin <= 2.2.3(ajax_save_name.php) Remote Code Excution 如下: <?php error_rep ...

  7. 黑客在数十个 WordPress 插件和主题中插入秘密后门,可发动供应链攻击

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全 ...

  8. 【漏洞复现】WordPress插件Quizlord 2.0 XSS漏洞复现与分析

    年后趁着需要做安全测试系统不多的这个空档,学学python到处逛逛复现复现和分析一些简单的漏洞 --from Lyricbao 0x00 复现环境 phpstudy wordpress 4.4版本 Q ...

  9. wordpress漏洞_多个WordPress插件SQL注入漏洞分析

    背景 SQL注入漏洞是用来构建SQL查询的用户输入未经适当处理导致的漏洞.比如: 图1: 使用WordPress的SQL查询示例 从上面的代码来看,其中存在SQL注入攻击漏洞,因为从$_GET中提取的 ...

最新文章

  1. python安装步骤图解-Python安装-小白图文教程(精)
  2. hdu1261 JAVA
  3. C#实现动态生成Word
  4. IDA Pro7.0使用技巧总结使用
  5. 【项目管理】项目问题应对思路
  6. php环境搭建(php5.5.8+apache2.4)
  7. 【自己看的笔记】Unity基础操作认识
  8. 细数门店客流量统计的那些技术
  9. 开源OA协同办公平台搭建教程丨模糊人员匹配功能配置说明
  10. 米思齐Mixly图形化编程---呼吸灯与可调档位灯
  11. springboot学习笔记1——springboot初始化
  12. 反垃圾邮件 linux,Linux中Postfix反病毒和垃圾邮件工具(十)
  13. 怦然心动(Flipped)-3
  14. android 取消蓝牙配对框 实现自动配对,Android 取消蓝牙配对框实现自动配对功能...
  15. 【小程序源码】uni-app云开发的网盘助手抓取网盘资源
  16. 音视频开发进阶|第七讲:分辨率与帧率·上篇
  17. 统计学——几种常见的假设检验
  18. Rust GUI 编程漫谈:超越 Web 与原生 GUI
  19. rd授权管理器不显示服务器,2008 r2 找不到RD授权管理器
  20. EasyUI之表单验证

热门文章

  1. 平安租赁面试java_2019平安租赁面试经验(资产运作,企业融资部等)
  2. Android高级架构师系统学习——Android-音频可视化,程序员怎样优雅度过35岁中年危机
  3. 工作!!工作!!!工作!!!!
  4. 【环境配置】macOS的Xcode中使用C++万能头文件bits/stdc++.h
  5. mxnet的rec数据中还原图片
  6. HTML在线解析UBB代码小工具:DISCUZ UBB互相转换为HTML
  7. vue中实现打印功能的方法与注意事项
  8. 一文理解JVM虚拟机(内存、垃圾回收、性能优化)解决面试中遇到问题
  9. VBA 连接ACCESS数据库
  10. # 关于Qt程序异常结束, The process was ended forcefully问题