Schlagwort-Archiv: 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