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.

Ricerca tramite search engine
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:
- Google;
- Bing;
- DuckDuckGo;
- Wolfram Alpha;
- Altri.
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.
Fingerprint webserver
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.

Webserver Metafile
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.
Enumerazione delle applicazioni presenti sul webserver
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:
- eseguire una scansione dell’host con nmap e identificare I servizi aperti sulle porte;
- cercare sottodomini alla ricerca di applicazioni note;
- analizzare I DNS, verificando se lo zone transfer sia attivo.

Analisi di commenti e metadati
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.
Mappare l’applicazione e identificare i punti di ingresso
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:
- Mappa in maniera completa l’applicazione, catalogando e identificando ogni tipo di vulnerabilità che possa essere presente nella stessa.
Per ogni pagina è bene chiedersi:
- Questa pagina dialoga con un database o un sistema simile? (SQLI, LDAP, LFI, etc.)
- Altri utenti possono vedere ciò che scrivo? (XSS o similari)
- La pagina dialoga con il sistema ed esegue comandi? (Command injection)
- e via di seguito.
Ricerca di file nascosti
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:
- Tactical Web Application Penetration Testing: un pò datato ma molti software e punti sono attuali;
- Pentest-standard: Intelligence Gathering: una delle migliori guide. Non fornisce software ma dettagli tecnici su cosa indagare;
- Step-by-step guide to Application Security;
- The Open Source Security Testing Methodology Manual.
Se ti è piaciuto l’articolo condividi, dona, spargi il verbo! HackTips







