Я пытаюсь создать ПО c, чтобы достичь следующего класса ошибок уязвимости в моем коде для моих исследований, основанного на топ-25 от cwe. Я получил следующий список из класса самых небезопасных ошибок кода, как Могу ли я реализовать Внеочередное чтение / За пределами записи в показанном коде, чтобы обойти защиту ASLR через утечки информации?
Information leak
Out-of-bounds Read
Use After Free
Integer Overflow or Wraparound
Out-of-bounds Write
Heap overflow
Единственный способ надежного обхода DEP и ASLR через утечку указателя. Это ситуация, когда значение в стеке в надежном месте может использоваться для поиска указателя используемой функции или гаджета ROP. Когда это сделано, иногда можно создать полезную нагрузку, которая надежно обходит оба механизма защиты.
#include <iostream>
using std::cout;
using std::endl;
class A
{
public:
void Func() { cout << "the address is: " << this <<endl; }
};
void Test(void)
{
A *p;
p->Func();
{
A a;
p = &a;
p->Func();
}
p->Func(); //dangling pointer
}
int main()
{
Test();
return 0;
}