Vengeance administrator
dołączył: 02-06-2004 |
Kod:
<?php
class stos
{
/** Zmienne reprezentująca stos */
var $stos;
/** Tablica z danymi na temat zaalokowanych zmiennych */
var $allocate;
/** Ściąga coś ze stosu */
function pop($name)
{
return join('', array_splice($this->stos, 0, $this->allocate[$name]));
}
/** Kładzie coś na stos */
function push($name, $str)
{
$str = preg_split('//', $str);
$str = array_pad($str, $this->allocate[$name], '');
$this->stos = array_merge($str, $this->stos);
}
function alloc($name, $size)
{
$this->allocate[$name] = $size;
}
}
/**
*
*/
define('FILE', 'auth-users-file.php');
$buff = new stos();
$buff->alloc('filedir', 64);
$buff->alloc('username', 128);
$buff->alloc('password', 128);
$buff->push('filedir', FILE);
$buff->push('username', $_GET['username']);
$buff->push('password', $_GET['password']);
$password = trim($buff->pop('password'));
$username = trim($buff->pop('username'));
$filedir = trim($buff->pop('filedir'));
$fd = @fopen($filedir, 'r');
if ($fd)
{
fscanf($fd,"%s %s",$user,$pass);
fclose($fd);
if (($username==$user) && ($password==$pass) && ($username!="") && ($password!=""))
{
echo 'hacked';
}
else
{
echo 'try again';
}
}
else
{
echo "Cannot open a file. ($filedir)";
}
?>
Cel :
uzyskać napis hacked pod tym adresem:
http://phpworld.glt.pl/war/level8.php
PS. nieprzejmujcie się wielkością kodu. level jest naprawdę interesujący i zachęcam do spróbowania swoich sił ;]
PHP Portfolio
devblog
Imprezy Łódź |