L'uso di HTTP GET invece di una richiesta POST può provocare la perdita di codice sorgente?

2

È possibile perdere il codice lato server di un sito Web se viene inviata una richiesta GET invece di una richiesta POST a una pagina? L'idea è che se viene fatta una richiesta POST a una pagina web, ad es. http://<server url>/index.php , quindi i parametri passati tramite la richiesta POST vengono letti, il codice lato server, ad es. PHP viene eseguito e un output HTML viene restituito all'utente. Tuttavia, se viene inviata una richiesta GET per una pagina Web al server, il server non esegue il codice lato server - restituisce semplicemente index.php all'utente finale che perde il codice lato server.

Ho sentito dire che si tratta di una vulnerabilità comune, ma non riesco a trovare scenari in cui esista. Inoltre, quali configurazioni del server consentirebbero in genere questa vulnerabilità di verificarsi?

Grazie

Giovanni

    
posta John 03.12.2015 - 16:55
fonte

3 risposte

4

However, if a GET request is sent for a webpage to the server, then the server does not execute the server-side code - it simply returns index.php to the end user leaking the server-side code.

La tua ipotesi è sbagliata. Un GET o POST non cambia nulla relativo alla perdita del codice sorgente. Vengono elaborati allo stesso modo e il risultato sarà di solito l'invio di HTML.

Principali differenze tra POST e GET:

  • Una richiesta GET verrà visualizzata completamente nella barra degli indirizzi e un POST non lo fa

    Anche il segnalibro a una richiesta GET con una password registrerà la password e un POST non lo farà.

  • Una richiesta GET viene scritta completamente nei log del server web, generalmente un POST non

    Se qualcuno legge i log del server web, tutte le informazioni di tutte le richieste possono essere lette da un GET, ma non da un POST

L'utilizzo di POST renderà leggermente più difficile per qualcuno condurre un attacco CSRF contro il tuo sito. Ma non ho assolutamente nulla a che fare con una fuga di fonti.

    
risposta data 03.12.2015 - 17:53
fonte
3

La corrispondenza più vicina che riesco a trovare è questa vulnerabilità .

A simple abuse case for this vulnerability is obtaining the source code for any PHP file on the site, which can be done with a simple "-s" query parameter

Ad esempio se la pagina è example.com/foo.php devi semplicemente aggiungere -s per rendere example.com/foo.php-s . Questo rivelerà il codice sorgente su un sistema vulnerabile.

Tuttavia, l'articolo non afferma che ciò richiede una richiesta GET, sebbene sia più semplice da eseguire tramite GET, in quanto si modifica semplicemente la richiesta nel browser.

    
risposta data 03.12.2015 - 17:16
fonte
-3

sì è possibile ed è una tecnica abbastanza comune in realtà. Questo metodo di utilizzo della richiesta GET che potenzialmente conduce diverse posizioni (come cronologia del browser, file di log http, intestazioni e così via) è chiamato Cross Site Request Forgery (CSRF).

Puoi trovare informazioni dettagliate su CSRF sul sito web OWASP.

Per tua comodità, ecco il link: link

Qui troverai un passaggio chiaro e potrai ricreare lo scenario che stai cercando.

    
risposta data 03.12.2015 - 17:12
fonte

Leggi altre domande sui tag