Directory Traversal probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Fullstack Developer MKB

Over het bedrijf: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Zij bieden software en diensten op het gebied van HR en salarisadministratie. Ben jij geschikt als Fullstack Developer? Heb je ervaring met Javascript? Vaste baan: Fullstack Developer MKB HBO 3.000 - 4.500 Fullstack Developer Wij helpen ondernemers met het aanbieden van een online HR product waarbij de medewerker centraal staat. Wij stellen de mens centraal in een onderneming. Zij werken in een jonge en informele organisatie en hebben een leuke werksfeer. Zij werken voor MKB klanten. Deze werkgever heeft

Bekijk vacature »

Low code developer

Ben jij de low-code developerdie het leuk vindt zijn kennis toe te passen in complexe en maatschappelijk relevante ingenieursprojecten? Wij zoeken per direct een low-code developer met ervaring om ons team te versterken. Je komt terecht in een team dat een mix is van low-code developers, software developers, IT consultants en projectleiders. Als low-code developer ga je aan de slag met het ontwikkelen van digitale diensten en het automatiseren van onze werkprocessen. Je maakt hierbij gebruik van de low-code platformen van Outsystems en Microsoft (Power Automate en Power Apps). In overleg met onze product owners en projectleiders bepaal je per

Bekijk vacature »

Magento Expert PHP

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij helpen onze klanten aan een passende online presence. Wil jij werken als Magento expert? Heb jij ervaring met PHP? Vaste baan: Magento Expert PHP CMS 2.600 - 3.700 Magento Expert Deze werkgever is een fullservice digital agency. Wij helpen onze klanten de juiste keuzes te maken. Elk project is bij ons daarom anders. Wij gaan er met een open houding in. Ons ultieme streven is de online doelstellingen van onze klanten te helpen realiseren. Deze werkgever

Bekijk vacature »

.NET Software Ontwikkelaar Agile

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever levert producten voor de medische sector. Wil jij werken als Software Engineer? Heb jij ervaring met de scrum agile methodiek? Vaste baan: Software Ontwikkelaar Agile HBO WO 3.300 - 4.800 Software Engineer Deze werkgever is toonaangevend op het gebied van innovatieve apparatuur en software die ontwikkeld wordt om de levens van mensen met kanker en hersenaandoeningen te verbeteren, te verlengen en te redden. Behalve dat je in deze baan belangrijk werk doet ter ondersteuning van

Bekijk vacature »

Service Desk Engineer

Functieomschrijving Enable U is op zoek naar een Service Desk Engineer. Wil jij onderdeel zijn van het team dat onze succesvolle en innovatieve integratie oplossingen bij en voor klanten beschikbaar stelt en als eerste aanspreekpunt voor de klant zorgdragen voor een vlotte en correcte afhandeling van support meldingen? Wil je jezelf volop ontwikkelen en spreekt een dynamische en collegiale omgeving jou aan? Kom dan ons team versterken! Wat jij gaat doen Als Service Desk Engineer ben je het eerste contactpunt voor de klant om incidenten en problemen aan te nemen en af te handelen. Daarbij is een belangrijk onderdeel ook

Bekijk vacature »

ICT Developer / Systeembeheerder

Wie zijn wij? Mafico is een importeur - en exclusief distributeur van een aantal topmerken van muziekinstrumenten, foto/video-, installatie- en HiFi-apparatuur. Wij leveren onze producten aan de mooiste (online) winkels binnen de Benelux en groeien enorm. Ons team bestaat uit vakmensen met passie en kennis waarbij initiatief nemen en doorpakken een belangrijk onderdeel is van de dagelijkse werkzaamheden. Werken bij Mafico houdt ook in dat je komt te werken in een jong en enthousiast team met een flinke dosis humor en waar iedereen naadloos samenwerkt om gestelde doelstellingen te behalen. Er heerst een sterke en unieke bedrijfscultuur. Wij zoeken een

Bekijk vacature »

.NET Core Software Developer gericht op de toekoms

Bedrijfsomschrijving Dit bedrijf in Hoofddorp is per direct op zoek naar een ervaren Software .Net Developer die het technisch team bestaande uit 25 professionals komt versterken. Het bedrijf ontwikkelt geavanceerde softwaretoepassingen bestemd voor de optimalisatie van financiële bedrijfsprocessen bij diverse bedrijven, nationaal en internationaal. De organisatie is al tientallen jaren erg succesvol in en zij zijn nog steeds groeiende. Enkele kernpunten die het bedrijf beschrijven zijn informeel, geavanceerd, klantgericht, service minded en duurzaamheid. Een echt mooie organisatie dus om onderdeel van uit te maken! Functieomschrijving Je 7 Software Development collega's van de R&D afdeling hebben je versterking nodig om de

Bekijk vacature »

Full Stack Developer PHP

Over het bedrijf: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij creëren ultramoderne digitale producten. Wil jij werken als Full Stack Developer? Heb jij ervaring met PHP? Vaste baan: Full Stack Developer PHP HBO 2.800 - 4.300 Full Stack Developer Bij ons is er een open cultuur met veel verantwoordelijkheid. Deze werkgever staat voor elkaar klaar, willen allemaal het beste voor deze klanten en zijn continu gericht op het verbeteren van processen en ons werk. Wij creëren digitale producten die intuïtief en boeiend zijn, maar ook de best mogelijke

Bekijk vacature »

startende / junior Java developer

Als startende / junior Java developer krijg je een ervaren Java buddy, mag je opleidingen volgen en ga je direct in een Scrum team Java software ontwikkelen. Je wordt goed begeleid en er is veel ruimte voor innovatie. Bij deze organisatie ga je interessante tastbare maatschappelijke applicaties ontwikkelen. Miljoenen mensen zijn dagelijks afhankelijk van de software. Er zijn 8 Java Scrumteams, waarbij ieder team aan een eigen applicatie bouwt. In ieder team zijn meerdere senior, medior en junior Java developers aanwezig. Daarnaast is er minimaal 1 Tester en een vaste product owner per team. Er wordt regelmatig 'pair programming' toegepast.

Bekijk vacature »

Front End Developer Javascript VueJS

Bij welk bedrijf je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij draaien om een revolutionaire oorsensor voor melkveehouders. Ben jij geschikt als Front End Developer? Heb je ervaring met Javascript? Vaste baan: Front End Developer Javascript VueJS HBO 3.000 - 4.500 Front End Developer Ons bedrijf heeft met een team van gedreven collega’s een revolutie teweeggebracht in de wereld van koemonitoringssystemen. Met hun oor-sensortechnologie helpen we veehouders wereldwijd om de productiviteit en winstgevendheid van hun melkveebedrijf te verhogen. Bij bij hun werk je aan onze eigen

Bekijk vacature »

Senior C# Developer IoT Platform (NL) bij PostNL

Senior C# Developer IoT Platform (NL) Den Haag HBO/WO IT - software development Professional Om alle Unique Loading Devices (ULD's) real-time te kunnen volgen, hebben we een IoT landschap gecreëerd dat ons continu update met de locatie en sensor informatie van de ULD's. Het IoT platform is volledig ontworpen met behulp van AWS serverless componenten en Serverless Architecture staat in het middelpunt van al onze ontwerpen. Enkele van de componenten die we gebruiken zijn AWS IoT services, Amazon Location Services, AWS Lambda enzovoort. Op ons platform vertalen we alle detecties van ULD's, vanuit AWS IoT Core naar relevante informatie over

Bekijk vacature »

Full Stack Developer

Wie wordt jouw werkgever?: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij ontwikkelen software voor de kinderopvang. Ben jij een Full Stack Developer? Heb je ervaring met (een deel van) de volgende stack: Python, Node.JS, Vue, Javascript, TypeScript, Swift (apps), Vaste baan: Full Stack Developer Python NodeJS Vue JavaScript 3.500 - 5.000 Full Stack Developer In de kinderopvang draait alles om het kind, maar soms neemt het papierwerk helaas de overhand. Wij vinden dat het kind centraal moet staan en vanuit deze filosofie hebben wij een innovatieve digitale oplossing

Bekijk vacature »

Junior Software Developer IT

Voor wie je gaat werken: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Deze werkgever levert systemen. Wil jij werken als Junior Developer? Heb jij ervaring met IT? Vaste baan: Junior Software Developer IT CRM Oplossingen 2.500 - 3.300 Junior Developer Deze werkgever is een ambitieuze, internationaal georiënteerde onderneming, gespecialiseerd op het gebied van CRM-oplossingen. Zij werken voor MKB klanten. Deze werkgever heeft veel verschillende projecten. Houd jij van afwisseling? Dan zit je bij hun goed! Op zoek naar een nieuwe uitdaging? Bij deze werkgever kom je te werken in

Bekijk vacature »

Business Developer LED Producten

Over het bedrijf: WR zoekt voor een vaste medewerker voor de volgende werkgever, je treedt gelijk in dienst bij deze werkgever: Wij ontwikkellen en verkopen interactieve LED-polsbandjes voor evenementen. Ben jij een enthousiaste business developer? Heb je ervaring met business development? Vaste baan: Business Developer LED Producten HBO 3.000 - 4.300 Business Developer Wij betrekken het publiek bij de show door middel van interactieve belevenissen tijdens de grootste events, bedrijfsfeesten en sportevenementen. Dit doen zij met Led producten als Polsbandjes, Ballen en Keycords. Deze producten sturen we aan met onze zelfontwikkelde software en geven zo een fantastische 4D lichtshow. Doordat

Bekijk vacature »

Lead PHP Developer Laravel of Symfony Interne func

Bedrijfsomschrijving Voor deze internationale organisatie ben ik per direct op zoek naar een kundige en ervaren PHP Software Developer met Lead kwaliteiten! Heb jij de nodige ervaring op het gebied van programmeren, bezit je genoeg Laravel en/of Symfony framework skills en beheers jij leidinggevende kwaliteiten? Dan komen wij graag zo snel als mogelijk met jou in contact. Deze organisatie, met meerdere vestigingen in Europa, is een leverancier van een breed scala aan tastbare (bekende) producten en ter ondersteuning van de verkoop hebben ze meerdere grote IT-platformen draaien. Het ontwikkelteam is nog relatief jong, maar het niveau van programmeren is hoog.

Bekijk vacature »
Cocotj bos

cocotj bos

05/05/2022 16:30:32
Quote Anchor link
Hoi!,

Ik ben bezig met een klein nieuw projectje waar ik een week geleden aan begonnen ben.
Het is cloudsoftware voor op het web geprogrammeerd in PHP. En ik ben dus bezig met de File Manager.
Iedere user krijgt een specifiek mapje op de cloud. Dat is de bedoeling, maar het is niet de bedoeling
dat ze verder uit hun eigen mapje om zo helemaal door het systeem heen te snuffelen. Ik heb al geprobeerd
om realpath() functie te gebruiken, maar hij gaat nogsteeds het user mapje uit. Heel irritant dus. Hier
de code van hoe het er nu uitziet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
$root_path
= $_SERVER['DOCUMENT_ROOT']."/cloudsoftware/users/tim/";
$realbase = realpath($root_path);

function
test()
{

  GLOBAL $realbase;

  if(isset($_GET['p']))
  {

    $_SESSION['dir'] = $_GET['p'];
    echo "<script>window.location = '?';</script>";
  }

  if(empty($_SESSION['dir']))
  {

    $realbase = str_replace('\\', '/', $realbase);
  }
else {
    $realbase = $_SESSION['dir'];
  }


  $exp = explode("/", $realbase);
  foreach($exp as $x=>$dirx)
  {

    if(empty($dirx))
    {

      continue;
    }

    $do = "<a href='?p='>";
    for($i=0;$i<=$x;$i++)
    {

      $do .= $exp[$i]."/";
    }

    $do .= "$dirx</a></li>\n";
  }

  chdir($realbase);


}


test();
?>


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
function get_root_dir()
{

  // include dir
  GLOBAL $realbase;

  $folder_list = "";
  $file_list  = "";

  $files = scandir($realbase);
  foreach($files as $file)
  {

    if(($file != '.'))
    {

      if(is_dir($realbase.'/'.$file))
      {

        $folder_list .= "<tr>
        <td><hr><a href='?p="
.$realbase.'/'.$file."' style='text-decoration: none; color: #333; font-size: 17px;'><i class='fa-solid fa-folder' style='color:  #2dacff; font-size: 25px;'></i> $file</a></td>
        <td><hr>"
.sizeFormat(filesize($realbase.'/'.$file))."</td>
        <td><hr>"
.date ("F d Y H:i:s.", filemtime($realbase.'/'.$file))."</td>
        <td><hr>ddd</td>
        </tr>"
;

        if(empty(is_dir($realbase.'/'.$file)))
        {

          echo 'go back';
        }
      }
elseif(is_file($realbase.'/'.$file)) {
        $file_list .= "<tr>
        <td><hr><a href='?p="
.$realbase.'/'.$file."' style='text-decoration: none; color: #333; font-size: 17px;'><i class='fa-solid fa-file' style='color: #2dacff; font-size: 27px;'></i> $file</a></td>
        <td><hr>"
.sizeFormat(filesize($realbase.'/'.$file))."</td>
        <td><hr>"
.date ("F d Y H:i:s.", filemtime($realbase.'/'.$file))."</td>
        <td><hr>Delete</td>
        </tr>"
;
      }
    }
  }


  print $folder_list;
  print $file_list;
}


// declare function
get_root_dir();
?>


Heeft iemand een idee wat ik hier precies fout doe? Kan het even niet zo 1..2...3 zien :P

Gr Cocotj
Gewijzigd op 05/05/2022 18:23:40 door Cocotj bos
 
PHP hulp

PHP hulp

27/05/2022 21:03:03
 
- Ariën -
Beheerder

- Ariën -

05/05/2022 17:53:02
Quote Anchor link
Kan je jouw code tussen code-tags plaatsen? Zie ook de Veelgestelde Vragen.
Gewijzigd op 05/05/2022 17:53:35 door - Ariën -
 
Cocotj bos

cocotj bos

05/05/2022 18:08:44
Quote Anchor link
- Ariën - op 05/05/2022 17:53:02:
Kan je jouw code tussen code-tags plaatsen? Zie ook de Veelgestelde Vragen.


Hier tussen code tags:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
$root_path
= $_SERVER['DOCUMENT_ROOT']."/cloudsoftware/users/tim/";
$realbase = realpath($root_path);

function
test()
{

  GLOBAL $realbase;

  if(isset($_GET['p']))
  {

    $_SESSION['dir'] = $_GET['p'];
    echo "<script>window.location = '?';</script>";
  }

  if(empty($_SESSION['dir']))
  {

    $realbase = str_replace('\\', '/', $realbase);
  }
else {
    $realbase = $_SESSION['dir'];
  }


  $exp = explode("/", $realbase);
  foreach($exp as $x=>$dirx)
  {

    if(empty($dirx))
    {

      continue;
    }

    $do = "<a href='?p='>";
    for($i=0;$i<=$x;$i++)
    {

      $do .= $exp[$i]."/";
    }

    $do .= "$dirx</a></li>\n";
  }

  chdir($realbase);


}


test();
?>


dit zorgt ervoor dat er een sessie word aangemaakt als je in je File Manager zit,
En dat je beweegbaar door de bestanden heen kan. Maar je kan dus ook uit je usermap en dat is niet de bedoeling.

Hier een stuk code van hoe de bestanden worden gelist:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
function get_root_dir()
{

  // include dir
  GLOBAL $realbase;

  $folder_list = "";
  $file_list  = "";

  $files = scandir($realbase);
  foreach($files as $file)
  {

    if(($file != '.'))
    {

      if(is_dir($realbase.'/'.$file))
      {

        $folder_list .= "<tr>
        <td><hr><a href='?p="
.$realbase.'/'.$file."' style='text-decoration: none; color: #333; font-size: 17px;'><i class='fa-solid fa-folder' style='color:  #2dacff; font-size: 25px;'></i> $file</a></td>
        <td><hr>"
.sizeFormat(filesize($realbase.'/'.$file))."</td>
        <td><hr>"
.date ("F d Y H:i:s.", filemtime($realbase.'/'.$file))."</td>
        <td><hr>ddd</td>
        </tr>"
;

        if(empty(is_dir($realbase.'/'.$file)))
        {

          echo 'go back';
        }
      }
elseif(is_file($realbase.'/'.$file)) {
        $file_list .= "<tr>
        <td><hr><a href='?p="
.$realbase.'/'.$file."' style='text-decoration: none; color: #333; font-size: 17px;'><i class='fa-solid fa-file' style='color: #2dacff; font-size: 27px;'></i> $file</a></td>
        <td><hr>"
.sizeFormat(filesize($realbase.'/'.$file))."</td>
        <td><hr>"
.date ("F d Y H:i:s.", filemtime($realbase.'/'.$file))."</td>
        <td><hr>Delete</td>
        </tr>"
;
      }
    }
  }


  print $folder_list;
  print $file_list;
}


// declare function
get_root_dir();
?>
Gewijzigd op 05/05/2022 18:09:19 door cocotj bos
 
Ward van der Put
Moderator

Ward van der Put

06/05/2022 12:21:00
Quote Anchor link
Je gebruikt wel '.' voor de huidige directory maar controleert niet op '..' voor een bovenliggende directory. Dat laatste maakt path traversal mogelijk, bijvoorbeeld ook met '../' in de vorm '/foo/../bar/' ergens tussenin.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.