Certified Secure Challenges - Over challenges en dergelijke

Path Traversal

03-05-2013, 11:15 door Anoniem, 5 reacties
Hallo,

Ik ben juist begonnen met de Certified Secure challenges om mijn begrip hiervan te vergroten.

Nu ben ik bezig met path traversals, alleen loop ik tegen het volgende aan:

Wanneer ik geen variable heb in een URL aanroep, is het dan mogelijk om de URL zelf te 'misbruiken'? Als ik mijn URL bijvoorbeeld aanpas van: www.website.nl/index.php naar www.website.nl/../../etc/passwd, dan zou dit toch moeten kunnen werken?
In mijn browser wordt dit nl zover ik kan zien aangepast en 'teruggezet' naar www.website.nl/etc/passwd.

Snap ik het nu niet of doe ik iets verkeerd?
Reacties (5)
04-05-2013, 10:33 door [Account Verwijderd]
[Verwijderd]
04-05-2013, 12:05 door hispan1c
Nette uitleg Shakaraja, Thanks.
04-05-2013, 12:11 door Anoniem
Ja, in principe kan dat, en inderdaad de eerste misbruiken werkten precies zo. Nee, in de praktijk letten webservers daar tegenwoordig op -- moet een hele rare webserver zijn die ze nog doorlaat. Plus geintjes als, bijvoorbeeld, chroot, die roet in het eten kunnen gooien.

Je moet het dan hebben van scripts die stukken webserver heruitvinden en dit soort checks vergeten. Of gaten vinden die je toestaan softlinks te creeren, server-side include vulnerabilities met path traversals erin, dat soort gein.
17-05-2013, 11:12 door Anoniem
Dit ligt niet zozeer aan de webserver maar aan de configuratie hiervan.. :)
Je kan bijvoorbeeld allow_url_fopen aan of uit zetten
17-05-2013, 18:39 door rob

Als je http://www.website.com/../../etc/passwd invult corrigeert je browser dit automatisch naar /etc/passwd omdat http://www.website.com/ geen directory is, het is een URL, een identifier voor de website.

Bijna goed: het is niet de browser die het "corrigeert", maar de webserver. In geval van een script, dus bijv. /iets.php?f=../../../../../etc/passwd ; dan ligt in dat geval de verantwoordelijkheid bij het *script* (iets.php) om de ../ 's eruit te halen. Sommige scripts doen dit door bijv. alle '/' characters te replacen met '\/'.

Als je http://www.website.com/index.php?id=../../etc/passwd invult en er is een path traversal vulnerability aanwezig dan opent de parameter 'id=' waar een script achter hangt dat zegt dat hij een bestandje moet openen, het bestand wat als id wordt aangegeven. Wat inhoud, 2 directories terug, en dan naar etc/passwd.

Edit: er stonden wat foutjes in..

Gecorrigeerd graag gedaan
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.