Netsparker Standard 自定義報告
自定義報告
Netsparker Standard允許您創建和定義自己的Web安全掃描報告模板。它們可用于生成適合您的業務需求的自定義報告,以及與其他軟件應用程序集成。
定制報告工具使用運行C#代碼的Razor模板引擎來生成報告。
如何創建自定義Web安全掃描報告
- 創建現有模板的副本。
- 在模板上進行必要的更改。
- 將此模板移到“文檔/ Netsparker /資源/報告模板”。
- 現在可以導出報告
自定義Netsparker標準報告的代碼示例
Netsparker的腳本語言是C#。以下是Web安全報告的示例代碼,該報告生成一個XML文件,其中包括以下內容:
- 掃描期間檢測到的所有漏洞的列表
- 易受攻擊的參數和請求方法(GET / POST)
- 漏洞詳情
- 確認狀態
- 額外的利用數據
- 網絡安全掃描時間
- 漏洞嚴重性
您可以將更多詳細信息添加到報告中,對其進行自定義,或使用自定義條件過濾報告。
這是可用于創建自定義Netsparker標準報告的代碼示例。
@using System@using System.IO@using System.Linq@using MSL.Common.Text;@using MSL.Core.Configuration@using MSL.Core.Data.Resources@using MSL.Core.Entities.Vulnerability@using MSL.Core.Process.Exploitation@using MSL.Core.Process.Reporting;@inherits HelperBaseTemplate<ReportTemplateData><?xml version="1.0" encoding="utf-8" ?><?xml-stylesheet href="vulnerabilities-list.xsl" type="text/xsl" ?><netsparker generated="@DateTime.Now.ToString()"> <target> <url>@ReportingUtility.XmlShortEscape(Model.ScanProfile.Uri.AbsoluteUri)</url> <scantime>@Convert.ToInt32(ScanSettings.Instance.ElapsedTime.TotalSeconds)</scantime> </target> @{ var reportOutput = new FileInfo(Model.ReportFilePath); try { File.Copy(string.Format(@"{0}/vulnerabilities-list.xsl", ResourceCategories.ReportTemplate.ResolveCustomDirectoryPath()), string.Format(@"{0}/vulnerabilities-list.xsl", reportOutput.Directory.FullName), true); } catch (Exception) { } // Sort vulnerabilities based on their severity, Type, confirmation and certainty var sortedVulns = from IVulnerabilityView v in Model.Vulnerabilities orderby v.Severity descending, v.Order ascending, v.Type ascending, v.IsConfirmed descending, v.Certainty descending, v.AbsolutePath where v.Visibility != VulnerabilityVisibility.Hidden && !v.IsIgnored select v; foreach (var vuln in sortedVulns) { if (vuln.Visibility != VulnerabilityVisibility.Hidden) { <vulnerability confirmed="@vuln.IsConfirmed.ToString()"> <url>@ReportingUtility.XmlShortEscape(vuln.AbsoluteUri)</url> <type>@vuln.Type</type> <severity>@vuln.Severity.ToString()</severity> <certainty>@vuln.Certainty</certainty> @if (!string.IsNullOrEmpty(vuln.AttackParameterName)) { <vulnerableparametertype>@ReportingUtility.XmlShortEscape(vuln.AttackParameterTypeName)</vulnerableparametertype> <vulnerableparameter>@ReportingUtility.XmlShortEscape(vuln.AttackParameterName)</vulnerableparameter> <vulnerableparametervalue>@ReportingUtility.XmlShortEscape(vuln.AttackParameterValue)</vulnerableparametervalue> } <rawrequest>@ReportingUtility.XmlEscapeCharacterData(vuln.GetRawRequest())</rawrequest> <rawresponse>@ReportingUtility.XmlEscapeCharacterData(vuln.GetFullResponse())</rawresponse> <extrainformation> @foreach (var field in vuln.CustomFields) { <info name="@field.Key">@ReportingUtility.XmlEscapeCharacterData(field.Value.HasMultipleValues ? string.Join(", ", field.Value.Values) : field.Value.Value)</info> } </extrainformation> @{ var renderer = new ProofXmlDataRenderer(); <proofs>@renderer.Render(vuln)</proofs> } @if (vuln.Classification != null) { <classification> <OWASP2013>@vuln.Classification.Owasp2013</OWASP2013> <WASC>@vuln.Classification.Wasc</WASC> <CWE>@vuln.Classification.Cwe</CWE> <CAPEC>@vuln.Classification.Capec</CAPEC> <PCI31>@vuln.Classification.Pci31</PCI31> <PCI32>@vuln.Classification.Pci32</PCI32> <HIPAA>@vuln.Classification.Hipaa</HIPAA> </classification> } @if (vuln.VersionVulnerabilities.Any()) { <knownvulnerabilities> @foreach (var implied in vuln.VersionVulnerabilities) { <knownvulnerability> <title>@implied.Title</title> <severity>@implied.Severity</severity> <references>@(implied.References == null ? string.Empty : implied.References.Trim())</references> <affectedversions>@implied.AffectedVersions</affectedversions> </knownvulnerability> } </knownvulnerabilities> } </vulnerability> } } }</netsparker>
保存自定義報告模板
每次創建新的自定義報告模板時,請將其保存到默認目錄中。該目錄位于Netsparker數據目錄的Resources子目錄中。默認位置是當前Windows用戶的“文檔/我的文檔”目錄。該目錄的完整路徑為Documents / Netsparker / Resources / Report Templates。
在啟動期間,Netsparker Standard掃描程序會在“報告模板”目錄中掃描C#模板文件(* .cshtml)。如果掃描儀在此文件夾中檢測到新文件,它將作為自定義報告顯示在“報告”選項卡上。

定義自定義Web安全報告的文件類型(擴展名)
C#代碼文件的名稱將在“報告”菜單下可見。選中后,生成的報告將使用自定義報告文件名中的擴展名。應根據報告的內容類型選擇文件擴展名。對于上面的示例報告,它應該是xml。
例如:
- “漏洞列表(XML).xml.cshtml”-文件擴展名為“ xml”
- “漏洞列表為Web.html.cshtml”-文件擴展名為“ html”
測試自定義報告
您無需在每次更改自定義報告的源代碼時重新啟動Netsparker Standard。但是,如果在Netsparker打開時進行了模板更改,則需要重新啟動。Netsparker將自定義報告添加到“報告”選項卡后,您需要做的就是再次運行它。如果編譯失敗,將顯示錯誤消息。
自定義報告的安全性
報告引擎以當前用戶的權限運行。除非您信任報告的作者,否則請不要運行該報告。
全面的API文檔
有關API設置的更多信息,請從Netsparker Standard的“幫助”菜單中,單擊“ 報告API”以查看我們的MSDN風格的API文檔,該文檔隨每個相關代碼更改而更新。
Netsparker Standard 中文漢化使用教程
推薦文章: