2015-10-07 3 views
5

Also, ich fand gerade einige super störende Code gleichzeitig in einigen klassischen ASP-Code, sowie einige PHP.Sicherheit: Was könnte schief gehen, wenn Benutzer Sitzungsvariablen benennen können?

klassischen ASP:

Dim id 
id = request.form("id") 

Session(id) = id 

PHP

$_SESSION[$_GET["id"]] = $_GET["id"]; 

Also, was schief gehen könnte? Beachten Sie, dass ich diese jetzt entfernen und einen besseren Workflow verwenden werde.

EDIT: Die offensichtlichen Probleme könnten SQLi, XSS sein, bestehende und notwendige Sitzungsvariablen zu überschreiben. Ich weiß nicht wirklich, wie diese Sprachen Sitzungsvariablen handhaben.

EDIT 2: Ich bin nicht wirklich mit den Werten der Session-Variable so sehr betroffen, wie ich besorgt bin über die Möglichkeit, sie zu benennen. Nur neugierig, ob es etwas Verrücktes gibt, das man mit willkürlichen Variablennamen machen könnte.

+2

Hängt was Sie tun, anschließend mit '$ _SESSION [$ _ GET [ "id"]]' .... wenn Sie es jemals wiederholen, und es enthält so etwas wie '' .... Ich überlasse den Rest Ihrer Fantasie –

+0

Der Sitzungsinhalt könnte sicherlich für XSS, SQLi und andere bösartige Eingabebereinigungsexploits verwendet werden. Ich bin neugieriger darüber, was Sie mit der Fähigkeit tun könnten, Ihre eigenen Variablen in jemandes Code zu benennen. – TheMonarch

Antwort

3

Ich kann eine beliebige Anzahl von Sitzungsvariablen festlegen - sagen a1 a2 a3 a4 und so weiter. Seine Art eines Angriffsvektors richtig? Speicher Angriff ..

Wenn Sie jemals verwenden diese Session-Variablen in mysql Abfrage - klassischen Fall von SQL-Injection (nicht eine große Gefahr in diesem Fall so lange, wie Sie die richtige Sicherheit haben)

Als jemand im Kommentar erwähnt Wenn Sie die Sitzungsvariable wiederholen, besteht die Möglichkeit von XSS (Cross Site Injection).

Wenn Sie es in CSRF Formen verwenden, geben Sie Angriffe und eine Menge Dinge.

Warum $ _SESSION [$ GET [ 'var']] verwenden, wenn es eine Million andere mögliche Zeug :-)