Bun venit pe SkullBox!

Bine ai venit, Vizitator. Trebuie să te autentifici sau să îţi creezi un cont.
Ai pierdut sau nu ai primit emailul care conţine codul de activare al contului?

Autentifică-te cu numele de utilizator, parola şi precizează durata sesiunii.
  Pagini: [1]
  Imprimă  
Autentificare pe baza de \  (Vizualizari 510)
vladiii
*

Deconectat Deconectat

Mesaje: 166

Autentificare pe baza de \, Mai 09, 2008, 09:03

*Pe baza de imagine, insa "amprenta" sunt mai bine.
Acesta e un cod PHP care permite autentificare pe un site web (admin panel & other shitz) folosind o imagine. Daca pixelii imaginii uploadate in acel moment corespund cu cei din baza de date, atunci se face autentificarea, altfel nu.
Folderul trebuie sa aiba chmod777 (deoarece imaginea se uploadeaza, i se preiau culorile pixelilor, apoi se sterge).
Nu este ceva extraordinar si iesit din comun, dar ma plictiseam aseara. Care ar fi avantajele ? In primul rand nu se poate ghici parola, deoarece la o imagine de 150x150 obtinem 22500 culori (8 caractere parca). Dezavantaje ? Nu stiu cat de fiabil este si partea care nu imi place mie este ca trebuie mereu uploadata imaginea.
conexiune.php
Cod:
<?php
$hostname
="localhost";
$username="username";
$password="password";
$database="db";

$conexiune=mysql_connect($hostname$username$password)
or die (
"eroare !");

$bazadate=mysql_select_db($database$conexiune)
or die (
"eroare !");
?>
Acum trebuie uploadata imaginea pe server, eu mi-am ales-o pe urmatoarea:

Apoi cream tabela in BD:
Cod:
<?php
include ("conexiune.php");

$delete="DROP TABLE IF EXISTS tabela";
mysql_query($delete$conexiune);

$table="CREATE TABLE tabela (
id int(3) NOT NULL AUTO_INCREMENT,
culoare int(200) NOT NULL ,
PRIMARY KEY (id)) TYPE=MyISAM"
;
if(
mysql_query($table)){
echo 
"Tabelul a fost creat<br/>";
}
else{
echo 
"Tabelul nu a fost creat<br/>";


?>
Urmeaza culoare.php, fisier care poate fi sters dupa ce este rulat o singura data (acesta preia culoarea pixelilor si o baga in bd):
Cod:
<?php
include ("conexiune.php");
$im imagecreatefromjpeg("imagine.jpg");
for(
$i=0$i<150$i++) 
    {
     for(
$j=0$j<150$j++)
         {
           
//Extragem culoarea si o introducem in BD
           
$rgb imagecolorat($im$i$j);
           
$sql "INSERT INTO tabela (culoare) VALUES ('".$rgb."')";
           if(
mysql_query($sql)) { echo "added"; }
           else { 
mysql_error(); }
         }
    }

mysql_close($conexiune);
?>
Si partea finala... index.php:
Cod:
<FORM ENCTYPE="multipart/form-data" ACTION="" METHOD=POST>
Imagine: <INPUT NAME="file_up" TYPE="file">
<INPUT TYPE="submit" name="submit" VALUE="Upload">
</FORM>

<?php
include ("conexiune.php");

if(
$_POST['submit'])
{
$file_upload="true";
$file_up_size=$_FILES['file_up'][size];
if (
$_FILES[file_up][size]>17000)
    {
      die(
"dimensiune prea mare");
      
$file_upload="false";
    }
//Lasam doar jpg/jpeg
if (!($_FILES[file_up][type] =="image/jpeg"))
    {
      die (
"nu e jpg/jpeg");
      
$file_upload="false";
    }
$file_name=$_FILES[file_up][name];
//Generam un nume pt. imagine
$x[0]=rand(010);
$x[1]=rand(010);
$x[2]=rand(010);
$x[3]=rand(010);
$x[4]=rand(010);
$add="$x[0]$x[1]$x[2]$x[3]$x[4]$file_name";
if(
$file_upload=="true")
   {
     if (
file_exists($add))
        {
           die (
"Fisierul ales exista deja pe server.");
        }
     else
        {
           if(
move_uploaded_file ($_FILES[file_up][tmp_name], $add))
             {
                
$link=$add;
                
$hand=imagecreatefromjpeg($add);
                
//Preluam dimensiunile
                
$x=imagesx($hand);
                
$y=imagesy($hand);
                if (
$x!= 150 || $y!=150
                    {
                       
unlink($link);
                       die (
"dimensiunile nu corespund");
                    }
                
//Daca dimensiunile sunt cele bune...
                
else
                    {
                       
$count=0;
                       for (
$i=0$i<150$i++) 
                           {
                              for (
$j=0$j<150$j++)
                                  {
                                     
$pixel[$count]=imagecolorat($hand$i$j);
                                     
$count++;
                                  }
                           }
                       
unlink($link);
                       
$count=0;
                       
$asd="true";
                       
//Extragem din DB
                       
$sql="SELECT * FROM tabela";
                       
$sql=mysql_query($sql);
                       while(
$row=mysql_fetch_row($sql)) 
                            {
                               if (
$pixel[$count]!=$row[1])
                                  {
                                    
$asd="false";
                                  }             
                               
$count++;
                            }
                       if (
$asd=="false") { echo "parola gresita !"; }
                       else if(
$asd=="true") { echo "asta e parola!"; }
                       else { die(
"eroare !"); }
         }
    } } } }
mysql_close($conexiune);
?>
Asta e tot. Daca descoperiti buguri postati-le aici. De mentionat ca nu merge pe IE, insa functioneaza pe Mozilla, Opera, Safari. Bafta !
**Nu am stiut unde sa postez asta...
« Ultima modificare: Oct 09, 2008, 21:43 de către emi » Memorat

Mike
*

Deconectat Deconectat

Mesaje: 879

WWW
Autentificare pe baza de "amprenta", Mai 09, 2008, 17:18

Interesant post, chiar imi place. Bravo! Big grin
Memorat


"The best part of falling is getting back up again." - David Belle
Archangel
*

Deconectat Deconectat

Mesaje: 1096

Autentificare pe baza de "amprenta", Mai 09, 2008, 17:44

mie imi place metoda dar trebuie sa iei imaginea cu tine, sa o ai oriunde te-ai autentifica ... sau sa o uploadezi undeva sa stii numai tu de ea Big grin
Memorat

xploder
*

Deconectat Deconectat

Mesaje: 733

Autentificare pe baza de "amprenta", Mai 09, 2008, 17:48

Vulnerabilitati?Smile
Memorat

..................................................
vladiii
*

Deconectat Deconectat

Mesaje: 166

Autentificare pe baza de "amprenta", Mai 09, 2008, 18:59

^ huh ? ce vrei sa zici ?

^^ imaginea o poti salva undeva pe server... sau pe mail Big grin
Memorat

CyberKing
*

Deconectat Deconectat

Mesaje: 352

WWW
Autentificare pe baza de "amprenta", Mai 09, 2008, 20:57

inca ceva folositor Smile
felicitari !!
Memorat

On the road again!
 |""""""""""""""""""|        || _
 |      DUREX       |,      |||_;\,___,
 |___ _    _  _____/== |_|_|_,'__|
  '  |(@))"(@))      |(@)   (@)
DarkByte
*

Deconectat Deconectat

Mesaje: 2441

WWW
Autentificare pe baza de "amprenta", Mai 09, 2008, 21:08

Zici ca nu-ti place ca tot trebuie sa uploadezi imaginea ... modifica nitel prin surse si fa in asa fel incat, pe langa upload, sa ai posibilitatea sa pui un link catre imagine. Imaginea o poti hosta pe serverul unde e si site-ul si ... gata Smile Trebuie sa tii minte linkul si cam atat.

Succes
Memorat

Light travels faster than sound. This is why some people appear intelligent until they speak.

Quidquid latinum dictum sit, altum viditur.

CyberKing
*

Deconectat Deconectat

Mesaje: 352

WWW
Autentificare pe baza de "amprenta", Mai 09, 2008, 21:21

atunci unde ar fi securiatatea orcine poate vedea un link cand il scri
imaginea ar trebui sa fie privata
Memorat

On the road again!
 |""""""""""""""""""|        || _
 |      DUREX       |,      |||_;\,___,
 |___ _    _  _____/== |_|_|_,'__|
  '  |(@))"(@))      |(@)   (@)
SkullAds
Ecspert
ReclAmator
* * * * *
Google AdSense

Gen: Bărbat
Mesaje: Multe

Reclama AdSense,
 

 
   


Pagini: [1]
  Imprimă  
 
Schimbă forumul:  

Ethical hacking and programming community
Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC
Traducerea în limba română © 2006-2007 www.smf.ro