006
16.12.2003, 22:33 Uhr
0xdeadbeef
Gott (Operator)
|
Also gut. system selbst verursacht keinen Buffer overflow. Es kann aber unter Umständen sein, dass, wenn ein Buffer overflow auftritt, system als Einbruchsstelle genutzt wird. Wenn du zum Beispiel einen String auf dem Stack hast, der an system übergeben werden soll, kann ein Angreifer durch einen Buffer overflow irgendetwas in diesen String reinschreiben und damit ein beliebiges Programm auf dem Rechner ausführen.
Was system selbst angeht, da zitiere ich am besten die Manpage:
Zitat: |
Benutze nicht system() von einem Programm mit suid- oder sgid-Privilegien aus, da unbekannte Werte für einige Umgebungsvariablen benutzt werden könnten, die die Sys- temintegrität angreifen können. Benutze stattdessen die Funktionsfamilie exec(2), jedoch nicht execlp(2) oder execvp(2).
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |