Vulnerabilitati PHP – Authentication Bypass - Securitatea Informatica

Vulnerabilitati PHP – Authentication Bypass

Sfaturi : Uitaţi-vă cu atenţie în scripturi, în foldere administrative, poate nu sunt protejate, şi căutaţi variabile nedefinite ca “login” sau “auth”.

Exemplu de bază

Vă voi prezenta un exemplu simplu. Veţi vedea cum să treceţi de login prin metoda “variabilei de login”.

Cod:

<?php
if ($logged==true)
{
echo 'Logged in.';
}
else
{
print 'Not logged in.';
}
?>

Aici avem nevoie de register_globals = on. Dacă setăm variabilei “logged” valoarea 1 condiţia va devenii adevărată şi vom fi logaţi. Exemplu:

http://127.0.0.1/test/php?logged=1

Şi ne-am logat cu succes.

Prin intemediul unei variabile de login

Cod:

<?php
if ($login_ok)
{
$_SESSION['loggato'] = true;
echo "<p>$txt_pass_ok</p>";
echo"<div align='center'><a href='index.php'>$txt_view_entry</a> |
<a href='admin.php'>$txt_delete-$txt_edit</a> | <a href='install.php'>$txt_install
</a></div>";
}
?>

Să vedem. Dacă valoarea variabilei “login_ok” este TRUE ( 1 ) scriptul ne va seta o sesiune care spune scriptului că suntem deja logaţi. Deci să setăm valoarea TRUE variabilei “login_ok”.
Exemplu:

http://127.0.0.1/login.php?login_ok=1

Şi suntem logaţi.

Admin CP neprotejat

Poate nu vă vine să credeţi dar în unele scripturi panoul de control al administratorului nu este protejat în nici un fel: fără logare, fără .htaccess, nimic. Şi simplu accesăm panoul de admin şi preluăm controlul asupra site-ului. Exemplu:

http://127.0.0.1/admin/files.php

Am accesat panoul de control cu o simplă cerere.

Cum să fixezi

Variabila de login: Folosiţi un sistem de autentificare REAL, nu verificaţi dacă logarea a avut loc în modul acesta. Exemplu:

Cod:

<?php
if($_SESSION['logged']==1) {
echo 'Logged in'; }
else { echo 'Not logged in';
}
?>

Admin CP neprotejat: Folosiţi un sistem de autentficarea sau .htaccess pentru a permite accesul pe baza de adresă IP sau .htpasswd pentru a cere un username şi o parolă pentru panoul de control. Exemplu:

.htaccess :

order deny, allow
deny from all
allow from 127.0.0.1

.htpasswd :

AuthUserFile /the/path/.htpasswd
AuthType Basic
AuthName “Admin CP”
Require valid-user

and /the/path/.htpasswd

sirgod:$apr1$wSt1u…$6yvagxWk.Ai2bD6s6O9iQ.

Sursa: SirGod

Twitter Digg Delicious Stumbleupon Technorati Facebook


Nici un comentariu inca... Fii primul care lasa un comentariu!

Lasa un raspuns

This site is protected by Comment SPAM Wiper. This site is protected by WP-CopyRightPro