Tag Archives: Coding

Google Code University’s Jarlsberg

Nein, Google versucht sich noch nicht als KĂ€sehersteller! 😉
Unter dem Codewort Jarlsberg fĂŒhrt die Google Code University ein Projekt zum Thema Schulung in Sicherheit fĂŒr Webapplikationen.

This codelab shows how web application vulnerabilities can be exploited and how to defend against these attacks. The best way to learn things is by doing, so you’ll get a chance to do some real penetration testing, actually exploiting a real application.

FĂŒr alle die, welche dem Englisch nicht so mĂ€chtig sind: Jarlsberg ist eine Webapplikation von Google zum Thema Web Application Security. Basierend auf Python wird jedem Benutzer in einer eigenen Session eine Webseite prĂ€sentiert voll mit SicherheitslĂŒcken von XSS ĂŒber DOS bis hin zu XSRF und Path Traversal.

Neben dieser Webseite gibt es auch noch eine sehr ausfĂŒhrliche und gut erklĂ€rte Dokumentation zu jedem Exploit mit einer ErklĂ€rung wie man diesen auch beheben könnte (verfasst in Englisch).
Nachdem ich die Dokumentation nun mal komplett durchgearbeitet habe, muss ich sagen, es lohnt sich wirklich die 5 Seiten komplett zu lesen!
Jedoch muss ich auch sagen, in meinen Augen sind ein paar der vorgestellten Exploits ein wenig RealitÀtsfremd, da man z.B bei einem Pentest nur sehr wenig direkten Zugang zum Sourcecode hat.

Nichts desto trotz, wer es selbst mal ausprobieren will, und das kann ich wirklich jedem empfehlen, der klickt nun hier:

Bilder in Szene setzen

Soeben bin ich ĂŒber ein kleines aber sehr wirkungsvolles Script fĂŒr GIMP gestossen
Damit lassen sich Bilder mittels 3D super in Szene setzen.

Das Skript muss man sich erst herunterladen,

wget http://registry.gimp.org/files/3DScreenshot.scm

und dann an den richtigen Ort verschieben

mv 3DScreenshot.scm /home/$USER/.gimp-2.6/scripts/

Nun nur noch die Plugins neu laden

Filter > Skript-Fu > Skripte aufffrischen

und schon kann man das Skript anwenden.

Filter > Script-Fu > 3D Screenshot

3D

Vielen Dank an zefanja fĂŒr den Tipp!

die TĂŒcken mit unterschiedlichen DBMS

RDBMS hat viele TĂŒcken! Manchmal, wenn man nicht dran denkt, kann man so gut und gern mal einen Tag verschwenden…

Diese Erfahrung habe ich soeben wieder mal machen dĂŒrfen. Der einfache und nĂŒtzliche Befehl ON DUBLICATE KEY UPDATE wollte ich verwenden, um DatensĂ€tze in meiner Datenbank zu aktualisieren, falls sich beim Schreiben mit INSERT herausstellen sollte, das schon ein solcher Vorhanden ist.

"INSERT INTO hosts(ip, hostname, date, OS) VALUES('ip', 'hostname', 'date', 'OS') ON DUPLICATE KEY UPDATE hosts SET date = 'date' WHERE hostname = 'hostname' AND ip = 'ip'";

Alles schön und gut hab ich mir gedacht und mein Code mal getestet. Doch in die Datenbank wurde weder etwas geschrieben, noch ein Datensatz aktualisiert.

Auf der Suche nach der Antwort fĂŒr mein fĂŒr mich unverstĂ€ndliches Problem, habe ich von diversen Seiten bestĂ€tigt bekommen, dass mein SQL-Querry so eigentlich funktionieren sollte.

Eigentlich war ich kurz vor dem Verzweifeln, bis ich einen Tipp bekam. Dieser war kurz und einfach: RDBMS

Wie sich herausstellte, und woran ich beim Programmieren auch nicht gedacht habe ist, dass ON DUBLICATE KEY UPDATE nur fĂŒr MySQL-dB’s funktioniert, nicht aber fĂŒr M$SQL, welche ich verwende…

Damit mein Vorhaben auch unter einem Microsoft-Produkt funktioniert brauche ich einen andern SQL-String:

IF (EXISTS (SELECT * FROM hosts WHERE ip= 'xyz')) begin UPDATE hosts SET date = now() WHERE ip= 'xyz' end else
begin INSERT INTO hosts(ip, date) VALUES('zzz', now()) end

Es lĂ€uft nun astrein mit der Ausnahme, dass der SQL String fĂŒr M$SQL einfach 5 Mal so lang und 10 Mal so kompliziert… Aber die EffektivitĂ€t von Microsoft ist ein anderes Thema 🙂

Das Sieb des Eratosthenes

Wenn man den Titel so liest, werden sich wahrscheinlich die wenigstens etwas darunter vorstellen können…

Mir ging es genauso! Zuerst habe ich an Mathematik wie Satz des Pythagoras u.Ă€. gedacht, doch damit hat dies nun nicht viel zu tun, obwohl es um Mathematik, wenn auch einfache, geht!

Nun was ist dieses Sieb nun:

Das Sieb des Eratosthenes beschreibt ein Vorgang um aus einer Zahlenkette alle Primzahlen herauszulesen.

Eine Primzahl ist eine natĂŒrliche Zahl mit genau zwei natĂŒrlichen Zahlen als Teiler, nĂ€mlich der Zahl 1 und sich selbst

sponsored by Wikipedia

Eratosthenes macht sich dabei das Wissen zunutze, dass jede Nicht-Primzahl ein Vielfaches einer Primzahl ist. So wird jede zahl genommen und mit allen x-Reihen (2er-Reihe, 3er-Reihe, …, 1234er-Reihe) verglichen.

Gibt eine Zahl dann ein Positives Feedback, sprich sie ist ein Vielfaches einer andern, ist es keine Primzahl mehr und kann ausgeschlossen werden.

So kann man, wenn man genĂŒgend Rechenleistung hat, Primzahlen mit mehreren Millionen Stellen generieren lassen.

Der Code zum ganzen, habe ich in Java geschrieben. Er ist sicherlicht nicht gerade der kĂŒrzeste und beste, doch ich hoffe ihr verzeiht mir, wenn ich euch sage, dass ich gerade eben erst angefangen habe Java zu programmieren.

Ach ja: Programmiert wurde das ganze in Eclips unter Ubuntu 8.04 🙂

  • Lösungsbeispiel – TXT
  • Lösungsbeispiel – Java