-
Notifications
You must be signed in to change notification settings - Fork 14.4k
Adds auxiliary module for Pretalx File Read (CVE-2023-28459) #20404
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Adds auxiliary module for Pretalx File Read (CVE-2023-28459) #20404
Conversation
Thanks for your pull request! Before this can be merged, we need the following documentation for your module: |
Hi @msutovsky-r7 ! Here you have the doc you asked for. Have a good day :) |
|
||
fail_with(Msf::Module::Failure::Unknown, 'Could not found hidden inputs: creating profile info') unless submit_uri && csrf_token | ||
|
||
Rex::Text.rand_text_alphanumeric(16).to_s |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Rex::Text.rand_text_alphanumeric(16).to_s |
cookie_jar.clear | ||
|
||
vprint_status("Logging with credentials: #{datastore['EMAIL']}/#{datastore['PASSWORD']}") | ||
fail_with Failure::NoAccess, 'Incorrect credentials' unless login(datastore['EMAIL'], datastore['PASSWORD']) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fail_with Failure::NoAccess, 'Incorrect credentials' unless login(datastore['EMAIL'], datastore['PASSWORD']) | |
fail_with(Failure::NoAccess, 'Incorrect credentials') unless login(datastore['EMAIL'], datastore['PASSWORD']) |
|
||
vprint_status('Wait for schedule ZIP to be exported') | ||
|
||
sleep(5) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could you make this a datastore option?
I'm using |
This PR adds auxiliary file read module that exploits CVE-2023-28459. This PR should be merged before #20413.
Vulnerable Application
Pretalx is a web-based conference planning tool, used to manage call for paper submissions, talk selection and so on. It used by many major IT conferences - such as OffensiveCon, Hexacon,... Versions 2.3.1 and prior are vulnerable to arbitrary file read, which exploits unsanitized path in schedule export. The module requires set of credentials of Pretalx user and Pretalx needs to have existing conference, where the attacker can submit malicious proposal.
Installation steps:
git clone https://github.com/pretalx/pretalx-docker.git
docker-compose.yml
to following:sudo docker-compose up
orga/event/
orga/event/[conference name]/schedule/rooms/
orga/event/[conference name]/
sudo docker exec -u 0 -it pretalx /bin/bash
/data
folder, sopretalx
user can write export thereVerification Steps
use auxiliary/scanner/http/pretalx_file_read_cve_2023_28459
set CONFERENCE_NAME [conference name]
set USERNAME [username]
set PASSWORD [password]
set RHOSTS [target IP address]
run
Options
CONFERENCE_NAME
The slug (shortcut) name of the conference. The module requires existing conference, where an attacker can submit malicious proposal (e.g. conference-secret-2025)
FILEPATH
Absolute path to the target file.
MEDIA_URL
Pretalx uses path to
media
folder, which is used as prepend to target file path to achieve arbitrary file read. The default value is/media
, however, it can be modified by user.USERNAME
Username of Pretalx user that can approve proposals and release schedule.
PASSWORD
Password of Pretalx user that can approve proposals and release schedule.
Scenarios