Kom ihåg mig?
Home Menu

Menu


Gissa PHP-funktionen

 
Ämnesverktyg Visningsalternativ
Oläst 2005-07-25, 23:14 #11
koalas avatar
koala koala är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Sep 2004
Inlägg: 1 154
koala koala är inte uppkopplad
Har WN som tidsfördriv
koalas avatar
 
Reg.datum: Sep 2004
Inlägg: 1 154
Citat:
Originally posted by eg0master@Jul 25 2005, 22:07
Om du gillar sånt ska du titta på "orginalet": http://www.ioccc.org/

Kolla koden för en av vinnarna 1994: dodsond1 (http://www.de.ioccc.org/years.html)
Ett prgram som spelar othello och där koden ser ut som ett othellobräde...
Ah, tack för länken eg0master... nu har jag nåt att läsa...

Jag skrev precis följande kod som ytterligare ett exempel på ... ja gissa h34r:
Hitta det allvarligaste "felet".

Kod:
$email = $_REQUEST['email'];
$text = $_REQUEST['text'];

if (is_not_email($email) && is_not_correct($text)) {
  echo 'Hoppsan.';
} else {
  mail('info@localhost', 'kontakt', $text . $email);
  echo 'Ditt meddelande har skickats.';
}

function is_not_email ($email) {
  if (!preg_match("/^[\w\xe6\xc6\xf8\xd8\xe5\xc5\xf6\xd6\xe4\xc4]\.x$/", $email)) 
    return false;
  return true;
}

function is_not_correct ($text) {
  $status = eval($text);
  if ($status === true) return true;
  else return $status;
}
koala är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-07-26, 03:39 #12
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Citat:
Originally posted by koala@Jul 25 2005, 23:14
Kod:
$email = $_REQUEST['email'];
$text = $_REQUEST['text'];

if (is_not_email($email) && is_not_correct($text)) {
  echo 'Hoppsan.';
} else {
  mail('info@localhost', 'kontakt', $text . $email);
  echo 'Ditt meddelande har skickats.';
}

function is_not_email ($email) {
  if (!preg_match("/^[\w\xe6\xc6\xf8\xd8\xe5\xc5\xf6\xd6\xe4\xc4]\.x$/", $email)) 
    return false;
  return true;
}

function is_not_correct ($text) {
  $status = eval($text);
  if ($status === true) return true;
  else return $status;
}
Som text räcker det att jag skriver:

[email protected]&test=<?return true;?>[massa fulkod o headers...]
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-07-26, 11:34 #13
koalas avatar
koala koala är inte uppkopplad
Har WN som tidsfördriv
 
Reg.datum: Sep 2004
Inlägg: 1 154
koala koala är inte uppkopplad
Har WN som tidsfördriv
koalas avatar
 
Reg.datum: Sep 2004
Inlägg: 1 154
Citat:
Ursprungligen postat av Jonas
Citat:
Ursprungligen postat av koala
Kod:
email = _REQUESTemail;
text = _REQUESTtext;
if is_not_emailemail is_not_correcttext {
 echo Hoppsan.;
} else {
 mailinfo@localhost, kontakt, text . email;
 echo Ditt meddelande har skickats.;
}
function is_not_email email {
 if preg_match/^wxe6xc6xf8xd8xe5xc5xf6xd6xe4xc4.x/, email 
  return false;
 return true;
}
function is_not_correct text {
 status = evaltext;
 if status === true return true;
 else return status;
}
Som text räcker det att jag skriver:
[email protected]=?return true;?[massa fulkod o headers...]
Inte riktigt så, men nästan. Funktionen is_not_correct kommer faktist aldrig någonsin att köras, förutom i specialfallet då man skriver in en epostadress som matchar "lösenordet", som här kan vara t ex "ä.x". Skriverman alltså en sådan e-postadress (vilket man bara gör om man känner till det..) så kan man exekvera godtycklig php-kod som man skriver i textfältet...

Inte så uppenbart för den som litar på funktionernas namn
koala är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 00:33.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017