Warum sind 38C3 Tickets so teuer?

Im Dezember findet in Hamburg der 38C3 statt. Die Tickets werden mindestens 175€ kosten und es gibt keinen Studentenrabatt.

Ich wäre gerne hin gegangen, kann mir solche absurden Preise aber überhaupt nicht leisten. Hinzu kämen noch Fahrtkosten (z.B. 29€/49€ Ticket), Kosten für die Übernachtung (außer man schläft in ÖPNV Fahrzeugen oder bei ONSs, um Geld zu sparen) und Mehrkosten für Essen. Dafür kann der CCC zwar nichts, aber die Gesamtkosten wären sehr hoch, sodass ein Besuch für viele finanziell unmöglich ist. Ich kann jedenfalls nicht hin gehen und werde mir die Vorträge stattdessen später auf Youtube ansehen.

Ich dachte, der CCC sei ein gemeinnütziger Verein und die meisten Mitglieder wären links und antikapitalistisch. Deshalb kann ich nicht verstehen, warum ein Ticket für so eine Hackerkonferenz mehr als doppelt so viel kostet wie für ein FC Bayern München Spiel in der besten Sitzplatzkategorie. Ich frage mich auch, wer von diesen hohen Ticketpreisen profitiert. Soweit ich weiß, wird die Veranstaltung größtenteils von Freiwilligen organisiert, die dafür nicht mal bezahlt werden. Das finde ich schon sehr dreist.

Weiß vielleicht jemand von euch, warum sich der CCC für so hohe Ticketpreise entschieden hat? Wollen sie vielleicht nicht, dass die Veranstaltung von armen Studenten überlaufen wird, sodass die erfahrenen (und gutverdienenden) Hacker unter sich bleiben können? Wird dadurch nicht ein Nachwuchsproblem geschaffen? Warum sucht der CCC keine Sponsoren, um günstigere Tickets anbieten zu können?

Computer, hacken, Geld, Hack, Verein, Hamburg, gemeinnützig, Gemeinnützigkeit, Großveranstaltung, Großveranstaltungen, Hacker, Hacking, Informatik, IT-Sicherheit, Kapitalismus, teuer, Ticket, Veranstaltung, Konferenz, Kongress, Ticketpreise, dreist, Dreistigkeit, Gemeinnütziger Verein, Überteuert, versammlung
Wie kriege ich mit ROP einen "/bin/sh" Pointer in rdi?

Ich versuche, rücksprungorientierte Programmierung (ROP) zu lernen.

Und zwar habe ich ein Programm mit einem Pufferüberlauf auf dem Stack, und ich möchte das Programm dazu bringen, /bin/sh zu öffnen.

Das geht mit dem execve Syscall, wenn ich die richtigen Instruktionen finden kann, um die Funktionsparameter vorzubereiten. Das ist die Signatur von execve:

int execve(const char *pathname, char *const _Nullable argv[], char *const _Nullable envp[]);

Also muss ich die folgenden Register setzen:

  • rax = 0x3b (Syscallnummer von execve)
  • rdi = "/bin/sh" Pointer
  • rsi = NULL
  • rdx = NULL

Die folgenden Instruktionen habe ich bereits gefunden:

pop rax ; ret
pop rdi ; ret
pop rsi ; ret
pop rdx ; ret
syscall

Ich kann also die Instruktionen und Registerwerte mit dem Pufferüberlauf auf den Stack schreiben und so meine Register füllen. Das Problem ist aber, dass ich einen "/bin/sh" Pointer in rdi brauche (also nicht "/bin/sh" im Register, sondern eine Speicheradresse, an der "/bin/sh" steht).

Ich kann natürlich "/bin/sh" in den Puffer auf dem Stack schreiben, aber leider ist die Speicheradresse jedes Mal anders und ich kenne sie vorher nicht.

Ich weiß, dass "/bin/sh" in libc vorkommt, aber auch dort ist die Speicheradresse jedes Mal anders und ich kenne sie vorher nicht.

Wie komme ich also an einen "/bin/sh" Pointer? Gibt es Tricks oder bestimmte Instruktionen, nach denen ich mich umsehen sollte?

hacken, Hack, Programm, programmieren, pointer, Assembler, Hacker, Hacking, Informatik, IT-Sicherheit, Shell, stack, x64, Exploit, hacken lernen, IT-Sicherheitsexperte, Register, Capture The Flag

Meistgelesene Beiträge zum Thema Hack