{"id":3938,"date":"2025-11-18T14:31:19","date_gmt":"2025-11-18T12:31:19","guid":{"rendered":"https:\/\/security.sauer.ninja\/?p=3938"},"modified":"2025-11-18T14:34:22","modified_gmt":"2025-11-18T12:34:22","slug":"was-wir-in-web-penetrationstests-wirklich-finden-ein-12-monats-realitaetscheck","status":"publish","type":"post","link":"https:\/\/security.sauer.ninja\/de\/binsec\/was-wir-in-web-penetrationstests-wirklich-finden-ein-12-monats-realitaetscheck\/","title":{"rendered":"Was wir in Web-Penetrationstests wirklich finden \u2013 ein 12-Monats-Realit\u00e4tscheck"},"content":{"rendered":"\n<p>Alle paar Monate werde ich dieselbe Frage gestellt: <strong>\u201eWas findet ihr eigentlich typischerweise in einem Web-Pentest?\u201c<\/strong><\/p>\n\n\n\n<p>Statt anekdotisch zu antworten, habe ich die aggregierten Daten der letzten 12 Monate aus unseren Webanwendungstests (inklusive angebundener APIs) bei der binsec GmbH ausgewertet. Das Ergebnis ist die untenstehende Grafik \u2013 und sie best\u00e4tigt die Muster, die sich seit Jahren wiederholen.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1105\" height=\"422\" src=\"https:\/\/security.sauer.ninja\/files\/distribution-of-web-appliaction-findings.png\" alt=\"\" class=\"wp-image-3934\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Konfigurationsfehler: Das ewige Low-Hanging-Fruit<\/h2>\n\n\n\n<p>Ein gro\u00dfer Teil der Findings entsteht durch einfache Konfigurationsfehler: unsichere Webserver-Defaults, fehlende Security-Header, veraltete TLS-Versionen oder schwache Cipher-Suites. Diese Schwachstellen sind leicht auffindbar und meist nicht kritisch, zeigen aber ein wiederkehrendes Problem: vielen Deployments fehlt eine grundlegende Sicherheitsbaseline. Eine einfache Checkliste w\u00fcrde die meisten dieser Probleme direkt vermeiden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Session-Management: Alte Probleme in modernen Anwendungen<\/h2>\n\n\n\n<p>Fehler im Session-Handling treten \u00fcberraschend h\u00e4ufig auf. Ein typisches Beispiel ist, dass beim Logout nur die Session im Browser entfernt wird, die serverseitige Session jedoch aktiv bleibt. Wird ein Session-Token kompromittiert, kann ein Angreifer die Session weiter nutzen \u2013 auch wenn der Nutzer sich bereits abgemeldet hat.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wo die kritischen Schwachstellen liegen: Autorisierung<\/h2>\n\n\n\n<p>Die meisten <strong>kritischen<\/strong> Findings entstehen im Bereich der Autorisierung, insbesondere bei:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>fehlender Objekt- und Ressourcenfreigabe,<\/li>\n\n\n\n<li>unzureichender Rollenpr\u00fcfung,<\/li>\n\n\n\n<li>Privilege Escalation,<\/li>\n\n\n\n<li>mangelnder Tenant-Isolation in SaaS-Systemen.<\/li>\n<\/ul>\n\n\n\n<p>Moderne, frontend-lastige Anwendungen verst\u00e4rken dieses Problem. Der Browser ruft im Hintergrund zahlreiche API-Endpunkte auf, und jeder einzelne Endpunkt ben\u00f6tigt eine explizite Zugriffskontrolle. Frameworks \u00fcbernehmen diese Aufgabe selten automatisch. Die Implementierung erfolgt manuell. Manuelle Prozesse f\u00fchren dabei zwangsl\u00e4ufig zu Inkonsistenzen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Die Klassiker, die nicht aussterben<\/h2>\n\n\n\n<p>SQL Injection und Cross-Site Scripting (XSS) treten heute seltener auf, sind aber keineswegs verschwunden. ORMs, Prepared Statements und automatisches Escaping entsch\u00e4rfen viele Risiken, doch sobald jemand sie in der Entwicklung \u201enur kurz umgeht\u201c, tauchen diese Klassiker wieder auf.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Business Logic: Selten, aber mit hoher Wirkung<\/h2>\n\n\n\n<p>Business-Logic-Schwachstellen sind weniger h\u00e4ufig, haben jedoch meist erhebliche Auswirkungen, wenn sie auftreten. Beispiele sind das Umgehen von Freigabeprozessen, das Manipulieren von Berechnungen oder das \u00dcberspringen notwendiger Validierungsschritte. Diese Schwachstellen erscheinen in keinem Scanner und erfordern ein tiefes Verst\u00e4ndnis der Gesch\u00e4ftsprozesse.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p>Die Daten best\u00e4tigen, was viele Sicherheitsteams l\u00e4ngst wissen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Die meisten Schwachstellen sind vermeidbar<\/strong> durch klare Konfigurationsrichtlinien und saubere Deployments.<\/li>\n\n\n\n<li><strong>Kritische Findings konzentrieren sich fast immer auf Autorisierungsfehler<\/strong>, nicht auf exotische Angriffstechniken.<\/li>\n\n\n\n<li><strong>Klassische Schwachstellen verschwinden nicht<\/strong>, solange schnelle Workarounds und Zeitdruck sichere Standards aushebeln.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Alle paar Monate werde ich dieselbe Frage gestellt: \u201eWas findet ihr eigentlich typischerweise in einem Web-Pentest?\u201c Statt anekdotisch zu antworten, habe ich die aggregierten Daten der letzten 12 Monate aus unseren Webanwendungstests (inklusive angebundener APIs) bei der binsec GmbH ausgewertet. Das Ergebnis ist die untenstehende Grafik \u2013 und sie best\u00e4tigt die Muster, die sich seit &#8230; <span class=\"more\"><a class=\"more-link\" href=\"https:\/\/security.sauer.ninja\/de\/binsec\/was-wir-in-web-penetrationstests-wirklich-finden-ein-12-monats-realitaetscheck\/\">[Read more&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[205],"tags":[],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-psauer","4":"post-3938","6":"format-standard","7":"category-binsec"},"_links":{"self":[{"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/posts\/3938","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/comments?post=3938"}],"version-history":[{"count":8,"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/posts\/3938\/revisions"}],"predecessor-version":[{"id":3947,"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/posts\/3938\/revisions\/3947"}],"wp:attachment":[{"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/media?parent=3938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/categories?post=3938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/security.sauer.ninja\/de\/wp-json\/wp\/v2\/tags?post=3938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}