Vinnaren i pepparkakshustävlingen!
Visar 1 till 1 av 1.
Forum: IT-säkerhet
2014-05-23, 13:31
Citat:
Ursprungligen postat av PirateHook
Tackar för en väl skriven genomgång! Hur hittar man en sådan sårbarhet? Är det bara att köra [] och se om du får samma resultat som utan?
Tack än en gång .Chloe ! :)
Array-grejen var bara ett sätt att komma förbi deras filtrering. Eftersom de hade två funktioner som skulle testa samma sträng så kan du ange en array så kommer de olika värdena testas, så båda värdena kommer alltså inte att behandlas lika.

Inom PHP så ska man inte koda så, man ska inte skicka runt dina variabler inom olika funktioner, för kommer du förbi en funktion så kan du antagligen komma förbi nästa.

För att testa mot detta så kan jag ge ett exempel:
Kod:
/search.php?q=test                  //vanlig sök
/search.php?q=test&q=test2         //test2 kommer sökas efter
/search.php?q[0]=test&q[1]=test2  //test2 kommer sökas efter
/search.php?q[1]=test2&q[0]=test //test2 kommer sökas efter
Och detta eftersom strängen "test" gick igenom kontrollerna och likaså "test2", det betyder att du kan ange ett korrekt värde i första array'n men skadlig kod i den andra. T.ex:
Kod:
/search.php?q[0]=test&q[1]={${phpcredits()}}  

Så det du ska göra är att lägga ut [] och se vad funktionen behandlar, är det värdet 0 eller 1? Är det värde nummer ett så gick alltså värde nummer 0 igenom så då kan du kanske om du har enorm tur komma förbi filtreringen.