config.php > real_escape (schützen) - SQL Injection

07/30/2010 10:01 αίίR7 :3#1
yo, da ja die meisten bob server gepwnd werden & die "ultra1227hax0rz" ja immer sql injection's machen & meißt die daten aus den configs kriegen, könnt ihr euch so ein bissl besser "schützen"

Achtung: es ist nur ein teil, ihr müsst noch etwas hinzufügen was ich aber nich "publishen" werde.

PHP Code:
<?php
// Verbindung herstellen & datenangeben
$link mysql_connect('mysqlhost''mysqluser''mysqlpassword')
    OR die(
mysql_error());

// Anfrage erstellen
$query sprintf("SELECT * FROM users WHERE user='%s' AND password='%s'",
            
mysql_real_escape_string($user),
            
mysql_real_escape_string($password));
?>
das ganze könnt ihr auch machen in eurem itemshop, da die meisten SQL injections dort stattfinden.

die meisten injection's finden mit simplen "befehlen" like this statt:

PHP Code:
<?php
// Datenbankabfrage zur Ueberpruefung der Logindaten
$query "SELECT * FROM users WHERE user='{$_POST['username']}' AND password='{$_POST['password']}'";
mysql_query($query);

// Wir haben $_POST['password'] nicht geprueft, es koennte also alles darin
// stehen, was der User will. Zum Beispiel:
$_POST['username'] = 'aiiR7bob';
$_POST['password'] = "' OR ''='";

// Das bedeutet, der an MySQL gesendete Query wuerde sein:
echo $query;
?>
ich poste es NICHT, damit ihr andere server pwn könnt, sonder das is eher 'ne "prüfung" ob ihr alle zusammen arbeitet & 'n sicheres user&admin panel zusammenstellt.


// - die befehle müssen natürlich auch richtig eingesetzt werden (injection) - ist nur ne simple methode, also schützt euch durch realescape strings.
07/30/2010 10:02 dontoX#2
Schön gemacht, digg0r!
07/30/2010 10:51 PangerLenis#3
omg, gut!
aber wie kann man die configs denn ankucken?
also als außenstehender..?!
07/30/2010 10:53 αίίR7 :3#4
Quote:
Originally Posted by PangerLenis View Post
omg, gut!
aber wie kann man die configs denn ankucken?
also als außenstehender..?!
naja, theoritisch geht's eig nicht - es gibt aber dank dem achsotollen SQL Injection immermöglichkeiten gewisse sachen aus der DB auszulesen, wenn man glück hat & an den richtigen usernamen der config kommt kann man die daten auch auslesen, sicherheitshalber kack da würde ich lieber noch 'ne .htaccess in den ordner legen, wo die config liegt - dann ist der schutz "optimal"
07/30/2010 10:57 2good4you111#5
quellen wären gut ^^

[Only registered and activated users can see links. Click Here To Register...]
07/30/2010 11:03 -Tuni#6
Quote:
Originally Posted by 2good4you111 View Post
quellen wären gut ^^

[Only registered and activated users can see links. Click Here To Register...]
und ?
Hauptsache er macht es für alle Pub da interesiert es keinen von wo des kommt. :awesome:
07/30/2010 11:09 αίίR7 :3#7
Quote:
Originally Posted by 2good4you111 View Post
quellen wären gut ^^

[Only registered and activated users can see links. Click Here To Register...]
yo, aber doof, dass ich's nich daher hab, is zwar genau gleich, hab's aber woandersher.
außerdem sind meine ganzen sachen anderst, & das iher is nur 'n teil davon & solange es schützt juckt keinen die quelle, oder? ;O
07/30/2010 11:09 Daunenjacke#8
"Quellen wären gut"
Sachmal junge hagelst du? Warum sollte er quellen hinschreiben, von Dingen, die er selber geschrieben hat?
Was mysql_real_escape_string(); bzw addslashes(); ist/sind, müsse eigtl jeder wissen, welcher auch nurn ganz ganz ganz ganz ganz kleines Hirn hat.
07/30/2010 11:17 αίίR7 :3#9
Quote:
Originally Posted by 2good4you111 View Post
quellen wären gut ^^

[Only registered and activated users can see links. Click Here To Register...]
btw - das 1. is von mir & is nur die hälfte von meinem script - das untere ist von 'ner anderen quelle & nich von mir weil ich so bob sql injection nich use.
07/30/2010 12:44 IgorGlock#10
PHP ist eine öffentlich Sprache die keine Steuern hat und alle Codes die public sind dürfen nicht dann i-wie patentiert werden da man PHP nicht kaufen kann. Daher schön dasd du es pub. machst aber am besten ist das wenn man einfach diese config.php einfach mal anderen nennt.
07/30/2010 12:49 αίίR7 :3#11
Quote:
Originally Posted by IgorGlock View Post
PHP ist eine öffentlich Sprache die keine Steuern hat und alle Codes die public sind dürfen nicht dann i-wie patentiert werden da man PHP nicht kaufen kann. Daher schön dasd du es pub. machst aber am besten ist das wenn man einfach diese config.php einfach mal anderen nennt.
1. kd - 2. bringt's nix weil man das verzeichnis einsehen kann mit gewissen befehlen, solange 'ne .htaccess im verzecihnis ist sollte es schicken, sofern die config auch die real_escape-strings hat.