{"id":464,"date":"2008-01-06T23:50:10","date_gmt":"2008-01-06T21:50:10","guid":{"rendered":"http:\/\/www.mitternachtshacking.de\/blog\/464-webserver-logfiles-direkt-in-die-sql-datenbank"},"modified":"2018-05-22T22:26:14","modified_gmt":"2018-05-22T21:26:14","slug":"webserver-logfiles-direkt-in-die-sql-datenbank","status":"publish","type":"post","link":"https:\/\/www.mitternachtshacking.de\/blog\/464-webserver-logfiles-direkt-in-die-sql-datenbank","title":{"rendered":"Webserver-Logfiles direkt in die SQL-Datenbank"},"content":{"rendered":"<p>Auf meinem Server hier ist Logging ja weitgehend abgeschaltet (zumindest das Access-Log, nicht jedoch das Error-Log). Das hat den Vorteil, Daten die nicht vorhanden sind, muss (und kann) man im Zweifel nicht rausr\u00fccken. Der Apache schreibt die Logfiles standardm\u00e4\u00dfig sowieso nur in eine Datei und die kann man auch gut auf <a href=\"http:\/\/39864.spreadshirt.net\/de\/DE\/Shop\/Article\/Index\/article\/BOFH-excuse-upgrading-devnull-691051\">\/dev\/null<\/a> verlinken. Dann ist das Log so zuverl\u00e4ssig weg wie die Daten auf einem <a href=\"\/blog\/461-windows-home-server-verkackt\">Windows Home Server<\/a>.<\/p>\n<p>Manche machen das ja ein wenig anders. Der <a href=\"http:\/\/www.tuv.com\/de\/index.html\">T\u00dcV Rheinland<\/a> zum Beispiel. F\u00fcr den sind die Logfiles offensichtlich so wichtig, dass er sie direkt in eine SQL-Datenbank schreibt. Nicht ganz sauber programmiert zwar, aber das f\u00e4llt meistens eh nicht nicht auf. <a href=\"http:\/\/tuv-mdb.twt.de\/index.php?-=&amp;login_password=&amp;imageField=Login&amp;login_username=&amp;PHPSESSID='UNION'&amp;mapid=26\">Dieser Link<\/a> (aus dem <a href=\"http:\/\/events.ccc.de\/congress\/2007\/Hacks\">24C3 Hacks-Wiki<\/a>) zeigt das Problem auf. Als PHPSESSIONID einfach &#8222;<em>&#8218;UNION&#8216;<\/em>&#8222;\u00fcbergeben und schon kackt das Logging ab. Ein wundervolles Beispiel f\u00fcr SQL-Injection. Wenn man sich den Sourcecode der Webseite direkt anschaut sieht man ganz unten das Problem:<\/p>\n<ul>&#8222;You have an error in your SQL syntax near &#8218;UNION&#8220;)&#8216; at line 1&lt;br&gt;INSERT INTO accesslog (mandantid, mapid, sprachid, arbeitsbezeichnung, userip, userhost, useragent, referer, zeit, session)VALUES (1, 26, 1, &#8218;Impressum&#8216;, &#8218;xx.xx.xx.xx&#8216;, &#8218;dslb-xxx-xxx-xxx-xxx.pools.arcor-ip.net&#8216;, &#8218;Mozilla\/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.11) Gecko\/20071127 Firefox\/2.0.0.11&#8216;, &#8218;http:\/\/events.ccc.de\/congress\/2007\/Hacks&#8216;, &#8218;2008-01-06 23:04:33&#8216;, &#8220;UNION&#8220;)&lt;br&gt;&#8220;<\/ul>\n<p>Das muss nicht nur die PHPSESSIONID sein, das kann jeder andere Parameter auch sein. SQL-Injection durch einen modifizierten User-Agent beispielsweise \ud83d\ude42<\/p>\n<p>Der T\u00dcV Rheinland offeriert seinen Kunden \u00fcbrigens auch <a href=\"http:\/\/www.tuv.com\/de\/it_security_testing.html\">Penetrationstests<\/a> und <a href=\"http:\/\/www.tuv.com\/de\/software_entwicklung_und_beschaffung.html\">Software Entwicklung<\/a> an. Ich w\u00fcrde mich ja sch\u00e4men, meine eigenen Seiten nicht im Griff zu haben. Und noch peinlicher, das Problem ist mindestens seit einer Woche auf dem Wiki ver\u00f6ffentlicht. Kuckt denn beim T\u00dcV Rheinland niemand in irgendwelche Logfiles?<\/p>\n<p>Aber keine Sorge: wir bieten gerne jedem einen Sonderpreis auf unsere eigenen Penetrationstests an, der vorher den T\u00dcV Rheinland beauftragt hatte und sich nun nicht mehr ganz sicher f\u00fchlt. Einfach <a href=\"mailto:cgr@mitternachtshacking.de\">eine Mail an mich<\/a> mit dem Hinweis &#8222;T\u00dcV Rheinland&#8220; und es gibt 10% auf alle Leistungen \ud83d\ude09<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Auf meinem Server hier ist Logging ja weitgehend abgeschaltet (zumindest das Access-Log, nicht jedoch das Error-Log). Das hat den Vorteil, Daten die nicht vorhanden sind, muss (und kann) man im Zweifel nicht rausr\u00fccken. Der Apache schreibt die Logfiles standardm\u00e4\u00dfig sowieso nur in eine Datei und die kann man auch gut auf \/dev\/null verlinken. Dann ist [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[8,6],"tags":[],"_links":{"self":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts\/464"}],"collection":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/comments?post=464"}],"version-history":[{"count":0,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/posts\/464\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/media?parent=464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/categories?post=464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mitternachtshacking.de\/blog\/wp-json\/wp\/v2\/tags?post=464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}