Mam aplikacje ktora posiada SUID i chcialem ja zaatakowac metoda LD_PRELOAD, ale wszedzie w internecie jest napisane, ze aplikacje z suidem ignoruja ta zmienna srodowiskowa ale nie jest sprecyzowane w jaki sposob, i w zwiazku z tym mam pytanie. Gdy program z suidem jest uruchamiany to kernel usuwa lub ignoruje ta i inne zmienne srodowiskowe ? Czy to program z suidem musi posiadac mechanizm wykrywania czy takie zmienne sa zanicjowane i musi je usuwac za pomoca funkcji np. setenv(), unsetenv() ?
Prosze jeszcze mnie uswiadomic, czy dobrze mysle, iz ponizszy kawalek kodu mozna obejsc metoda 'race condition' + ptrace ? Mysle, ze mozna wykonac program do momentu execve, zatrzymac program za pomoca ptrace, ustawic zmienna srodowiskowa LD_PRELOAD z moja biblioteka i kontynuowac program, czy to zadziala ?
unsetenv( "LD_LIBRARY_PATH" );
unsetenv( "LD_PRELOAD" );
execve ("script.bash", argv, environ);