to be reflective?
RLY? Trasgression… make things in the right way.
Pentesting 2. Pesti le tenne? Stenni le pesti?

… to be continued ( leggi prima l’ articolo precedente di PENTESTING)

Siamo giunti al PUNTO, quindi, di avere sul sito, un file php che ci permetta, appunto con le funzioni del php di eseguire comandi sul SERVER stesso. Se il SERVER è configurato a dovere, c’è la posibilità che molti comandi siano DISABILITATI, e che i permessi dei file in lettura e scrittura siano settati BENE. E che le direttive dell’ OPEN_BASEDIR lo siano altrettanto. In questo caso l’ unico metodo è prendere in PERMESSI di ROOT sulla macchina. Ma prima di arrivare a questo ESTREMO vediamo alcuni passaggi che ci permettono di poter leggere i file presenti sul server, appartenenti agli altri SITI, quindi anche al famoso sito che vogliamo “BUCARE“.
Il file PHP può essere un file leggerissimo contenente una tra le funzioni del PHP: passthru() , system(), exec(), shell_exec(), popen(). Tutte eseguono comandi SUL SERVER. Per prima cosa leggiamo al DIRECTORY corrente dove è ospitato il nostro sito col comando PWD. Il risultato sarà il percorso relativo (PATH) sul server dove è uppato il nostro sito. A seconda del SERVER la path può essere:
/var/www/html/NOSTROSITO
/membri/html/NOSTROSITO
/home/public_html/NOSTROSITO
e via dicendo.
Quindi tutti i siti presenti sul server si trovano all’ interno della directory dove ci troviamo anche noi. Sostituendo, ovviamente al nome del nostro sito, il nome del SITO obiettivo.
Il file che ci interessa a noi può essere il file di configurazione del DB. Ipotizziamo si chiami appunto configuration.php.
P.S.: Per sapere il nome vero basta leggere il file index.php e notare quale file viene CHIAMATO all inizio tramite un require() o un include().
Quindi se il file da leggere è http://www.sito_obiettivo.it/configuration.php, il percorso relativo sul SERVER sarà:
/var/www/public_html/SITO_OBIETTIVO/configuration.php. Ovviamente, se proviamo a leggerlo direttamente con il comando linux CAT, ( cat /var/www/public_html/SITO_OBIETTIVO/configuration.php), a meno che non sia un SERVER VERGOGNOSAMENTE configurato, ci darà errore…)
Bene. Proviamo a bypassare queste restrinzioni con un paio di TRUCCHETTI di codice:

  • BYPASS SYMLINK():

http://sprunge.us/SBdZ


Uppate il file PHP e vi troverete in una situazione simile dove tenterete di leggete il file, inserendo il percorso, provando a bypassare le restrizioni.

  • MYSQL LOAD DATA LOCAL INFILE

http://sprunge.us/LZZH

Dovete solo modificare la PATH del file che volete leggere ed usare le credenziali del MYSQL del sito dove avete la shell per provare quest’ altro bypass.

  • FILE READER BYPASS

http://sprunge.us/ETfC

Quest’ ultimo invece è uno script PHP che colleziona in un solo file le possibili funzioni del php per BYPASSARE le restrizioni.

Per ora è abbastanza. In seguito aggiungeremo altre tecniche meno conosciute.

BlogItalia - La directory italiana dei blog
Il Bloggatore

Comments are closed.