Níže nabízím překlad z Home > Stable > 4-Web Application Security Testing > 01-Information Gathering > Review Webserver Metafiles for Information Leakage
Souhrn
Tato část popisuje, jak testovat různé soubory metadat na únik informací o cestě (cestách) nebo funkcionalitě webové aplikace. Kromě toho lze také vytvořit seznam adresářů, kterým se mají Spidery, Roboti nebo Crawlery vyhýbat, jako závislost pro Zmapování pracovních postupů a cest zpracování v aplikaci. Mohou být shromažďovány i další informace pro identifikaci povrchu útoku, technologických detailů nebo pro použití při zapojení sociálního inženýrství.
Cíle testu
- Identifikovat skryté nebo maskované cesty a funkce pomocí analýzy souborů metadat.
- Získat a zmapovat další informace, které by mohly vést k lepšímu pochopení daných systémů.
Jak testovat
Jakoukoli z níže uvedených akcí provedených pomocí wget lze provést také pomocí curl. Mnoho nástrojů pro dynamické testování bezpečnosti aplikací (DAST), jako jsou ZAP a Burp Suite, zahrnuje kontrolu nebo analýzu těchto zdrojů jako součást svých funkcí spider/crawler. Lze je také identifikovat pomocí různých Google Dorks nebo s využitím pokročilých funkcí vyhledávání, jako je inurl:.
Roboti
Weboví spidery, roboti nebo crawlery načtou webovou stránku a poté rekurzivně procházejí hypertextové odkazy, aby získali další webový obsah. Jejich přijatelné chování je specifikováno protokolem o vyloučení robotů v souboru robots.txt v kořenovém adresáři webu.
Jako příklad je níže uveden začátek souboru robots.txt společnosti Google, z něhož byly odebrány vzorky dne 5. května 2020:
User-agent: *
Disallow: /search
Allow: /search/about
Allow: /search/static
Allow: /search/howsearchworks
Disallow: /sdch
...
Směrnice User-Agent odkazuje na konkrétního webového spidera/robota/crawlera. Například User-Agent: User-Agent: bingbot odkazuje na crawler od společnosti Microsoft. User-Agent: * ve výše uvedeném příkladu se vztahuje na všechny webové spidery/roboty/crawlery.
Direktiva Disallow určuje, které zdroje jsou spidery/robotům/crawlerům zakázány. Ve výše uvedeném příkladu jsou zakázány následující zdroje:
...
Disallow: /search
...
Disallow: /sdch
...
Weboví spideři/roboti/crawleři mohou záměrně ignorovat direktivy Disallow uvedené v souboru robots.txt, například ze sociálních sítí, aby zajistili, že sdílené odkazy jsou stále platné. Soubor robots.txt by proto neměl být považován za mechanismus pro vynucování omezení přístupu k webovému obsahu, jeho ukládání nebo opětovného publikování třetími stranami.
Soubor robots.txt se načítá z kořenového adresáře webu na webovém serveru. Soubor robots.txt načtete například z adresy www.google.com pomocí nástroje wget nebo curl:
$ curl -O -Ss http://www.google.com/robots.txt && head -n5 robots.txt
User-agent: *
Disallow: /search
Allow: /search/about
Allow: /search/static
Allow: /search/howsearchworks
...
Analýza souboru robots.txt pomocí nástrojů Google Webmaster Tools
Majitelé webových stránek mohou využít funkci „Analýza robots.txt“ společnosti Google k analýze webových stránek v rámci jejích nástrojů Google Webmaster Tools. Tento nástroj může pomoci při testování a postup je následující:
- Přihlaste se do nástrojů Google Webmaster Tools pomocí účtu Google.
- Na ovládacím panelu zadejte adresu URL webu, který má být analyzován.
- Vyberte jednu z dostupných metod a postupujte podle pokynů na obrazovce.
META tagy
Tag <META> se nachází v části HEAD každého dokumentu HTML a měl by být konzistentní na celém webu v případě, že robot/spider/crawler nezačíná od jiného odkazu na dokument než webroot, tj. hluboký odkaz. Direktivu Robots lze také zadat pomocí specifického tagu META.
META Tag Robots
Pokud neexistuje <META NAME=“ROBOTS“ …>, pak je výchozí hodnota protokolu „Robots Exclusion Protocol“ INDEX,FOLLOW. Proto jsou další dvě platné položky definované „Protokolem o vyloučení robotů“ opatřeny předponou NO…, tj. předponami NOINDEX a NOFOLLOW.
Na základě direktivy (direktiv) Disallow uvedených v souboru robots.txt v adresáři webroot se provede vyhledání regulárního výrazu <META NAME=„ROBOTS“ v rámci každé webové stránky a výsledek se porovná se souborem robots.txt v adresáři webroot.
Různé informační META tagy
Organizace často vkládají informační značky META do webového obsahu, aby podpořily různé technologie, jako jsou čtečky obrazovky, náhledy na sociálních sítích, indexování ve vyhledávačích atd. Takové metainformace mohou být pro testery cenné při identifikaci použitých technologií a dalších cest/funkcí, které je třeba prozkoumat a otestovat. Následující metainformace byly získány z adresy www.whitehouse.gov prostřednictvím nástroje View Page Source dne 2020 May 05:
...
<meta property="og:locale" content="en_US" />
<meta property="og:type" content="website" />
<meta property="og:title" content="The White House" />
<meta property="og:description" content="We, the citizens of America, are now joined in a great national effort to rebuild our country and to restore its promise for all. – President Donald Trump." />
<meta property="og:url" content="https://www.whitehouse.gov/" />
<meta property="og:site_name" content="The White House" />
<meta property="fb:app_id" content="1790466490985150" />
<meta property="og:image" content="https://www.whitehouse.gov/wp-content/uploads/2017/12/wh.gov-share-img_03-1024x538.png" />
<meta property="og:image:secure_url" content="https://www.whitehouse.gov/wp-content/uploads/2017/12/wh.gov-share-img_03-1024x538.png" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:description" content="We, the citizens of America, are now joined in a great national effort to rebuild our country and to restore its promise for all. – President Donald Trump." />
<meta name="twitter:title" content="The White House" />
<meta name="twitter:site" content="@whitehouse" />
<meta name="twitter:image" content="https://www.whitehouse.gov/wp-content/uploads/2017/12/wh.gov-share-img_03-1024x538.png" />
<meta name="twitter:creator" content="@whitehouse" />
...
<meta name="apple-mobile-web-app-title" content="The White House">
<meta name="application-name" content="The White House">
<meta name="msapplication-TileColor" content="#0c2644">
<meta name="theme-color" content="#f5f5f5">
...
Mapy stránek (sitemaps)
Mapa stránek (sitemap) je soubor, ve kterém může vývojář nebo organizace poskytnout informace o stránkách, videích a dalších souborech nabízených webem nebo aplikací a o vztazích mezi nimi. Vyhledávače mohou tento soubor použít k inteligentnějšímu prozkoumání webu. Testeři mohou pomocí souborů sitemap.xml zjistit více informací o webu nebo aplikaci a prozkoumat je tak úplněji.
Následující výňatek pochází z primární mapy stránek společnosti Google získané v roce 2020 květen 05.
$ wget --no-verbose https://www.google.com/sitemap.xml && head -n8 sitemap.xml
2020-05-05 12:23:30 URL:https://www.google.com/sitemap.xml [2049] -> "sitemap.xml" [1]
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84">
<sitemap>
<loc>https://www.google.com/gmail/sitemap.xml</loc>
</sitemap>
<sitemap>
<loc>https://www.google.com/forms/sitemaps.xml</loc>
</sitemap>
...
Při zkoumání může tester chtít načíst mapu stránek gmailu https://www.google.com/gmail/sitemap.xml:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://www.google.com/intl/am/gmail/about/</loc>
<xhtml:link href="https://www.google.com/gmail/about/" hreflang="x-default" rel="alternate"/>
<xhtml:link href="https://www.google.com/intl/el/gmail/about/" hreflang="el" rel="alternate"/>
<xhtml:link href="https://www.google.com/intl/it/gmail/about/" hreflang="it" rel="alternate"/>
<xhtml:link href="https://www.google.com/intl/ar/gmail/about/" hreflang="ar" rel="alternate"/>
...
Security TXT
security.txt je navrhovaný standard, který umožňuje webovým stránkám definovat bezpečnostní zásady a kontaktní údaje. Existuje více důvodů, proč by to mohlo být zajímavé pro testovací scénáře, mimo jiné:
- Identifikace dalších cest nebo zdrojů, které je třeba zahrnout do discovery/analysis.
- Shromažďování zpravodajských informací z otevřených zdrojů.
- Vyhledávání informací o odměnách za chyby atd.
- Sociální inženýrství.
Soubor se může nacházet buď v kořenovém adresáři webového serveru, nebo v adresáři .well-known/. Např:
- https://example.com/security.txt
- https://example.com/.well-known/security.txt
Zde je reálný příklad získaný z LinkedIn 2020 May 05:
$ wget --no-verbose https://www.linkedin.com/.well-known/security.txt && cat security.txt
2020-05-07 12:56:51 URL:https://www.linkedin.com/.well-known/security.txt [333/333] -> "security.txt" [1]
# Conforms to IETF `draft-foudil-securitytxt-07`
Contact: mailto:security@linkedin.com
Contact: https://www.linkedin.com/help/linkedin/answer/62924
Encryption: https://www.linkedin.com/help/linkedin/answer/79676
Canonical: https://www.linkedin.com/.well-known/security.txt
Policy: https://www.linkedin.com/help/linkedin/answer/62924
Humans TXT
humans.txt je iniciativa pro poznání lidí, kteří stojí za webovými stránkami. Má podobu textového souboru, který obsahuje informace o různých lidech, kteří se na tvorbě webu podíleli. Další informace naleznete v části humanstxt. Tento soubor často (i když ne vždy) obsahuje informace o kariéře nebo pracovních stránkách/cestách.
Následující příklad byl získán ze služby Google 2020 May 05:
$ wget --no-verbose https://www.google.com/humans.txt && cat humans.txt
2020-05-07 12:57:52 URL:https://www.google.com/humans.txt [286/286] -> "humans.txt" [1]
Google is built by a large team of engineers, designers, researchers, robots, and others in many different sites across the globe. It is updated continuously, and built with more tools and technologies than we can shake a stick at. If you'd like to help us out, see careers.google.com.
Další zdroje informací o doméně .well-known
Existují další RFC a internetové návrhy, které navrhují standardizované použití souborů v adresáři .well-known/. Jejich seznamy naleznete zde nebo zde.
Pro testera by bylo poměrně snadné projít RFC/návrhy a vytvořit seznam, který by poskytl crawleru nebo fuzzeru, aby ověřil existenci nebo obsah takových souborů.
Nástroje
- Browser (View Source or Dev Tools functionality)
- curl
- wget
- Burp Suite
- ZAP