2019测试指南-web应用程序安全测试(二)指纹Web应用程序
2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
在陽光下沒有任何新東西,幾乎每一個(gè)人們??都可能想到開發(fā)的Web應(yīng)用程序已經(jīng)開發(fā)出來了。隨著世界各地積極開發(fā)和部署的大量免費(fèi)和開源軟件項(xiàng)目,應(yīng)用程序安全測試很可能面臨完全或部分依賴于這些眾所周知的應(yīng)用程序的目標(biāo)站點(diǎn)(例如Wordpress, phpBB,Mediawiki等)。了解正在測試的Web應(yīng)用程序組件對(duì)測試過程有很大幫??助,并且還將大大減少測試期間所需的工作量。這些眾所周知的Web應(yīng)用程序具有已知的HTML標(biāo)頭,cookie和目錄結(jié)構(gòu),可以枚舉這些標(biāo)識(shí)符以識(shí)別應(yīng)用程序。
?
測試目標(biāo)
確定Web應(yīng)用程序和版本,以確定已知漏洞以及在測試期間使用的相應(yīng)漏洞。
?
如何測試
餅干
識(shí)別Web應(yīng)用程序的一種相對(duì)可靠的方法是使用特定于應(yīng)用程序的cookie。
請(qǐng)考慮以下HTTP請(qǐng)求:
GET / HTTP / 1.1 用戶代理:Mozilla / 5.0(Windows NT 6.2; WOW64; rv:31.0)Gecko / 20100101 Firefox / 31.0 接受:text / html,application / xhtml + xml,application / xml; q = 0.9,* /*;q=0.8 接受語言:en-US,en; q = 0.5 '''Cookie:wp-settings-time-1 = 1406093286; wp-settings-time-2 = 1405988284''' DNT:1 連接:keep-alive 主持人:blog.owasp.org已自動(dòng)設(shè)置cookie?CAKEPHP,它提供有關(guān)正在使用的框架的信息。常見cookie名稱列表顯示在Cpmmon應(yīng)用程序標(biāo)識(shí)符部分中。但是,可以更改cookie的名稱。
?
HTML源代碼
此技術(shù)基于在HTML頁面源代碼中查找某些模式。通常,人們可以找到許多信息,這些信息可以幫助測試人員識(shí)別特定的Web應(yīng)用程序。其中一個(gè)常見標(biāo)記是直接導(dǎo)致應(yīng)用程序泄露的HTML注釋。更常見的是,可以找到某些特定于應(yīng)用程序的路徑,即指向特定于應(yīng)用程序的css和/或js文件夾的鏈接。最后,特定的腳本變量也可能指向某個(gè)應(yīng)用程序。
從下面的元標(biāo)記中,可以輕松了解網(wǎng)站及其版本使用的應(yīng)用程序。注釋,特定路徑和腳本變量都可以幫助攻擊者快速確定應(yīng)用程序的實(shí)例。
<meta name =“generator”content =“WordPress 3.9.2”/>更頻繁地,此類信息放在<head> </ head>標(biāo)記之間,<meta>標(biāo)記中或頁面末尾。然而,建議檢查整個(gè)文檔,因?yàn)樗捎糜谄渌康?#xff0c;例如檢查其他有用的注釋和隱藏字段。
特定文件和文件夾
除了從HTML源收集的信息之外,還有另一種方法可以極大地幫助攻擊者高精度地確定應(yīng)用程序。每個(gè)應(yīng)用程序在服務(wù)器上都有自己的特定文件和文件夾結(jié)構(gòu)。有人指出,人們可以從HTML頁面源看到特定的路徑,但有時(shí)它們沒有明確地顯示在那里,仍然駐留在服務(wù)器上。
為了揭示它們,使用了稱為dirbusting的技術(shù)。Dirbusting強(qiáng)制目標(biāo)具有可預(yù)測的文件夾和文件名,并監(jiān)視HTTP響應(yīng)以計(jì)算服務(wù)器內(nèi)容。此信息既可用于查找默認(rèn)文件,也可用于攻擊它們,也可用于對(duì)Web應(yīng)用程序進(jìn)行指紋識(shí)別。Dirbusting可以通過多種方式完成,下面的示例顯示了借助于Burp Suite的已定義列表和入侵者功能,對(duì)WordPress驅(qū)動(dòng)的目標(biāo)進(jìn)行了成功的dirbusting攻擊。
我們可以看到,對(duì)于一些特定于WordPress的文件夾(例如,/ wp-includes /,/ wp-admin /和/ wp-content /),HTTP響應(yīng)是403(禁止),302(找到,重定向到wp-login .php)和200(OK)。這是一個(gè)很好的指標(biāo),目標(biāo)是WordPress驅(qū)動(dòng)的。同樣可以dirbust不同的應(yīng)用程序插件文件夾及其版本。在下面的屏幕截圖中,可以看到Drupal插件的典型CHANGELOG文件,該文件提供有關(guān)正在使用的應(yīng)用程序的信息,并公開了易受攻擊的插件版本。
提示:在開始dirbusting之前,建議先檢查robots.txt文件。有時(shí)也可以在那里找到特定于應(yīng)用程序的文件夾和其他敏感信息。下面的屏幕截圖顯示了此類robots.txt文件的示例。
每個(gè)特定應(yīng)用程序的特定文件和文件夾都不同。建議在滲透測試期間安裝相應(yīng)的應(yīng)用程序,以便更好地了解所呈現(xiàn)的基礎(chǔ)結(jié)構(gòu)以及服務(wù)器上可能留下的文件。但是,已經(jīng)存在幾個(gè)好的文件列表,一個(gè)很好的例子是可預(yù)測文件/文件夾的FuzzDB單詞列表(http://code.google.com/p/fuzzdb/)。
通用應(yīng)用程序標(biāo)識(shí)符
餅干
| 亞歷克 | phpbb3_ |
| WordPress的 | WP-設(shè)置 |
| 1C-的Bitrix | BITRIX_ |
| AMPcms | AMP |
| Django CMS | Django的 |
| DotNetNuke的 | DotNetNukeAnonymous |
| E107 | e107_tz |
| EPiServer | EPiTrace,EPiServer |
| 涂鴉CMS | graffitibot |
| Hotaru CMS | hotaru_mobile |
| ImpressCMS | ICMSession |
| 編號(hào)Indico | MAKACSESSION |
| InstantCMS | InstantCMS [LOGDATE] |
| Kentico CMS | CMSPreferredCulture |
| 鏌铘 | SN4 [12symb] |
| TYPO3 | fe_typo_user |
| Dynamicweb | Dynamicweb |
| 輕子 | LEP [some_numeric_value] +的sessionid |
| 維克斯 | 域名= .wix.com |
| VIVVO | VivvoSessionId |
?
HTML源代碼
| WordPress的 | <meta name =“generator”content =“WordPress 3.9.2”/> |
| 亞歷克 | <body id =“phpbb” |
| Mediawiki的 | <meta name =“generator”content =“MediaWiki 1.21.9”/> |
| 的Joomla | <meta name =“generator”content =“Joomla! - 開源內(nèi)容管理”/> |
| Drupal的 | <meta name =“Generator”content =“Drupal 7(http://drupal.org)”/> |
| DotNetNuke的 | DNN平臺(tái) -?http://www.dnnsoftware.com |
更多信息https://www.owasp.org/index.php/Web-metadata
工具
下面列出了一般和眾所周知的工具。還有許多其他實(shí)用程序,以及基于框架的指紋識(shí)別工具。
?
WhatWeb
網(wǎng)站:http?:?//www.morningstarsecurity.com/research/whatweb
目前市場上最好的指紋識(shí)別工具之一。包含在默認(rèn)的Kali Linux版本中。語言:用于指紋識(shí)別的Ruby匹配用于:
- 文本字符串(區(qū)分大小寫)
- 常用表達(dá)
- Google Hack數(shù)據(jù)庫查詢(有限的關(guān)鍵字集)
- MD5哈希
- URL識(shí)別
- HTML標(biāo)記模式
- 用于被動(dòng)和激進(jìn)操作的自定義ruby代碼
示例輸出顯示在下面的屏幕截圖中:
?
BlindElephant
網(wǎng)站:https?://community.qualys.com/community/blindelephant
這個(gè)偉大的工具基于靜態(tài)文件校驗(yàn)和的版本差異原則,從而提供非常高質(zhì)量的指紋識(shí)別。語言:Python
成功指紋的示例輸出:
pentester $ python BlindElephant.py http:// my_target drupal Loaded /Library/Python/2.7/site-packages/blindelephant/dbs/drupal.pkl包含145個(gè)版本,478個(gè)區(qū)分路徑和434個(gè)版本組。 在http:// my_target 點(diǎn)擊drupal版本啟動(dòng)BlindElephant指紋點(diǎn)擊http://my_target/CHANGELOG.txt 文件產(chǎn)生不匹配。錯(cuò)誤:檢索到的文件與已知指紋不匹配。527b085a3717bd691d47713dff74acf4 點(diǎn)擊http://my_target/INSTALL.txt 文件無法匹配。錯(cuò)誤:檢索到的文件與已知指紋不匹配。14dfc133e4101be6f0ef5c64566da4a4 點(diǎn)擊http://my_target/misc/drupal.js 基于結(jié)果的可能版本:7.12,7.13,7.14點(diǎn)擊http://my_target/MAINTAINERS.txt 文件產(chǎn)生不匹配。錯(cuò)誤:檢索到的文件與已知指紋不匹配。36b740941a19912f3fdbfcca7caa08ca 點(diǎn)擊http://my_target/themes/garland/style.css 基于結(jié)果的可能版本:7.2,7.3,7.4,7.5,7.6,7.7,7.8,7.9,7.10,7.11,7.12,7.13,7.14 ... 指紋識(shí)別結(jié)果: 7.14 最佳猜測:7.14?
Wappalyzer
網(wǎng)站:http:?
//wappalyzer.com Wapplyzer是一款Firefox Chrome插件。它僅適用于正則表達(dá)式匹配,除了要在瀏覽器上加載的頁面之外不需要任何其他內(nèi)容。它完全在瀏覽器級(jí)別工作,并以圖標(biāo)的形式給出結(jié)果。雖然有時(shí)會(huì)出現(xiàn)誤報(bào),但在瀏覽頁面后立即使用哪些技術(shù)構(gòu)建目標(biāo)網(wǎng)站的概念非常方便。
插件的示例輸出顯示在下面的屏幕截圖中。
?
參考
白皮書
- Saumil Shah:“HTTP指紋識(shí)別簡介” -?http://www.net-square.com/httprint_paper.html
- Anant Shrivastava:“Web應(yīng)用程序指紋” -?http://anantshri.info/articles/web_app_finger_printing.html
?
整治
一般建議是使用上述幾種工具并檢查日志,以更好地了解攻擊者確切地幫助披露Web框架的內(nèi)容。通過在更改隱藏框架軌道后執(zhí)行多次掃描,可以實(shí)現(xiàn)更高級(jí)別的安全性并確保自動(dòng)掃描無法檢測到框架。以下是框架標(biāo)記位置和一些其他有趣方法的一些具體建議。
?
HTTP標(biāo)頭
檢查配置并禁用或混淆所有披露技術(shù)使用信息的HTTP標(biāo)頭。這是一篇關(guān)于使用Netscaler進(jìn)行HTTP-header混淆的有趣文章:http:?//grahamhosking.blogspot.ru/2013/07/obfuscating-http-header-using-netscaler.html
?
餅干
建議通過更改相應(yīng)的配置文件來更改cookie名稱。
?
HTML源代碼
手動(dòng)檢查HTML代碼的內(nèi)容并刪除明確指向框架的所有內(nèi)容。
一般準(zhǔn)則:
- 確保沒有透露框架的可視標(biāo)記
- 刪除任何不必要的評(píng)論(版權(quán),錯(cuò)誤信息,特定框架評(píng)論)
- 刪除META和發(fā)電機(jī)標(biāo)簽
- 使用公司自己的css或js文件,不要將它們存儲(chǔ)在特定于框架的文件夾中
- 如果必須使用默認(rèn)腳本,請(qǐng)不要在頁面上使用默認(rèn)腳本或?qū)ζ溥M(jìn)行模糊處理。
?
特定文件和文件夾
一般準(zhǔn)則:
- 刪除服務(wù)器上任何不必要或未使用的文件。這意味著文本文件也公開了有關(guān)版本和安裝的信息。
- 限制對(duì)其他文件的訪問,以便在從外部訪問時(shí)實(shí)現(xiàn)404響應(yīng)。這可以通過修改htaccess文件并在那里添加RewriteCond或RewriteRule來完成。下面介紹兩個(gè)常見WordPress文件夾的此類限制的示例。
但是,這些并不是限制訪問的唯一方法。為了使該過程自動(dòng)化,存在某些特定于框架的插件。WordPress的一個(gè)例子是StealthLogin(http://wordpress.org/plugins/stealth-login-page)。
?
其他方法
一般準(zhǔn)則:
- 校驗(yàn)和管理這種方法的目的是擊敗基于校驗(yàn)和的掃描儀,而不是讓它們通過哈希來公開文件。通常,校驗(yàn)和管理有兩種方法:
- 更改這些文件的放置位置(即將它們移動(dòng)到另一個(gè)文件夾,或重命名現(xiàn)有文件夾)
- 修改內(nèi)容 - 即使稍微修改也會(huì)產(chǎn)生完全不同的哈希值,因此在文件末尾添加單個(gè)字節(jié)不應(yīng)該是一個(gè)大問題。
- 控制混亂
一個(gè)有趣而有效的方法,涉及從其他框架添加虛假文件和文件夾,以欺騙掃描儀和混淆攻擊者。但要小心不要覆蓋現(xiàn)有的文件和文件夾,并打破當(dāng)前的框架!
轉(zhuǎn)載于:https://my.oschina.net/u/3447023/blog/3017504
總結(jié)
以上是生活随笔為你收集整理的2019测试指南-web应用程序安全测试(二)指纹Web应用程序的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 再杀木马
- 下一篇: kaggle quora_我想以自己的方