huib - image exploit
ik was net even aan het kloten, en ik ben ergens achter gekomen, wat veel van jullie misschien wel interessant/schokkend vinden..
veel mensen denken dat checken van een plaatje met headers en/of een functie uit de gd library..
dit is niet correct, het is nog steeds mogelijk php in een plaatje te zetten, terwijl het WEL een geldig plaatje is!
maak met the gimp een klein gifje, met als commentaar
als je dit bestand als gif opslaat, en je vraagt het op van een server, zal je gewoon een plaatje zien..
hernoem je het nu naar php, dan zie je eerst een hoop code, en daarna de php info!
*getest op wampp5*
edit: of het enigzins nut heeft weet ik niet.. nog geen situatie kunnen bedenken..;) maar toch..
vond het wel grappig, dus wou het even delen..
Gewijzigd op 01/01/1970 01:00:00 door Katjan
En natuurlijk controleren via mime & extentie :)
Maar bedankt voor het delen, ik wist het nog niet.
Het mime checken en extensie zal die dus volledig doorkomen. Dus als jij zo een plaatje kan uploaden op een website, deze via een exploit kan hernoemen tot .php en hoppa je voert php uit :)
Maar goed de verklaring ontbreekt nog daarom: als je comment in een plaatje opslaat komt dit er gewoon als ASCII in te staan. Parser begint binary als ASCII te lezen en komt op een gegeven moment <?php tegen, parsert deze code en gaat weer verder naar het eventuele volgende code blok.
Het zelfde effect geeft het openen van elk ander binary bestand met kladblok het toevoegen van een paar regels code (maakt niet uit waar) en het opslaan als .php;
Het kan dus ook met b.v. een mp3 bestand
Dit is geen exploit. De echte exploit in jouw scenario is het naar .php kunnen hernoemen.
De kans dat je rename uit kan voeren, dus of er een lek script in zit dat rename draait op user-input, of dat er ergens code via eval wordt uitgevoerd, is vrij klein.
Mime en extensie checks doen volgens mij hetzelfde. Tot die schokkende conclusie kwam Jan Koehoorn volgens mij laatst
je upload de gif als avatar *poof* php info >.<
@Jeroen: nee, want een avatar is .gif en de server evalueert alleen .php
http://www.adek.org/c.gif dan als een php file?
hmm dat zie je verkeerd want bijv waarom werk nee, ik zie toch echt geen uitgevoerde php code...
de manier ga ik hier niet uit leggen, want mij script welke de zelfde functie's heeft als deze is al een keer hier verwijderd, en ik heb geen zin in een ban e.d.
EDIT:
zoiezo word het posten van het script al niet gewaardeerd (A)
Gewijzigd op 01/01/1970 01:00:00 door Jeroen
Fora scripts gebruiken voor dit soort dingen ook met een rede file_get_contents ipv include...
en de exploit voor deze source is btw ook makelijk te vinden op google>.<
EDIT: 200 posts xDXDXDXD
EDIT2: het leuke aan het script is wel dat je de server kan rooten van de web page :P
Gewijzigd op 01/01/1970 01:00:00 door Jeroen
niet mee eens, het leuke met plaatjes is dat je een geldig plaatje terugkrijgt, die dus door alle php functies hiervoor zal komen..
verder: er zijn mij een paar gevallen bekend dat mensen images includen, als je ingelogd bent.. en waar dit een exploit voor zou zijn..
voorbeeld: img.php, als je ingelogd bent include ie een plaatje, maar alleen als dat plaatje extensie gif of jpg heeft, en door imgresize komt..
dat komt dit plaatje, want hij is gewoon geldig..
daar doelde ik op
Dat soort scripts behoren readfile of file_get_contents of wat dan ook te gebruiken. Zodra daar include wordt gebruikt is dat de fout, niet dat hij het plaatje accepteert.
mensen denken, dat alleen plaatjes door resize enz komen..
dat was waar ik op doelde.. een geldig plaatje KAN ook php bevatten.. thats all..
en als je het al wist, das mooi.
wou het gewoon even delen..
moeilijk doen is ook een vak..