Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Funktion system();

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
16.12.2003, 21:42 Uhr
~babysitter
Gast


Wie kann man mit der funktion system() einen Buffer overflow erzeugen. Geht das überhaupt ? Ich habe gelesen das man die funktion maiden sollte. Wieso ??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.12.2003, 21:52 Uhr
0xdeadbeef
Gott
(Operator)


Nein, system kann keinen Buffer overflow erzeugen; zumindest nicht direkt. Schreibt ja in keine Strings.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.12.2003, 21:53 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


benutz die funktion mal folgendermaßen:

my_prog.cpp

C++:
int main(void)
{
  system("my_prog");
}






(gibt zwar keinen buffer overflow, nur 'n rechner-abschiess-unter-windows
--
class God : public ChuckNorris { };

Dieser Post wurde am 16.12.2003 um 21:53 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.12.2003, 21:55 Uhr
0xdeadbeef
Gott
(Operator)


Ja, aber es bringt ja nichts. Ich kann mir schon denken, worauf die Frage abzielt, aber bevor ich das schreibe, möchte ich wissen, wozu er das braucht. Ich will kein weiteres Scriptkiddie erschaffen.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.12.2003, 21:59 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat:
0xdeadbeef postete
Ja, aber es bringt ja nichts.

Ab WinXP wird der Rechner bei obigen Programm nur langsamer (wird er auch ohne Ausführen des programms ), also hast du da ziemlich recht
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.12.2003, 22:08 Uhr
~babysitter
Gast


Also, eigentlich geht es mir um das Gegenteil - Schutz und Sicherheit.ich habe das Openbook gelesen über c-programmierung auf www.pronix.de
Und da sind mehrere funktionen erwähnt die man nicht benutzen sollte bzw. funktionen die man benutzen kann da sie die Strings kontrolieren. Zum schluss ist diese funktion aufgeführt , jedoch steht nirgendswo eine Erklärung _wieso_ man sie nicht benutzen soll.
Schaut selber nach:
www.pronix.de/index.php?site=C/standard_C/c_programmierung_26
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
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
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.12.2003, 22:34 Uhr
Pablo
Supertux
(Operator)



Zitat:
~babysitter postete
Wie kann man mit der funktion system() einen Buffer overflow erzeugen. Geht das überhaupt ? Ich habe gelesen das man die funktion maiden sollte. Wieso ??


Wozu willst du ein Buffer overflow erzeugen? Hast du vor nen Virus zu schreiben?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.12.2003, 22:54 Uhr
~babysitter
Gast


Es ist erstaunlich wie einfach man zum Hacker werden kann. Man bekommt alles schön erklärt. So jetzt muss ich nur noch zusehen wie ich das umsetze.









War natürlich Spass. Danke für Erklärung
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.12.2003, 23:11 Uhr
0xdeadbeef
Gott
(Operator)


Hacker != Cracker. Cracker sind zum allergrößten Teil Idioten, die ein fertiges rootkit über einen öffentlich bekannten exploit, wahrscheinlich mit einem Programm, das jemand anderes geschrieben hat, auf Rechnter mit veralteter oder schlecht konfigurierter Software platzieren und sich dann einen Keks freuen. Und was haben sie davon? Die Anerkennung von unfähigen Scriptkiddies, die sich auf ähnliche Arten und Weisen ihre Mail-Viren zusammenklicken. Ich finde das eigentlich ziemlich kindisch.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: