Discussion on [Tutorial]Auf MySQL Sicherheitslücke prüfen within the Metin2 PServer Guides & Strategies forum part of the Metin2 Private Server category.
da es anscheinend ein bisschen unklar war, habe ich mir mal kurz angeschaut, wie man unter FreeBSD kompiliert.
Wie ich herausgefunden habe, ist dies ohne einige Änderungen nicht möglich, das Programm unter FreeBSD x86 auszuführen, wie es da steht.
Wer wissen möchte wieso, dem erkläre ich es hier, wer einfach nur den entgültigen Quellcode oder gar die Datei haben möchte, kann den Spoiler überspringen.
Bei dem Quellcode wurden aufgrund ungenügender strikter Kompilierungsmethoden essentielle Headerfiles, welche unter FreeBSD benötigt wurden, weggelassen, weshalb uns der Compiler unverändert so eine Fehlermeldung liefert wird, versuchen wir die Datei zu kompilieren:
PHP Code:
test88.cpp: In function 'int main()': test88.cpp:19: error: 'getpid' was not declared in this scope test88.cpp:23: error: 'memcmp' was not declared in this scope
Deshalb müssen wir die Heade <unistd> und <string> hinzufügen.
PHP Code:
#include <unistd.h> #include <string.h>
Versuchen wir nun die Datei zu kompilieren, passiert was? Siehe da! Es funktioniert!
PHP Code:
AH88# c++ test88.cpp -o test88 AH88# ls | grep test88 test88 test88.cpp
Achja: Rechte auf keinen Fall vergessen!(775 reichen aus).
Für alle die zu faul waren zu lesen, der fertige Quellcode:
PHP Code:
/* * * CVE-2012-2122 checker * * You may get differing results with/without -m32 * * Joshua J. Drake */
Nochmal: Vergesst nicht die nötigen Rechte(775) per chmod zu geben!
Wer immer noch zu dumm ist, der findet die Datei im Anhang.
Mit freundlichen Grüßen
Daroo
PS: Ich habe dafür einen neuen Thread eröffnet, da sonst der Beitrag untergegangen wäre, und es immer wieder nachgefragt worden wäre, was wohl im Sinne von niemandem ist.
Er hat da ein Link gepostet, wo du es nachlesen kannst, aber hier nochmal:
Wenn man sich mit einem MySQL Server connectet, wird ein Hash bla bla...
Die Sicherheitslücke besteht darin, das wenn sich jemand mit einem Programm versucht einzuloggen, besteht eine Wahrscheinlichkeit von 1/256, das er connecten kann, ohne das Passwort an sich zu wissen.
d.h. man schreibt ein kleines Programm was sich innerhalb 5 Minuten in deine Datenbank eingeloggt hat...
Die Funktion my_bool der password.c returned den Rückgabewert von einer Funktion, welche zwei Member vergleicht. Jedoch gibt diese Funktion eine Integer als Rückgabewert, während my_bool einen Bool(true/false) zurückgibt. Weshalb dies eine Sicherheitslücke ist, kann sich wahrscheinlich jeder denken, ich werde nicht weiter draufgehen.
Ich werde demnächst einen entsprechenden Fix und Hack veröffentlichen mit Sourcecode veröffentlichen, dann kannst du dich nochmal genauer mit der Materie befassen.
/Edit: Die Wahrscheinlichkeit beträgt nicht 1/256. Da der Returnwert von memcmp kein unsignierter Integer ist, wird mit einer Wahrscheinlichkeit von 0.5 ein negativer und mit einer Wahrscheinlichkeit von 0.5 ein positiver zurückgegeben(jedoch nur reelle Zahlen!).
/Edit 2: Du hattest Recht. Es geht von -128 bis 127(ist also 16bit).
Nein, bei der neuesten MySQL Version geht dies nicht!
Laut Golubchik sind theoretisch alle MySQL- und MariaDB-Versionen bis einschließlich 5.1.61, 5.2.11, 5.3.5 und 5.5.22 verwundbar – allerdings nur, wenn sie mit bestimmten Optionen kompiliert wurden; etwa mit der SSE-optimierte memcmp-Funktion der glibc. Nach bisherigem Kenntnisstand sind die von den Herstellern angebotenen Binaries nicht verwundbar.
[Tutorial]Wie mache ich eine Registration mit PHP und Mysql? 02/27/2012 - Web Development - 5 Replies Hallo und Willkommen zum ersten Tutorial von mir.
Vorne Weg ich bin nicht der beste in Rechtschreibung aber ich versuche euch alles verständlich zu erklären.
Fangen wir an ich setze jetzt mal voraus das ihr HTML beherrscht für Formulare etc.
Grundlagen:
PHP fängt immer mit <?php an und hört mit ?> auf mit // Kommentiert man Zeilen aus sprich der PHP Parser ignoriert diese.Mit echo gibt man ein "Spruch" aus und mit exit beendet man den Script!
Dann Fangen wir an :) als erstes machen...
[Tutorial] Sicherheit in PHP mit MySQL (Part 1: SQL-Injections) 02/25/2012 - Web Development - 5 Replies Hallo,
ich dachte mir, mal ein Tutorial über Sicherheit in PHP-Skripten zu machen.
Na dann fang ich wohl an^^
Vorraussetzung ist PHP & MySQL zu können.
SQL-Injections sind der Albtraum eines jeden Webmasters.
Doch was ist eine SQL-Injection?
Wie der Name schon sagt wird SQL-Code in deinen SQL-Code eingeschleust.
Um das zu demonstrieren hier ein PHP-Script. NICHT BENUTZEN! BEINHALTET SICHERHEITSLÜCKE
[Tutorial 3] MySQL 12/28/2011 - AutoIt - 0 Replies Hallo,
aufgrund einer Anfrage schreibe ich nun ein Tutorial, wie ihr eine Verbindung zu einem MySQL Server aufbaut und Queries sendet.
Zuerst müsst ihr diese Include in den Includes Ordner (C:\Program Files\AutoIt3\Include\) kopieren.
http://i.03d.eu/MySQL.au3
Ausserdem braucht ihr MySQL :: Download Connector/ODBC , um euch mit dem Server zu verbinden. (Wenn ihr diese nicht habt, gibt es einen Error ;)
Hinweis: Ich werde euch nicht erklären, wie die ganzen Queries / Befehle lauten oder was...
[SICHERHEITSLÜCKE]SSH/Metin2 Sicherheitslücke 08/18/2011 - Metin2 PServer Guides & Strategies - 26 Replies Hey,
ich will hier mal eine Sicherheitslücke in SSH die man über Metin2 erreicht releasen.
Aber damit das nicht geleecht wird, habe ich es encrypted. Schreibt mich an, dann sag ich euch wie ihr es entschlüsselt!
...