『壹』 如何發現php wangye loudong
0x01: 搜索所有的用戶可控變數(GET/POST/COOKIE/referer)
原因:所有用戶輸入都是有害的,代碼審計注重函數和變數,先看看在什麼地方會有輸入
可能出現的場景:
a) id=$_GET['id'];
可能存在的問題:
無過濾的SQL注入:
WooYun: chshcms 程氏CMS V3.0 注射(已在官方演示站測試)
1
$id=trim($_GET["id"]);
//下面直接就進查詢語句了
1
if($db->query("update ".Getdbname('dance')." set CS_TID=".$tid." where cs_user='".$cscms_name."' and
當然,這是GET之後沒做過濾的情景
b) id=intval($_GET['id']);
可能存在的問題:intval對字元型無用,字元型變數是怎麼處理的呢?
如果字元型的addslashes,注意數字型盲注(見c2分析)
c) $tid=XX_Request("tid");
使用自己定義的安全過濾函數處理變數,很常見,很多框架都提供了解決方案,不過自己包裝一個也是很常見的
可能存在的問題:
c1) 有沒有忘記使用這個處理函數?
WooYun: chshcms 程氏CMS V3.0 注射(已在官方演示站測試)
$tid=CS_Request("tid"); //使用安全的CS_request addslash
$id=trim($_GET["id"]); //呵呵呵,曲項向天歌,CS_Request哭了
其實還是上面那個例子,自己忘了用這函數過濾了
c2) 函數本身是否安全?
WooYun: (新)程氏舞曲CMS 三步GETSHELL(實例演示+源碼詳析)
$t_Val = $magic?trim($_GET[$pi_strName]):addslashes(trim($_GET[$pi_strName]));
使用了addslashes,這就意味著逃脫單引號難度加大,需要尋找沒有單引號保護的語句注入
addslashes只處理單引號和斜杠,因此無法過濾形如 134 and 1=1 這樣的注射語句,請自行網路無單引號盲注
在下面的語句中,$cscms_name就是有單引號保護的,而$id是沒有單引號保護的
$db->query("update ".Getdbname('xiaoxi')." set CS_DID=1 where CS_ID=".$id." and cs_usera='".$cscms_name."'");
所以id引發了盲注
c3) 過濾函數能否滿足業務邏輯的特殊需求?
負數訂單啦,自己修改自己的投票數啦,各種業務邏輯上的問題都有可能發生
非常可惜,這個我還沒撞見過,如果以後撞見再更新到文章里
d) 不要忘記我們能控制referer等變數
可能存在的問題:
雖然發現GET/POST都過濾處理了,但是referer和cookie容易被忽視
$_SERVER["HTTP_REFERER"] 例子:
WooYun: MacCMS 6.x referer處理不當引發注射
很遺憾,這個截至今日還未公開,等公開了大家再去看吧
$_COOKIE['xxx'] 例子:
WooYun: TCCMS全版本COOKIE注入(已演示證明)
$sql="select password from ".$_Obj->table." where id=".$_COOKIE['userId'];
情況和GET時是一樣的,不過注入時操作起來稍微麻煩些,SQLMAP教程我就不粘貼到這里了,不會COOKIE注射的請網路
e) 還有其他的輸入變數,請各路高手帶著實例補充!
目前,我們了解了程序總體上是如何處理用戶輸入的
0x02:單獨搜索$_COOKIE,分析身份認證時的邏輯
原因:身份驗證屬於業務邏輯中「高危」的部分,大部分的高危漏洞都出在這里
可能出現的場景:
a) 沒有cookie處理,直接全是session
那就等之後通讀代碼時直接去讀認證演算法好啦
b) 認證演算法中強度太弱(用可控的COOKIE算來算去),降低了偽造身份的難度
WooYun: (新)程氏舞曲CMS 三步GETSHELL(實例演示+源碼詳析)
第二步偽造身份時
elseif($_COOKIE['CS_Login']!=md5($_COOKIE['CS_AdminID'].$_COOKIE['CS_AdminUserName'].$_COOKIE['CS_AdminPassWord'].$_COOKIE['CS_Quanx'])){
有什麼意義呢?COOKIE我們能控制,當然之後程序有別的驗證,這里只是舉例,就這一句而言沒有意義
實際上漏洞里這個CMS這個演算法,後面只是在認證時沒有用到安裝時admin寫死在config里的驗證碼而已,不過難度已經降下來了
c) 直接能繞過
如果情況b 沒有其他驗證了,那就繞過了
目前我們只是驗證了登陸時的邏輯,之後還需分析許可權的縝密程度
0x03:搜索所有的文件操作函數,分析其邏輯
原因:文件操作函數屬於敏感函數,往往業務邏輯上的漏洞可能導致任意文件操作
可能出現的場景:
a) 任意文件下載
WooYun: appcms 最新版 1.3.708 任意文件下載
<?php
if(isset($_GET['url']) && trim($_GET['url']) != '' && isset($_GET['type'])) {
$img_url = base64_decode($_GET['url']);
$shffix = trim($_GET['type']);
header("Content-Type: image/{$shffix}");
readfile($img_url);
} else {
die('image not find');
}
?>
PS:由於是業務邏輯上的問題,是沒辦法通過自動掃描發現的,而且針對SQL和HTML的過濾是起不到特大作用的
任意文件讀取的最大作用是讀config.php 和各種系統的敏感文件(如何爆物理目錄?請看0x04)
b) 任意文件寫入
WooYun: CSCMS V3.5 最新版 後台命令執行GETSHELL(源碼詳析)
任意文件寫入的最大應用就是寫馬了,最大障礙是繞過過濾的HTML字元比如: <>,解決方式是大量應用base64
c) 任意文件刪除
很遺憾,還沒撞見過,要是撞見一個該多好
任意文件刪除的作用可以是刪除install.lock,然後重裝CMS
d) 其他操作,求補充
文件操作可以結合爆目錄
0x04:爆物理目錄
原因:上一小節我們可能能夠任意操作文件,但沒拿到網站的物理目錄地址,的確可以用黑盒不停地試圖讀取 c:\boot.ini 和 /etc/passwd 之類的來試圖判斷,但是這么弄實在不可靠
怎麼辦:使用php vulnerability hunter 自動掃描就好了,這個確實可以偷懶用工具掃描,因為這個爆目錄危害實在太低了,必須配合其他漏洞才有危害,所以一般CMS都會有這種漏洞,我是說能掃描出來的漏洞
WooYun: appcms 最新版 1.3.708 任意文件下載
如果你不知道物理路徑,你可以試著用工具掃描一下,然後再讀取
0x05:搜索eval,preg_replace什麼的,看看有沒有命令執行
原因:能直接執行PHP代碼,也就是說可以寫一句話木馬了(file_put_contents),當然,要找可寫目錄
這地方我一直沒能找到例子,沒有親自實踐過,求各路高手帶實例提供幾個?
0x06:可以開始通讀代碼了,從index開始,注意的是數據的傳輸和輸出函數
原因:常見模式化的漏洞都不存在的話,就要分析整個系統了,因此需要完全而徹底地去做審計,這樣比繼續單獨搜索變數然後跟蹤更加省力一些
可能出現的場景:
a) 之前的過濾全白費了
WooYun: YXcms1.2.0版本 存儲式XSS(實站演示+源碼分析)
沒公開,等公開再更新文章,這是一個存儲式xss
b) 二次注入
由於二次開發中從資料庫里取出的值沒有過濾,導致注射,由於沒有直接從用戶輸入中獲得,所以之前步驟很難發現
哎呀,求各路高手提供個示例呀,我這個自己也沒有碰到過丫
c) 平行許可權、任意投票、越權訪問 等等 等等 一大堆
0x07 總結
目前就知道這么些,希望能對剛接觸PHP代碼審計漏洞挖掘的新手有點幫助,由於我也是剛開始學習PHP漏洞挖掘不久,希望大家能廣泛提供學習的建議以及思路,也請批評指正文章中不妥之處,更希望高手們能帶著示例來指導。
『貳』 高分來個php資源掃描器 能用的來!!! 不能用的就別來了
樓主,試試這個吧。
『叄』 安全開發你必須使用的28個DevSecOps工具
將安全融入開發過程,更早捕獲並修復應用漏洞,你需要這五類共28款DevSecOps工具。
DevSecOps 是將安全集成到整個應用開發周期的過程,是從內到外強化應用,使其能夠抵禦各種潛在威脅的理想方式。因為很多公司企業不斷開發應用以滿足客戶和商業合作夥伴的需求,DevSecOps的吸引力也與日俱增。
敏捷開發方法與DevOps操作幫助公司企業達成持續開發的目標。雲原生應用架構也成為了DevSecOps運動的有力貢獻者,推動採用公共雲提供商、容器技術和容器平台為應用提供計算能力。DevSecOps將安全過程與工具集成進工作流並加以自動化,擺脫了傳統方法按時間點進行的潛在干擾,是個無縫且持續的過程。
咨詢公司 Data Bridge Market Research 稱,鑒於網路安全威脅數量與危害性的持續上升,全球DevSecOps市場預計將從2018年的14.7億美元增長至2026年的136.3億美元。
市場繁榮之下,DevSecOps工具必將呈現百花齊放百家爭鳴的局面。下面就按核心門類為您呈上多款優秀DevSecOps工具。
開發應用的時候很容易忽略掉安全漏洞。下面的工具為開發人員提供了潛在安全異常及缺陷的警報功能,可供開發人員及時調查並修復這些漏洞,不至於走得太遠回不了頭。有些工具專用於警報功能,比如開源的Alerta 。其他工具則兼具測試等別的功能,比如 Contrast Assess。
1. Alerta
(https://alerta.io/)
該開源工具可將多個來源的信息整合去重,提供快速可視化功能。Alerta與Prometheus、Riemann、Nagios、Cloudwatch及其他監視/管理服務集成,開發人員可通過API按需定製Alerta。
2. Contrast Assess
(https://www.contrastsecurity.com/interactive-application-security-testing-iast)
作為一款互動應用安全測試(IAST)工具,Contrast Assess 與用戶應用集成,在後台持續監視代碼,並在發現安全漏洞時發出警報。據稱即便是非安全開發人員也可使用 Contrast Assess 自行識別並修復漏洞。
3. Contrast Protect
(https://www.contrastsecurity.com/runtime-application-self-protection-rasp)
該運行時應用自保護(RASP)工具採用了 Contrast Assess 同款嵌入式代理。Contrast Protect 在生產環境中查找漏洞利用程序和未知威脅,並將結果提交給安全信息及事件管理(SIEM)控制台、防火牆或其他安全工具。
4. ElastAlert
(https://elastalert.readthedocs.io/en/latest/)
ElastAlert提供近實時接收警報的框架,可接收來自Elasticsearch數據的安全異常、流量激增及其他模式。ElastAlert查詢Elasticsearch並根據一系列規則比較這些數據。一旦出現匹配,ElastAlert便發出警報並隨附建議動作。
大多數DevSecOps工具都提供一定程度的自動化。此類工具自動掃描、發現並修復安全缺陷,只是自動化程度各有不同,從條件式事件驅動的自動化到運用深度學習技術的自動化都有。
1. CodeAI
(http://www.qbitlogic.com/codeai/)
旨在通過深度學習技術自動查找並修復源代碼中的安全漏洞,號稱可為開發人員提供可供參考的解決方案列表,而不僅僅是安全問題列表。其供應商QbitLogic宣稱,已為CodeAI饋送了數百萬個現實世界漏洞修復樣本供訓練。
2. Parasoft tool suite
(https://www.parasoft.com/)
Parasoft提供包括應用開發安全測試在內的多種自動化工具:
1)Parasoft C/C++test
(https://www.parasoft.com/procts/ctest)
用於開發過程早期缺陷識別;
2)Parasoft Insure++
(https://www.parasoft.com/procts/insure)
可以查找不規范編程及內存訪問錯誤;
3)Parasoft Jtest
(https://www.parasoft.com/procts/jtest)
用於Java軟體開發測試;
4) Parasoft dotTEST
(https://www.parasoft.com/procts/jtest)
以深度靜態分析和高級覆蓋作為 Visual Studio 工具的補充。
3. Red Hat Ansible Automation
(https://www.redhat.com/en/technologies/management/ansible)
該工具包含三個模塊——Ansible Tower、Ansible Engine 和 Red Hat Ansible Network Automation,可作為無代理IT自動化技術單獨或聯合使用。盡管不是專門的安全工具,Ansible Automation 卻可供用戶定義規則以確定自身軟體開發項目中哪些部分是安全的。
4. StackStorm
(https://stackstorm.com)
該開源工具號稱「可進行條件式運營」,其事件驅動的自動化能在檢測到安全漏洞時提供腳本化的修復與響應,並附有持續部署、ChatOps優化等功能。
5. Veracode
(https://www.veracode.com/devsecops)
該公司提供DevSecOps環境中廣泛使用的一系列自動化安全工具,包括在代碼編寫時即時自動掃描的Greenlight;在沙箱中掃描代碼漏洞的 Developer Sandbox;識別漏洞組件的 Software Composition Analysis (SCA);以及識別應用缺陷的 Static Analysis。
專用DevSecOps儀錶板工具可使用戶在同一圖形界面中查看並共享從開發伊始到運營過程中的安全信息。有些DevSecOps應用,比如ThreatModeler和Parasoft已自帶儀錶板。
1. Grafana
(https://grafana.com/)
該開源分析平台允許用戶創建自定義儀錶板,聚合所有相關數據以可視化及查詢安全數據。如果不想自行構建,還可以在其網站上選用社區構建的儀錶板。
2. Kibana
(https://www.elastic.co/procts/kibana)
如果你使用Elasticsearch,該開源工具可在統一圖形界面中集成成千上萬的日誌條目,包括運營數據、時間序列分析、應用監視等等。
威脅建模DevSecOps工具用以在復雜的攻擊界面中識別、預測並定義威脅,以便用戶可以做出主動安全決策。有些工具可根據用戶提供的系統及應用信息自動構建威脅模型,並提供可視化界面以幫助安全及非安全人員 探索 威脅及其潛在影響。
1. IriusRisk
(https://continuumsecurity.net/threat-modeling-tool/)
出自 Continuum Security 的解決方案,既可雲部署,也可現場部署,能以基於問卷的界面自動化風險及需求分析,並設計出威脅模型和技術性安全要求。IriusRisk還可幫助用戶管理代碼構建及安全測試階段。
2. ThreatModeler
(https://threatmodeler.com/)
該自動化威脅建模系統有兩個版本:AppSec版和雲版。在提供了用戶應用或系統的功能性信息後,ThreatModeler會基於更新的威脅情報自動就整個攻擊界面進行數據分析和潛在威脅識別。
3. OWASP Threat Dragon
(https://www.owasp.org/index.php/OWASP_Threat_Dragon)
一款基於Web的開源工具,提供系統圖解和用於自動化威脅建模與緩解的規則引擎。Threat Dragon 承諾可與其他軟體開發生命周期(SDLC)工具無縫集成,且界面易於使用。
在開發過程中測試應用以找出潛在漏洞是DevSecOps的關鍵部分,能夠事先發現安全漏洞,避免漏洞被黑客利用。盡管其他工具往往包含了測試功能,比如Parasoft出品的那些,下列工具仍然在應用安全測試上表現強勁。
1. BDD-Security
(https://continuumsecurity.net/bdd-security/)
該出自 Continuum Security 的開源框架可使安全人員在敏捷開發過程中測試行為驅動開發(BDD)語言編寫的功能及非功能性安全場景。此BDD框架旨在使安全功能獨立於應用特定的導航邏輯,讓同樣的安全要求能夠更容易地應用到多個應用程序上。
2. Checkmarx CxSAST
(https://www.checkmarx.com/procts/static-application-security-testing/)
可對25種編程及腳本語言進行未編譯/未構建源代碼掃描的靜態應用安全測試(SAST)工具,能在SDLC早期發現成百上千種安全漏洞。CxSAST兼容所有集成開發環境(IDE),是Checkmarx軟體暴露平台的一部分——該平台可在DevOps所有階段植入安全。Checkmarx的互動式應用安全測試(IAST)工具可檢測運行中應用的安全漏洞。
3. Chef InSpec
(https://github.com/inspec/inspec)
整個開發過程中的每一階段都可以運用該開源工具自動化安全測試以確保針對傳統伺服器及容器和雲API的合規、安全及其他政策要求。
4. Fortify
(https://www.microfocus.com/en-us/solutions/application-security)
Micro Focus 出品,提供端到端應用安全,可供進行覆蓋整個軟體開發生命周期的現場及按需測試。Fortify on Demand 是 Micro Focus 的應用安全即服務產品,提供靜態、動態和移動應用安全測試,以及生產環境中Web應用的持續監視。
5. Gauntlt
(http://gauntlt.org/)
流行測試框架,旨在推動易操作的安全測試及安全、開發和運營團隊間的溝通。GauntIt便於產生攻擊測試用例,且能方便地鉤入現有工具及進程。
6. Synopsys suite
(https://www.synopsys.com/)
Synopsys提供多個應用安全測試工具,包括:
1)SAST工具Coverity
(https://www.synopsys.com/software-integrity/security-testing/static-analysis-sast.html)
自動化測試且融入持續集成/持續交付(CI/CD)管道;
2)SCA工具 Black Duck
(https://www.synopsys.com/software-integrity/security-testing/software-composition-analysis.html)
採用容器及應用中的開源和第三方代碼檢測並管理安全;
3)SeekerIAST
(https://www.synopsys.com/software-integrity/security-testing/interactive-application-security-testing.html)
識別可暴露敏感數據的運行時安全漏洞;
以及一系列用於應用安全測試的託管服務。
以下DevSecOps工具同樣含有上述工具提供的功能,但或多或少略有不同。
1. Aqua Security
(https://www.aquasec.com/)
在整個CI/CD管道和運行時環境中管理端到端安全,可用於所有平台和雲環境的容器及雲原生應用。
2. Dome9 Arc
(https://www.checkpoint.com/solutions/devops-security/)
被 Check Point 收購,提供自動化測試及安全實施,使開發人員能夠將安全及合規融入公共雲應用的構建、部署及運營。
3. GitLab
(https://about.gitlab.com/)
該工具可將DevSecOps架構融入CI/CD過程,在提交時測試每一塊代碼,使開發人員能夠在編程期間緩解安全漏洞,並提供涵蓋所有漏洞的儀錶板。
4. Red Hat OpenShift
(https://www.redhat.com/en/technologies/cloud-computing/openshift)
為基於容器的應用提供內置安全,比如基於角色的訪問控制、以安全增強的Linux(SELinux)實現隔離,以及貫穿整個容器構建過程的核查。
5. RedLock
(https://www.paloaltonetworks.com/procts/secure-the-cloud/redlock/cloud-security-governance)(前身為Evident.io)
Palo Alto Networks 出品,適用於部署階段,幫助開發人員快速發現並緩解資源配置、網路架構及用戶活動中的安全威脅,尤其是在亞馬遜S3存儲桶和彈性塊存儲(EBS)卷上。
6. SD Elements
(https://www.securitycompass.com/sdelements/)
出品自 Security Compass 的自動化平台,旨在收集客戶軟體信息,發現威脅及對策,突出相關安全控制措施以幫助公司企業實現其安全和合規目標。
7. WhiteHat Sentinel 應用安全平台
(https://www.whitehatsec.com/procts/solutions/devsecops/)
該解決方案提供貫穿整個SDLC的應用安全,適用於需將安全集成進工具中的敏捷開發團隊,以及需持續測試以保證生產環境應用安全的安全團隊。
8. WhiteSource
(https://www.whitesourcesoftware.com/)
用於解決開源漏洞,可集成進用戶的生成過程,無論用戶採用什麼編程語言、生成工具或開發環境。WhiteSource使用經常更新的開源代碼資料庫持續檢查開源組件的安全及授權。
『肆』 php代碼如何實現掃描二維碼獲取掃描者的信息
1、首先創建一個名稱為erweima的php文件。
注意事項:
用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。
『伍』 當前市面上的代碼審計工具哪個比較好
第一類:Seay源代碼審計系統
這是基於C#語言開發的一款針對PHP代碼安全性審計的系統,主要運行於Windows系統上。這款軟體能夠發現SQL注入、代碼執行、命令執行、文件包含、文件上傳、繞過轉義防護、拒絕服務、XSS跨站、信息泄露、任意URL跳轉等漏洞,基本上覆蓋常見的PHP漏洞。在功能上,它支持一鍵審計、代碼調試、函數定位、插件擴展、自定會規則配置、代碼高亮、編碼調試轉換、資料庫執行監控等數十項強大功能。
第二類:Fortify SCA
Fortify
SCA是由惠普研發的一款商業軟體產品,針對源代碼進行專業的白盒安全審計。當然,它是收費的,而且這種商業軟體一般都價格不菲。它有Windows、Linux、Unix以及Mac版本,通過內置的五大主要分析引擎對應用軟體的源代碼進行靜態分析。
第三類:RIPS
RIPS是一款基於PHP開發的針對PHP代碼安全審計的軟體。另外,它也是一款開源軟體,由國外安全研究員開發,程序只有450KB,目前能下載到的最新版本是0.54,不過這款程序已經停止更新了。它最大的亮點在於調用了PHP內置解析器介面token_get_all,並且使用Parser做了語法分析,實現了跨文件的變數及函數追蹤,掃描結果中非常直觀地展示了漏洞形成及變數傳遞過程,誤報率非常低。RIPS能夠發現SQL注入、XSS跨站、文件包含、代碼執行、文件讀取等多種漏洞,文件多種樣式的代碼高亮。
『陸』 PHP的注入點用什麼工具能掃描
您可以在華夏黑客聯盟下載一個叫「
PHP網站注入掃描工具」的軟體,那個就可以掃描PHP的注入點,我都下了,還蠻好用
『柒』 php代碼檢查工具rips-0.55怎麼使用
安裝使用也非常簡單,解壓後把代碼FTP到網站上就可以了,最好是給RIPS一個獨立的目錄,以便跟網站正式的代碼區分開。
上傳完後就可以按照你網站的域名和RIPS安裝的目錄通過URL瀏覽RIPS,
然後在path / file:輸入項中設定你要掃描的目錄,記得鉤上 subdirs 這個選項的復選框就可以點擊 scan 按鈕進行掃描檢測了。
掃描中會有進度顯示,並且非常佔用CUP,基本都是100%狀態在運行,1千多個文件掃描了3個多鍾頭。
『捌』 PHP MYSQL網站注入掃描工具如何使用
先明白注入類型! 一般是比如網站.PHP?id=5 and 1=1 正常 1=2錯誤 就表明有漏洞 然後在把 網站.PHP?id=5 復制到工具里,使查欄位,然後找到注入欄位 插入相應的PHP注入代碼就可以了如 database(),user() load_file 這些,網上一大把
『玖』 比較好的web安全掃描工具有哪些
隨著網站業務所承載內容的日益增多且重要性日益增強,網站本身的價值也越來越大,隨之由網站漏洞帶來的安全性問題也愈發嚴峻。新開通網站、新增專欄的准入質量評估,網站系統日常運行狀況的檢查預防和風險掌控,這些已成為各行業每年安全大檢查中的關鍵要素。作為具體落實定期檢查工作的安全人員,也急需選擇一款優秀的網站掃描產品進行高效徹底的Web脆弱性評估檢查,而如何選擇一款真正實用的產品成為一個比較糾結的難題。
常見Web掃描方案的優劣勢
目前常見的支持Web掃描解決方案的產品有很多,大家比較熟悉的有集成Web掃描模塊的多合一系統掃描器,網上可免費下載的開源掃描器軟體以及近幾年剛嶄露頭角的獨立Web掃描器產品等,都可以進行一定程度的Web安全掃描和漏洞發現。那麼面對如此琳琅滿目的選擇時,大家如何細致區分辨識其差異,就需嚴格立足於實際需要,最終做出最佳的判斷。
多合一的系統掃描器,通常會集主機掃描、配置核查、Web掃描及弱口令掃描於一身,是一款強大全面的多功能產品。但多合一的高度封裝導致其在進行安全掃描時,除不能分配全部計算資源在Web掃描方面,掃描引擎自身還要兼顧到全方位的權衡與調優。反觀目標Web應用呈現的種類多樣性、規模龐大性和運行特殊性,在面對動輒上萬、十萬甚至百萬級別網頁數量的網站時,這種多合一產品就表現得差強人意,使用起來有種牛拉火車的感覺;同時,高效執行掃描評估就必須具備高並發的網頁鏈接爬蟲識別和Web插件交互邏輯判斷能力,這一現實的沖突導致多合一掃描器在Web掃描及性能體驗方面效果平平,優勢不突出。
網上開源的Web掃描器軟體,盡管完全免費並可以發現一些基本的漏洞信息,但其在第一時間發現新爆Web漏洞和漏洞趨勢跟蹤分析、修補方面,完全不具備後期支撐能力。而且在人性化設計及低學習門檻方面也存在太多先天的不足,其性能與穩定性更是與商業軟體相差甚遠。
面對綜上同類產品,困惑於Web掃描場景需求種種局限的我們,很欣喜地看到了近幾年聲名鵲起的Web掃描器產品。它作為一款自動化評估類工具,依據制定的策略對Web應用系統進行URL深度發現並全面掃描,尋找出Web應用真實存在的安全漏洞,如跨站點腳本、SQL注入,命令執行、目錄遍歷和不安全的伺服器配置。Web掃描器產品可以通過主動生成統計分析報告來幫助我們正確了解Web應用漏洞的詳細分布、數量和風險優先順序,並對發現的安全漏洞提出相應有力的改進意見供後續修補參考,是幫助我們高效徹底地進行Web脆弱性評估檢查的堅實利器。
Web掃描器的三個誤區
針對現有市面上諸多品牌的Web掃描器,大家在評價它們孰優孰劣時時常過於片面極端,主要表現為三個認識誤區。
誤區1:多就是好!
認為漏洞庫條目多,檢查出來的漏洞多就是好。Web掃描器面對龐大繁多、千差萬別的應用系統,為提升檢測性能,多採用高效率的Web通用插件,以一掃多,其不再局限於某個專門應用系統,深層次聚合歸並,盡可能多地發現多種應用系統的同類漏洞。同時,對於掃描出來的非誤報漏洞,若同屬某一頁面不同參數所致的相同漏洞,歸納整理,讓最終呈現的漏洞報表簡約而不簡單,避免數量冗餘、雜亂無章。故若以毫無插件歸並能力,僅靠大量專門Web系統插件、羅列各類漏洞列表數量多來博取贊許的Web掃描器,其本質存在太多的不專業性。
誤區2:快就是好!
認為掃描速度快耗時短的就是好。網站規模日趨復雜,日常檢查時我們期待Web掃描器能有更高效率地完成掃描任務,這點無可厚非,但檢查的本質是要最大限度地提前發現足夠多的漏洞,並第一時間制定後續相應的修補計劃。故在面對同一目標站點時,Web掃描器若能在單位時間內檢測出來的有效存在漏洞數越多,這個快才是真的好。
誤區3:小就是好!
認為掃描過程中對目標業務影響小就是好!這句話本身也沒有問題,只要Web掃描器在執行掃描過程中,對目標系統負載響應和網路鏈路帶寬佔用,影響足夠小,也就是我們常說的「無損掃描」,它就具備了一款優秀Web掃描器應有的先決條件。但是,這必須是在能最大限度發現Web漏洞的前提下才能考慮的關鍵因素,脫離這個產品本質,就本末倒置了。
五個基本評優標准
那麼,評優一款Web掃描器,我們該從何處著手?具體的判斷標准有哪些呢?
全——識別種類繁多的Web應用,集成最全的Web通用插件,通過全面識別網站結構和內容,逐一判斷每一種漏洞可能性,換句話說,漏洞掃描的檢測率一定要高,漏報率務必低,最終才能輸出全面詳盡的掃描報告。這就要求其在Web應用識別方面,支持各類Web語言類型(php、asp、.net、html)、應用系統類型(門戶網站、電子政務、論壇、博客、網上銀行)、應用程序類型(IIS、Apache、Tomcat)、第三方組件類型(Struts2、WebLogic、WordPress)等;插件集成方面,支持國際標准漏洞分類OWASP TOP 10和WASC插件分類模板,允許自定義掃描插件模板,第一時間插件更新速度等。
准——較高的漏洞准確性是Web掃描器權威的象徵,可視化分析可助用戶准確定位漏洞、分析漏洞。而誤報是掃描類產品不能迴避的話題。Web掃描器通過通用插件與目標站點任一URL頁面進行邏輯交互,通過可視化的漏洞跟蹤技術,精準判斷和定位漏洞,並提供易讀易懂的詳細整改分析報告。除此之外,一款好的Web掃描器還要更具人性化,在漏洞發現後,允許掃描者進行手工、自動的漏洞批量驗證,進而雙重保障較高的准確性結果。
快——快速的掃描速度,才能在面對越來越大的網站規模,越發頻繁的網站檢查時游刃有餘,進度保障。一款快速的Web掃描器除了有強勁馬力的掃描引擎,高達百萬/天的掃描速度,還要具備彈性靈活的集群掃描能力,任意增添掃描節點,輕松應對可能苛刻的掃描周期時間要求。
穩——穩定可靠的運行過程,對目標環境近乎零影響的Web掃描器,才能在諸行業大面積投入使用,特別是一些對業務影響要求苛刻的行業會更受青睞,畢竟沒有人能夠接受一款評估類產品,會對目標造成額外的損傷。市面上現在已有一些Web掃描器產品,其通過周期探尋目標系統,網路鏈路,自身性能負載等機制,依據目標環境的負載動態變化而自動調節掃描參數,從而保障掃描過程的足夠穩定和幾乎零影響。此外,隨著網站規模,檢查范圍的不斷擴大,保證持續穩定的掃描執行和統計評估,盡量避免掃描進度的半途而廢,也提出了較高的可靠性運行要求。
易——人性化的界面配置,低成本的報表學習和強指導性修補建議。尤其是漏洞分布詳情和場景重現方面,市面上大多數Web掃描器的報表都需要專業安全人員的二次解讀後,普通的安全運維檢查人員才能看懂,才知道長達百頁報表給出的重要建議和下一步的具體修補措施,這無疑給使用者造成了較高的技術門檻,那麼如何解決此易讀、易用問題,就成為評定其優劣與否的一個重要指標。
總之,一款優秀的Web掃描器產品,它需要嚴格恪守五字核心方針,全、准、快、穩、易,做到全方位均衡,這樣才能做到基本優秀。同時,隨著網站檢查訴求的日益多元化,它若能附帶一些差異化特性,滿足大家不同場景的網站安全運維掃描要求,如網站基本信息搜集,漏洞全過程時間軸跟蹤,逐步可視化的漏洞驗證和場景重現,自動修補直通車等,定會大大增加該款掃描器的評優力度。