This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Germany/Projekte/Top 10 fuer Entwickler-2013/A1-Injection
NOTE: THIS IS NOT THE LATEST VERSION. Please visit the OWASP Top 10 project page to find the latest edition.
| Template:Top 10 fuer Entwickler | Top 10 Risks |
Germany/Projekte/Top 10 fuer Entwickler/A2 Cross-Site Scripting (XSS) → |
Testseite in Bearbeitung (BAUSTELLE!!)
die Überschriften kommen z.T noch von den Templates der englischen Top 10, Tbd!!
A1 Befehle unterschieben (Injection)
| Threat Agents | Attack Vectors | Security Weakness | Technical Impacts | Business Impacts | |
|---|---|---|---|---|---|
| Application Specific | Ausnutzbarkeit EINFACH |
Verbreitung HAÜFIG |
Auffindbarkeit DURCHSCHNITTLICH |
Auiswirkung SCHWERWIEGEND |
Application / Business Specific |
| Jeder, der Daten, die nicht aus-reichend geprüft werden, an das System übermitteln kann: externe und interne Nutzer sowie Administratoren. | Der Angreifer sen-det einfache text-basierte Angriffe, die die Syntax des Zielinterpreters missbrauchen. Fast jede Datenquelle kann einen Injec-tion-Vektor darstel-len, einschließlich interner Quellen. | Injection-Schwachstellen tauchen auf, wenn eine Anwendung nicht vertrauens-würdige Daten an einen Interpreter weiterleitet. Injection Schwachstellen sind weit verbreitet, besonders in altem Code; sie finden sich in SQL-, LDAP- und XPath-Anfragen, Systembefehlen, Programm-parametern usw. Injection-Schwachstellen lassen sich durch Code-Prüfungen einfach entdecken, schwieriger durch externe Tests. Scanner und Fuzzer können hier unterstützen. | Injection kann zu Datenverlust oder -verfälschung, Fehlen von Zurechenbarkeit oder Zugangssperre führen. Unter Umständen kann es zu einer vollständigen Systemübernahme kommen. | Der Wert betroffener Daten für das Unternehmen sowie die Laufzeitumgebung des Interpreters sind zu berücksichtigen. Daten können entwendet, verändert, gelöscht werden. Kann Image-Schaden enstehen? | |
|
Am I Vulnerable To 'Injection'?
Die Anwendung nutzt ungeprüfte Eingabedaten bei der Konstruktion der verwundbaren SQL-Abfrage: String query = "SELECT * FROM accounts WHERE custID='" + request.getParameter("id") +"'";
Der Angreifer verändert den 'id'-Parameter im Browser und übermittelt: ' or '1'='1. Hierdurch wird die Logik der Anfrage so verändert, dass alle Datensätze der Tabelle accounts ohne Einschränkung auf den Kunden zurückgegeben werden. http://example.com/app/accountView?id=' or '1'='1
Im schlimmsten Fall nutzt der Angreifer die Schwachstelle, um spezielle Funktionalitäten der Datenbank zu nutzen, die ihm ermöglichen, die Datenbank und möglicherweise den Server der Datenbank zu übernehmen. |
How Do I Prevent 'Injection'?
Das Verhindern von Injection erfordert das konsequente Trennen von Eingabedaten und Befehlen.
|
JAVA | |
|
Example Attack Scenarios
Prepared Statements (Parameterized Queries) [nur für SQL]String custname = request.getParameter("customerName"); // This should REALLY be validated too
// perform input validation to detect attacks String query = "SELECT account_balance FROM user_data WHERE user_name = ? "; PreparedStatement pstmt = connection.prepareStatement( query ); pstmt.setString( 1, custname); ResultSet results = pstmt.executeQuery( ); |
References
Tbd style="vertical-align: top; padding:5px; width: 50%;
border: 3px solid
background-color:
Tbd style="vertical-align: top; padding:5px; width: 50%;
border: 3px solid
background-color:
OWASP
External |
| ← Main | Top 10 Risks |
[[Top_10_2010-A2-Cross-Site Scripting
(XSS)|A2-Cross-Site Scripting (XSS) →]] |