View Issue Details

IDProjectCategoryView StatusLast Update
0000148Adventure PHP FrameworkSicherheit // Securitypublic2015-10-12 12:20
ReporterScreezeAssigned Tojwlighting 
PriorityimmediateSeverityblockReproducibilityalways
Status closedResolutionfixed 
Product Version2.0 
Target Version2.1Fixed in Version2.1 
Summary0000148: DatabaseLogWriter: SQLi
DescriptionDer DatabaseLogWriter ist anfällig für SQL-Injections, da keine der übergebenen Werte escaped wird. Wenn nun Beispielsweise der Benutzername bei jedem Logeintrag mitgeloggt werden soll, und ein Nutzer legt einen Name mit einer SQLi-Payload an (oder sonstige geloggten Daten enthalten Usereingaben), dann können auf diesem Wege Blind-SQL-Injections durchgeführt werden.
Selbst wenn keine Benutzereingaben geloggt werden, und die Logmeldungen Sonderzeichen enthalten, funktioniert das Logging nicht aufgrund eines DB-Fehlers


Fehler sitzt in DatabaseLogWriter ab Zeile 143:
$insert = 'INSERT INTO `' . $this->logTable . '` (
                        `target`,
                        `timestamp`,
                        `severity`,
                        `message`
                     ) VALUES (
                        \'' . $this->target . '\',
                        \'' . $entry->getDate() . ' ' . $entry->getTime() . '\',
                        \'' . $entry->getSeverity() . '\',
                        \'' . $entry->getMessage() . '\'
                     );';

sämtliche Infos aus $entry sollten escaped werden:

$insert = 'INSERT INTO `' . $this->logTable . '` (
                        `target`,
                        `timestamp`,
                        `severity`,
                        `message`
                     ) VALUES (
                        \'' . $this->target . '\',
                        \'' . $conn->escapeValue($entry->getDate() . ' ' . $entry->getTime()) . '\',
                        \'' . $conn->escapeValue($entry->getSeverity()) . '\',
                        \'' . $conn->escapeValue($entry->getMessage()) . '\'
                     );';

Tagslog, security
Codereferenz: ([Datei]:[Zeile])
Namespacecore

Relationships

related to 0000149 closedjwlighting CLONE DatabaseLogWriter: SQLi 

Activities

jwlighting

2014-02-24 17:22

administrator   ~0000229

Last edited: 2014-02-24 17:30

View 3 revisions

Auch wenn ich die Wahrscheinlichkeit, dass hier von AUSSEN etwas rein kommt gering finde, ist der Fix erstmal im SVN.

Issue History

Date Modified Username Field Change
2014-02-24 13:10 Screeze New Issue
2014-02-24 17:22 jwlighting Note Added: 0000229
2014-02-24 17:24 jwlighting Note Edited: 0000229 View Revisions
2014-02-24 17:25 jwlighting Tag Attached: security
2014-02-24 17:25 jwlighting Tag Attached: log
2014-02-24 17:30 jwlighting Note Edited: 0000229 View Revisions
2014-02-24 17:30 jwlighting Assigned To => jwlighting
2014-02-24 17:30 jwlighting Status new => assigned
2014-02-24 17:31 jwlighting Status assigned => resolved
2014-02-24 17:31 jwlighting Fixed in Version => 2.1
2014-02-24 17:31 jwlighting Resolution open => fixed
2014-02-24 17:32 jwlighting Category Bug => Sicherheit // Security
2014-02-24 23:19 ChristianAchatz Issue cloned: 0000149
2014-02-24 23:19 ChristianAchatz Relationship added related to 0000149
2015-10-12 12:20 ChristianAchatz Status resolved => closed