Opened 7 years ago
Closed 7 years ago
#1622 closed Bug/Fehler (fixed)
Potentielle Sicherheitslücken in /includes/classes/shopping_cart.php
| Reported by: | Owned by: | somebody | |
|---|---|---|---|
| Priority: | hoch | Milestone: | modified-shop-2.0.5.0 |
| Component: | Sicherheit | Version: | 2.0.4.2 |
| Keywords: | Cc: | ||
| Blocked By: | Blocking: |
Description (last modified by )
Einige Variablen werden ungeprüft in Datenbankabfragen genutzt.
Suchen nach:
WHERE products_id = '".$products_id."'
Ersetzen mit:
WHERE products_id = '".xtc_get_prid($products_id)."'
Suchen nach (mehrfach):
'customers_id' => $_SESSION['customer_id']
Ersetzen mit:
'customers_id' => (int)$_SESSION['customer_id']
Suchen nach (mehrfach):
=> $qty
Ersetzen mit:
=> (int)$qty
Suchen nach:
xtc_db_input($qty)
Ersetzen mit:
(int)$qty
Attachments (0)
Change History (7)
comment:1 by , 7 years ago
| Description: | modified (diff) |
|---|---|
| Milestone: | → modified-shop-2.0.5.0 |
comment:2 by , 7 years ago
comment:3 by , 7 years ago
| Description: | modified (diff) |
|---|
comment:4 by , 7 years ago
Ja die Datei stimmt. Er hatte nur SESSION! anstatt SESSION geschrieben, daher hast du vermutlich zumindest den Teil nicht gefunden. Alle anderen Teile finde ich in besagter Datei in Shopversion 2.0.4.2
comment:5 by , 7 years ago
Ich nehme meine Aussage zurück.
web-looks hat aus Versehen $_SESSION['customer_id'] (Zeichen ! nach $_SESSION) geschrieben und ich hatte es kopiert für die Suche im File.
Trotzdem folgende Stellungnahme zu den einzelnen Aussagen:
WHERE products_id = '".$products_id."'"
kommt einmal vor und darf nicht mit
WHERE products_id = '".xtc_get_prid($products_id)."'
ersetzt werden, denn es geht dabei um den Array-Key im Array $_SESSION[cart], welcher definitiv ein INT ist.
Wenn man unbedingt will kann man dort mit (int) casten.
Was folgendes betrifft:
$_SESSION['customer_id']
An zwei Stellen wird nicht mit (int) gecastet.
Dabei handelt es sich allerdings um Array-Element-Zuweisungen und durch das anschließende xtc_db_perform() wird durch genannte Funktion automatisch ein xtc_db_input() ausgeführt. Das ist also keine Sicherheitslücke. Man kann natürlich auch hier sicherheitshalber mit (int) casten.
Was dies betrifft:
=> $qty
kommt genau zweimal vor und es gilt hier dasselbe wie bei dem vorhergehenden Fall.
Auch hier handelt es sich um Array-Element-Zuweisungen und durch das anschließende xtc_db_perform() wird durch genannte Funktion automatisch ein xtc_db_input() ausgeführt. Das ist also keine Sicherheitslücke. Man kann natürlich auch hier sicherheitshalber mit (int) casten.
Gruß,
noRiddle
comment:6 by , 7 years ago
Nochmal Korrektur, ich Hirni, :ächz:
Dies
WHERE products_id = '".$products_id."'"
in das zu ändern
WHERE products_id = '".xtc_get_prid($products_id)."'
ist doch in der Tat richtig und ein Bug, nicht wirklich eine Sicherheitslücke, es sei denn die Session wäre maipulierbar.
Sorry, für die Verwirrung.
Gruß,
noRiddle

Sicher, daß die angegebene Datei stimmt ?
Ich finde nichts davon in /includes/classes/shopping_cart.php.
Gruß,
noRiddle