- Offizieller Beitrag
Über den Kundenbereich wäre es möglich Passwörter bzw. die Kundendatenbank auszulesen. Durch eine geschickte SQL-Injektion ist dies möglich. Folgender Bugfix behebt diese Sicherheitslücken!
suchen Sie in der customer.php nach folgender Codestelle:
if($_POST[send] == "forgot_password") {
if($_POST[customerid] != "") {
if($query) $query .= " AND customerid = '".$_POST[customerid]."'";
else $query = "WHERE customerid = '".$_POST[customerid]."'";
$options += 1;
}
if($_POST[company] != "") {
if($query) $query .= " AND company = '".$_POST[company]."'";
else $query = "WHERE company = '".$_POST[company]."'";
$options += 1;
}
if($_POST[firstname] != "") {
if($query) $query .= " AND firstname = '".$_POST[firstname]."'";
else $query = "WHERE firstname = '".$_POST[firstname]."'";
$options += 1;
}
if($_POST[name] != "") {
if($query) $query .= " AND name = '".$_POST[name]."'";
else $query = "WHERE name = '".$_POST[name]."'";
$options += 1;
}
if($_POST[email] != "") {
if($query) $query .= " AND email = '".$_POST[email]."'";
else $query = "WHERE email = '".$_POST[email]."'";
$options += 1;
}
if($_POST[address] != "") {
if($query) $query .= " AND address = '".$_POST[address]."'";
else $query = "WHERE address = '".$_POST[address]."'";
$options += 1;
}
if($_POST[zipcode] != "") {
if($query) $query .= " AND zipcode = '".$_POST[zipcode]."'";
else $query = "WHERE zipcode = '".$_POST[zipcode]."'";
$options += 1;
}
if($_POST[city] != "") {
if($query) $query .= " AND city = '".$_POST[city]."'";
else $query = "WHERE city = '".$_POST[city]."'";
$options += 1;
}
Alles anzeigen
und ersetzen Sie diese mit folgender
if($_POST['send'] == "forgot_password") { /* Bugfix 17/09/2006 | possible SQL-INJECTION */
$query = "";
if($_POST['customerid'] != "") {
if($query) $query .= " AND customerid = '".intval($_POST['customerid'])."'";
else $query = "WHERE customerid = '".intval($_POST['customerid'])."'";
$options += 1;
}
if($_POST['company'] != "") {
if($query) $query .= " AND company = '".addslashes($_POST['company'])."'";
else $query = "WHERE company = '".addslashes($_POST['company'])."'";
$options += 1;
}
if($_POST['firstname'] != "") {
if($query) $query .= " AND firstname = '".addslashes($_POST['firstname'])."'";
else $query = "WHERE firstname = '".addslashes($_POST['firstname'])."'";
$options += 1;
}
if($_POST['name'] != "") {
if($query) $query .= " AND name = '".addslashes($_POST['name'])."'";
else $query = "WHERE name = '".addslashes($_POST['name'])."'";
$options += 1;
}
if($_POST['email'] != "") {
if($query) $query .= " AND email = '".addslashes($_POST['email'])."'";
else $query = "WHERE email = '".addslashes($_POST['email'])."'";
$options += 1;
}
if($_POST['address'] != "") {
if($query) $query .= " AND address = '".addslashes($_POST['address'])."'";
else $query = "WHERE address = '".addslashes($_POST['address'])."'";
$options += 1;
}
if($_POST['zipcode'] != "") {
if($query) $query .= " AND zipcode = '".addslashes($_POST['zipcode'])."'";
else $query = "WHERE zipcode = '".addslashes($_POST['zipcode'])."'";
$options += 1;
}
if($_POST['city'] != "") {
if($query) $query .= " AND city = '".addslashes($_POST['city'])."'";
else $query = "WHERE city = '".addslashes($_POST['city'])."'";
$options += 1;
}
Alles anzeigen
suchen Sie weiters folgende Codestelle (2 mal!):
$row = $db->query_first("SELECT password FROM bb".$n."_customer WHERE customerid = '".$_POST[customerid]."' AND password = '".$password."'");
und ersetzen Sie diesen mit folgenden:
$row = $db->query_first("SELECT password FROM bb".$n."_customer WHERE customerid = '".intval($_POST['customerid'])."' AND password = '".$password."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */
suchen sie weiters folgende Codestelle:
if($_POST[send] == "submitorder") {
$row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".$_POST[productid]."'");
$db->query("INSERT INTO bb".$n."_customer_rechnungen (customerid, email, productid, preis, status, time, make_update, installservice, firstname, name, address, zipcode, city, country, company, multilicense, paypal, userid)
VALUES ('".$_POST[customerid]."','".$_POST[email]."','".$_POST[productid]."','".$_POST[preis]."',0,'".time()."','".$_POST[update]."','".$_POST[install]."','".$_POST[firstname]."','".$_POST[fname]."','".$_POST[address]."','".$_POST[zipcode]."','".$_POST[city]."','".$_POST[country]."','".$_POST[company]."','".$row['multilicense']."','".$_POST['payment']."','".$wbbuserdata['userid']."')");
und ersetzen Sie diese mit folgender:
$row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".intval($_POST['productid'])."'");
$db->query("INSERT INTO bb".$n."_customer_rechnungen (customerid, email, productid, preis, status, time, make_update, installservice, firstname, name, address, zipcode, city, country, company, multilicense, paypal, userid)
VALUES ('".intval($_POST['customerid'])."','".addslashes($_POST['email'])."','".intval($_POST['productid'])."','".intval($_POST['preis'])."',0,'".time()."','".intval($_POST['update'])."','".intval($_POST['install'])."','".addslashes($_POST['firstname'])."','".addslashes($_POST['fname'])."','".addslashes($_POST['address'])."','".addslashes($_POST['zipcode'])."','".addslashes($_POST['city'])."','".addslashes($_POST['country'])."','".addslashes($_POST['company'])."','".addslashes($row['multilicense'])."','".addslashes($_POST['payment'])."','".$wbbuserdata['userid']."')");
suchen Sie weiters nach folgender Codestelle:
und ersetzen Sie diese mit folgender:
$row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".intval($id)."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */
suchen Sie weiters nach folgender Codestelle:
und ersetzen Sie diese mit folgender:
$row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".intval($id)."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */
suchen Sie weiters nach folgender Codestelle:
und ersetze Sie diese mit folgender:
$filedata = $db->query_first("SELECT * FROM bb".$n."_customer_versions WHERE id = '".intval($id)."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */
Suchen Sie in der Datei products.php nach folgender Codestelle
und ersetzen Sie diese mit folgender: