Ottenere più informazioni possibili da un’applicazione web è un passaggio fondamentale al fine di trovare vulnerabilità nella stessa. Nella fase di Information Gathering bisogna preoccuparsi di analizzare l’applicazione nei dettagli, cercare pagine nascoste, recuperare informazioni in merito alla tecnologia utilizzata e altri dettagli che possono sempre tornare utili.
OWASP definisce 10 passaggi fondamentali per il recupero di informazioni in applicazioni web; in questo articolo cercheremo di approfondirne qualcuna, con esempi ed informazioni pratiche.
Il compito dei motori di ricerca è analizzare le pagine web, quindi chi meglio di loro potrebbe avere informazioni in merito ad un sito pubblico? È bene testare non solo un motore di ricerca, ma utilizzarne diversi, come:
L’utilizzo di operatori avanzati è in generale preferibile, in quanto permette di ridurre il numero di risultati e delle ricerche da effettuare (ad esempio l’utilizzo di “site:” o “inurl:”) Per chi volesse approfondire Google Hacking, consiglio questo articolo.
Il Footprinting di webserver consiste nel determinare il tipo di server web utilizzato e la versione, in modo da poter indirizzarsi e focalizzarsi su particolari tipologie di vulnerabilità e/o di attacchi.
Un modo semplice per ottenere le informazioni (nel caso siano pubbliche) è utilizzare software come netcat o telnet.
mrtouch@mrtouch:~$ nc google.com 80
GET / HTTP/1.1
HTTP/1.1 302 Found
Cache-Control: private
Content-Type: text/html; charset=UTF-8
Referrer-Policy: no-referrer
Location: http://www.google.it/?gfe_rd=cr&ei=ZwFtWbfKMcvw8AeY0K_gDg
Content-Length: 258
Date: Mon, 17 Jul 2017 18:26:47 GMT
Nel caso non venga stampata il server, si può provare ad inviare richieste malformate, come
mrtouch@mrtouch:~$ nc bing.com 80
HEAD / HTTP/2.0
HTTP/1.1 400 Bad Request
Content-Length: 334
Content-Type: text/html; charset=us-ascii
Date: Mon, 17 Jul 2017 18:33:40 GMT
Connection: close
Per conoscere le opzioni disponibili basta utilizzare OPTIONS
mrtouch@mrtouch:~$ echo -e 'OPTIONS / HTTP/1.0\r\n\n' | nc sito.it 80
Altri due siti utili per ottenere informazioni possono essere serversniff e centralops.
Un plugin che utilizzo molto e ho sempre ritenuto valido è Wappalyzer, il quale identifica in maniera (quasi sempre) egregia le tecnologie utilizzare dall’applicazione e, nel caso di cms, anche plugin e/o framework.
Con metafile si fa riferimento al file robots.txt, nel quale sono presenti (solitamente) le directory che I motori di ricerca non devono analizzare, poiché contengono informazioni riservate.
Oltre al file robots è possibile trovare META TAG robots all’interno del codice sorgente di una pagina web, il cui significato è molto simile al file sopracitato.
L’idea di fondo è che se si identifica un’applicazione potenzialmente vulnerabile è più semplice focalizzare l’attenzione su di essa e trovare punti di accesso. Le azioni principali potrebbero essere:
In molte pagine html è possibile trovare commenti in merito alla programmazione del sito, o informazioni più o meno sensibili, scritte dai programmatori. Ogni volta che si trova una pagina è sempre consigliato analizzare la sorgente, seguire link a cartelle o file sospetti e leggere attentamente i commenti, non si sa mai che si trovi qualcosa.
Per questo passaggio possono venirci incontro software come ZAP o Burp Suite, i quali riescono a mappare in pochi minuti anche le applicazioni più grandi, identificando ogni punto di ingresso e link presente nelle pagine.
Questo è uno dei passi fondamentali, ed è bene verificare tutte le richieste, le pagine, i messaggi di errore che ritorna l’applicazione. Alcuni dei passi sono descritti da OWASP, ma si possono riassumere in un semplice punto:
Per ogni pagina è bene chiedersi:
Nel caso in cui i precedendi passi non abbiano funzionato, è bene ricordare che nelle applicazioni web certi percorsi siano privati e non vengano linkati. Per questa ragione è utile testare anche percorsi nascosti, con sofware come dirsearch
Conclusioni
Come si può notare, analizzare un’applicazione web è tutt’altro che semplice, specialmente se si tratta di grandi compagnie con migliaia di domini e sottodomini. Per chi volesse approfondire, altri siti utili sono: