Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
|
cookbook:logs [2014/09/24 18:27] shadowcat [Links] |
cookbook:logs [2014/09/24 00:00] (aktuell) |
||
|---|---|---|---|
| Zeile 69: | Zeile 69: | ||
| "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select statuscode,remotehostname FROM d:\xampp\apache\logs\access.log WHERE user-agent is null order by statuscode asc" -i:NCSA -o:datagrid | "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select statuscode,remotehostname FROM d:\xampp\apache\logs\access.log WHERE user-agent is null order by statuscode asc" -i:NCSA -o:datagrid | ||
| + | |||
| + | ==== Ausgabe als HTML ==== | ||
| + | |||
| + | Im Gegensatz zu den meisten anderen Formaten ist die Ausgabe als HTML etwas komplizierter. LogParser benötigt hierzu ein Template, in das es seine ermittelten Daten einfüllen kann. Wer aber BC-Templates kennt, kann auch hiermit umgehen. :) | ||
| + | |||
| + | Nehmen wir als Beispiel unsere Suche nach dem potentiell "bösen" Querystring mit "SELECT". Diesen möchten wir als HTML-Tabelle ausgeben und diese auch ein wenig 'hübsch machen'. | ||
| + | |||
| + | Also bauen wir uns zunächst mal unsere Vorlage: | ||
| + | |||
| + | <sxh html> | ||
| + | <lpheader> | ||
| + | <html> | ||
| + | <head> | ||
| + | <title>Potentiell böse Querystrings</title> | ||
| + | <style type="text/css"> | ||
| + | body{background-color:#fff;} | ||
| + | table{border-collapse:collapse;} | ||
| + | th,td{border:1px solid #000;} | ||
| + | th{background-color:#ccc;} | ||
| + | </style> | ||
| + | </head> | ||
| + | <body> | ||
| + | <table> | ||
| + | <thead> | ||
| + | <tr> | ||
| + | <th>Anzahl</th> | ||
| + | <th>Remote Host</th> | ||
| + | <th>Query</th> | ||
| + | </tr> | ||
| + | </thead> | ||
| + | <tbody> | ||
| + | </lpheader> | ||
| + | <lpbody> | ||
| + | <tr> | ||
| + | <td>%Anzahl%</td> | ||
| + | <td>%remotehostname%</td> | ||
| + | <td>%request%</td> | ||
| + | </tr> | ||
| + | </lpbody> | ||
| + | <lpfooter> | ||
| + | </tbody> | ||
| + | </table> | ||
| + | </body> | ||
| + | </html> | ||
| + | </lpfooter> | ||
| + | </sxh> | ||
| + | |||
| + | Die Markups <LPHEADER>, <LPBODY> und <LPFOOTER> dienen dem LogParser dazu, die einzelnen Bereiche des Templates zu erkennen. <LPBODY> wird für jede Zeile der Ausgabe wiederholt, beinhaltet daher also auch die Platzhalter für die Werte. Die Platzhalter entsprechen hierbei den "Spaltennamen". | ||
| + | |||
| + | Speichern wir nun diese Datei als ''querystrings.tpl''. Der Aufruf für den LogParser muß nun um zwei Werte erweitert werden: | ||
| + | |||
| + | * Den Namen der HTML-Datei (sonst wird alles auf der Kommandozeile ausgegeben) | ||
| + | * Den Namen des Templates | ||
| + | |||
| + | Außerdem ändern wir das Ausgabeformat in ''-o:TPL'' | ||
| + | |||
| + | |||
| + | "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select count(*) as Anzahl, remotehostname, request FROM d:\xampp\apache\logs\access.log TO output.html WHERE request LIKE '%select%' GROUP BY remotehostname,request ORDER BY Anzahl DESC" -i:NCSA -o:TPL -tpl:querystrings.tpl | ||
| + | |||
| + | Ergebnis ist nun eine Datei ''output.html'' mit einer Tabelle, die nach Remote Host und Querystring gruppiert und nach Anzahl sortiert die potentiellen Angriffe auflistet. | ||
| + | |||
| + | Natürlich ist hier noch etwas Feintuning am Template und ggfs. auch an der Abfrage denkbar. ;) | ||
| ===== Links ===== | ===== Links ===== | ||
| - | http://technet.microsoft.com/en-us/library/ee692937.aspx | + | http://technet.microsoft.com/en-us/library/ee692937.aspx\\ |
| http://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/ | http://mlichtenberg.wordpress.com/2011/02/03/log-parser-rocks-more-than-50-examples/ | ||