Hacking und Bug Hunting
eBook - ePub

Hacking und Bug Hunting

Wie man Softwarefehler aufspürt und damit Geld verdient – ein Blick über die Schulter eines erfolgreichen Bug Hunters

Peter Yaworski, Peter Klicman

  1. 269 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub

Hacking und Bug Hunting

Wie man Softwarefehler aufspürt und damit Geld verdient – ein Blick über die Schulter eines erfolgreichen Bug Hunters

Peter Yaworski, Peter Klicman

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Bugs in Websites aufspüren, Gutes tun, Spaß dabei haben... und Geld verdienenEin praktischer Leitfaden für die Suche nach SoftwarefehlernEin Blick hinter die Kulissen: Sie sehen, wie professionelle Bughunter vorgehenEine Anleitung, wie man mit Bughunting Geld verdientLernen Sie, wie Hacker Websites knacken und wie auch Sie das tun können.Dieses Buch ist ein praktischer Leitfaden für die Suche nach Software-Bugs. Egal ob Sie in die Cybersicherheit einsteigen, um das Internet zu einem sichereren Ort zu machen, oder ob Sie als erfahrener Entwickler sichereren Code schreiben wollen – Peter Yaworski, ein überzeugter "Ethical Hacker", zeigt Ihnen, wie es geht.Sie lernen die gängigsten Arten von Bugs kennen, wie Cross-Site-Scripting, unsichere Objekt-Referenzen oder Server-Side Request-Forgery. Echte Fallbeispiele aufgedeckter und entlohnter Schwachstellen in Anwendungen von Twitter, Facebook, Google und Uber zeigen erstaunliche Hacks, und sie erfahren, wie Hacker bei Überweisungen Race Conditions nutzen, URL-Parameter verwenden, um unbeabsichtigt Tweets zu liken, und vieles mehr.Sie lernen: - wie Angreifer Websites kompromittieren- wo Sie mit der Suche nach Bugs anfangen- welche Funktionalitäten üblicherweise mit Schwachstellen assoziiert werden- wie Sie Bug-Bounty-Programme finden- wie Sie effektive Schwachstellen-Reports verfassen"Hacking und Bug-Hunting" ist eine faszinierende und umfassende Einführung in die Sicherheit von Webanwendungen, mit Geschichten von der vordersten Schwachstellenfront und praktischen Erkenntnissen. Mit Ihrem neu gewonnenen Wissen um die Websicherheit und Schwachstellen können Sie das Web zu einem sichereren Ort machen—und dabei noch Geld verdienen.

Häufig gestellte Fragen

Wie kann ich mein Abo kündigen?
Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
(Wie) Kann ich Bücher herunterladen?
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Welcher Unterschied besteht bei den Preisen zwischen den Aboplänen?
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Was ist Perlego?
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Unterstützt Perlego Text-zu-Sprache?
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ist Hacking und Bug Hunting als Online-PDF/ePub verfügbar?
Ja, du hast Zugang zu Hacking und Bug Hunting von Peter Yaworski, Peter Klicman im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatique & Cybersécurité. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Jahr
2020
ISBN
9783960889700

1

Bug-Bounty-Grundlagen

image
Ist Hacking etwas Neues für Sie? Dann legen Sie sich jetzt ein grundlegendes Verständnis der Funktionsweise des Internets zu und lernen, was hinter den Kulissen passiert, wenn Sie einen URL in der Adressleiste des Browsers eingeben. Auch wenn der Besuch einer Website einfach aussieht, so umfasst er viele verborgene Prozesse, etwa den Aufbau eines HTTP-Requests, die Identifikation der Domain, an die der Request gesendet werden soll, die Übersetzung der Domain in eine IP-Adresse, die Rückgabe einer Response und so weiter.
In diesem Kapitel lernen Sie grundlegende Konzepte und Begriffe kennen wie etwa Schwachstellen, Bug-Bounties, Clients, Server, IP-Adressen und HTTP. Sie bekommen eine grundsätzliche Vorstellung davon, wie unerwartete Aktionen und unerwartete Eingaben sowie der Zugriff auf private Informationen zu Schwachstellen führen. Dann sehen wir uns an, was passiert, wenn Sie einen URL in der Adressleiste Ihres Browsers eingeben, wie HTTP-Requests und -Responses aussehen sowie die verschiedenen HTTP-Aktionsverben. Wir beenden das Kapitel mit der Erklärung, was »HTTP ist zustandslos« bedeutet.

1.1Schwachstellen und Bug-Bounties

Eine Schwachstelle (engl. vulnerability) in einer Anwendung, ermöglicht es einer böswilligen Person, unerwünschte Aktionen auszuführen oder Zugriff auf Informationen zu erhalten, auf die sie normalerweise nicht zugreifen darf.
Während Sie Anwendungen testen, sollten Sie daran denken, dass Angreifer solche Schwachstellen durch beabsichtigte und unbeabsichtigte Aktionen öffnen können. Wenn Sie etwa die ID eines Datensatzes ändern, um auf Informationen zuzugreifen, die Sie eigentlich nicht sehen sollten, dann ist das ein Beispiel für eine (vom Entwickler) nicht beabsichtigte Aktion.
Nehmen wir an, Sie können auf einer Website ein Profil mit Name, E-Mail, Geburtsdatum und Adresse anlegen. Diese Informationen sollen vertraulich behandelt werden und nur für jene Benutzer sichtbar sein, die als Ihre Freunde bekannt sind. Wenn es die Website aber jedem erlaubt, Sie ohne Ihre Zustimmung als Freund aufzunehmen, dann ist das eine Schwachstelle. Denn selbst wenn die Site Ihre Daten vor Nicht-Freunden schützt, kann Sie jeder als Freund hinzufügen und so auf diese Informationen zugreifen. Während Sie eine Website testen, sollten Sie immer darüber nachdenken, wie jemand die vorhandene Funktionalität missbrauchen könnte.
Ein Bug-Bounty ist eine Belohnung, die eine Website oder ein Unternehmen an jemanden bezahlt, der (ethisch sauber) eine Schwachstelle entdeckt und meldet. Die Belohnung ist oft Geld und reicht von ein paar Zehn bis zu Tausenden von Dollar. Andere Beispiele für Bounties sind Kryptowährungen, Flugmeilen, Belohnungspunkte, Gutschriften und so weiter.
Bietet ein Unternehmen Bug-Bounties an, legt es ein Programm auf. Wir verwenden diesen Begriff in diesem Buch für die Regeln und das Rahmenwerk, die Unternehmen für Leute aufstellen, die das Unternehmen auf Schwachstellen testen wollen. Beachten Sie, dass sich das von den sogenannten Vulnerability Disclosure Programs (VDPs) anderer Unternehmen unterscheidet. Bug-Bounties bieten eine monetäre Belohnung, während ein VDP keine Bezahlung bietet (auch wenn das Unternehmen eine Prämie gewähren kann). Ein VDP ist nur eine Möglichkeit für ethische Hacker, Schwachstellen an ein Unternehmen zu melden, die es dann beheben kann. Zwar wurden nicht alle Reports in diesem Buch finanziell belohnt, doch alle Beispiele stammen von Hackern, die an Bug-Bounty-Programmen teilnehmen.

1.2Client und Server

Ihr Browser ist auf das Internet angewiesen, ein Netzwerk aus Computern, die einander Nachrichten senden. Wir nennen diese Nachrichten Pakete. Pakete umfassen die von Ihnen gesendeten Daten sowie Informationen darüber, wo diese Daten herkommen und wohin sie gehen. Jeder Computer im Internet hat eine Adresse, an die Pakete gesendet werden können. Doch einige Computer akzeptieren nur bestimmte Arten von Paketen, während wieder andere nur Pakete von einer beschränkten Liste anderer Computer empfangen. Der empfangende Computer muss dann entscheiden, was mit den Paketen geschehen und wie reagiert werden soll. In diesem Buch konzentrieren wir uns nur auf die in den Paketen enthaltenen Daten (die HTTP-Nachrichten), nicht auf die Pakete selbst.
Ich bezeichne diese Computer entweder als Clients oder als Server. Der die Requests (Anforderungen) initiierende Computer ist üblicherweise der Client, unabhängig davon, ob der Request durch einen Browser, die Kommandozeile und so weiter initiiert wird. Server stehen für die Websites und Webanwendungen, die diese Requests empfangen. Ist ein Konzept sowohl auf Clients als auch auf Server anwendbar, spreche ich ganz allgemein von Computern.
Da im Internet eine beliebige Anzahl von Computern miteinander reden kann, benötigen wir Richtlinien, auf welche Art sie über das Internet miteinander kommunizieren sollen. Diese liegen in Form der sogenannten Request for Comments (RFCs) vor, die Standards definieren, wie Computer sich zu verhalten haben. Zum Beispiel definiert das Hypertext Transfer Protocol (HTTP), wie ein Internet-Browser mit einem entfernten Server über das Internet Protocol (IP) kommuniziert. Bei diesem Szenario müssen sowohl Client als auch Server die gleichen Standards implementieren, um die Pakete verstehen zu können, die sie senden und empfangen.

1.3Was beim Besuch einer Website passiert

Weil wir uns in diesem Buch auf HTTP-Nachrichten konzentrieren, geben wir in diesem Abschnitt eine (auf hohem Niveau angesiedelte) Übersicht des Prozesses, der durchlaufen wird, wenn Sie einen URL in der Adressleiste Ihres Browsers eingeben.

1.3.1Schritt 1: Extrahieren des Domainnamens

Sobald Sie http://www.google.com/ eingegeben haben, bestimmt Ihr Browser den Domainnamen aus dem URL. Ein Domainname identifiziert die Website, die Sie besuchen wollen, und muss bestimmten Regeln folgen, die durch die RFCs definiert sind. Beispielsweise darf ein Domainname nur alphanumerische Zeichen und Unterstriche enthalten. Eine Ausnahme sind internationalisierte Domainnamen, die aber den Rahmen dieses Buchs sprengen würden. Wer mehr über sie erfahren will, sei auf RFC 3490 verwiesen, das deren Nutzung definiert. Die Domain ist eine Möglichkeit, die Adresse eines Servers zu ermitteln.

1.3.2Schritt 2: Auflösen der IP-Adresse

Nachdem der Domainname ermittelt wurde, nutzt Ihr Browser das IP, um die mit der Domain verknüpfte IP-Adresse zu bestimmen. Dieser Prozess wird als Auflösung (engl. Resolving) der IP-Adresse bezeichnet, und jede Domain im Internet muss zu einer IP-Adresse aufgelöst werden, um funktionieren zu können.
Es gibt zwei Arten von IP-Adressen: das Internet Protocol Version 4 (IPv4) und das Internet Protocol Version 6 (IPv6). IPv4-Adressen sind als vier durch Punkte voneinander getrennte Zahlen organisiert, und jede dieser Zahlen liegt im Bereich von 0 bis 255. IPv6 ist die neueste Version des Internetprotokolls. Sie wurde entwickelt, um das Problem ausgehender IPv4-Adressen zu lösen. IPv6-Adressen bestehen aus acht Gruppen von vier Hexadezimalzahlen, die durch Doppelpunkte voneinander getrennt sind, doch es gibt auch Methoden, um IPv6-Adressen zu verkürzen. So ist 8.8.8.8 beispielsweise eine IPv4-Adresse und 2001:4860:4860::8888 eine verkürzte IPv6-Adresse.
Um eine IP-Adresse über den Domainnamen nachzuschlagen, sendet Ihr Computer einen Request an einen Server des Domain Name...

Inhaltsverzeichnis

  1. Cover
  2. Über den Autor
  3. Titel
  4. Impressum
  5. Inhalt
  6. Vorwort
  7. Danksagung
  8. Einführung
  9. 1 Bug-Bounty-Grundlagen
  10. 2 Offene Redirects
  11. 3 HTTP Parameter Pollution
  12. 4 Cross Site Request Forgery
  13. 5 HTML Injection und Content Spoofing
  14. 6 Carriage Return/Line Feed Injection
  15. 7 Cross-Site Scripting (XSS)
  16. 8 Template Injection
  17. 9 SQL Injection
  18. 10 Server-Side Request Forgery
  19. 11 Externe Entitäten bei XML
  20. 12 Remote Code Execution
  21. 13 Speicher-Schwachstellen
  22. 14 Übernahme von Subdomains
  23. 15 Race Conditions
  24. 16 Insecure Direct Object References
  25. 17 OAuth-Schwachstellen
  26. 18 Schwachstellen in Anwendungslogik und -konfiguration
  27. 19 Eigene Bug-Bounties
  28. 20 Bug-Reports
  29. Anhang A Tools
  30. Anhang B Ressourcen
  31. Stichwortverzeichnis
Zitierstile für Hacking und Bug Hunting

APA 6 Citation

Yaworski, P. (2020). Hacking und Bug Hunting ([edition unavailable]). dpunkt. Retrieved from https://www.perlego.com/book/2113895/hacking-und-bug-hunting-wie-man-softwarefehler-aufsprt-und-damit-geld-verdient-ein-blick-ber-die-schulter-eines-erfolgreichen-bug-hunters-pdf (Original work published 2020)

Chicago Citation

Yaworski, Peter. (2020) 2020. Hacking Und Bug Hunting. [Edition unavailable]. dpunkt. https://www.perlego.com/book/2113895/hacking-und-bug-hunting-wie-man-softwarefehler-aufsprt-und-damit-geld-verdient-ein-blick-ber-die-schulter-eines-erfolgreichen-bug-hunters-pdf.

Harvard Citation

Yaworski, P. (2020) Hacking und Bug Hunting. [edition unavailable]. dpunkt. Available at: https://www.perlego.com/book/2113895/hacking-und-bug-hunting-wie-man-softwarefehler-aufsprt-und-damit-geld-verdient-ein-blick-ber-die-schulter-eines-erfolgreichen-bug-hunters-pdf (Accessed: 15 October 2022).

MLA 7 Citation

Yaworski, Peter. Hacking Und Bug Hunting. [edition unavailable]. dpunkt, 2020. Web. 15 Oct. 2022.