nikto—初始化階段
如上所述,所有插件都必須能夠在初始化階段執行,否則將被忽略。
必須存在名為filename_init的perl子程序。沒有向SUB傳遞任何參數,并且應返回對包含以下條目的hash的hash引用:
name(必填)
插件的簡稱。它用于在詳細日志記錄期間標識插件,在將來的版本中,它將用于選擇插件執行。名稱應該是一個單詞,最好是小寫。
full_name(必填)
插件的全名。它用于在詳細日志記錄期間標識插件,并且可以在報告模塊中用于標識針對Web服務器運行的測試。
author (必填)
插件作者的名稱或句柄。在報告期間可以使用它來標識針對Web服務器運行的測試的版權。
description(必填)
一句簡短的話來描述插件的用途。這可以在報告期間使用,也可以由前端用來描述插件的用途。
copyright(必填)
插件的版權字符串(或缺少版權字符串)。在報告過程中可以使用它來確保為報告分配適當的版權。
hooks(可選的)
這應該是包含插件可以響應的hooks信息的hash的hashes。
hooks元素的每個鍵都應該是所需hook的名稱,并帶有詳細說明信息的hash值。hash的組成部分應為:
method (必填)
這應該是為hook的函數引用。
cond (可選的)
這是一個在執行插件之前要評估的表達式;如果為true,則執行插件;如果為false,則跳過該插件。這可用于最小化插件執行。
weight (可選的)
這是用于在偵聽階段安排插件運行時間的權重。如果未定義,則默認為50。
options(可選的)
這是一個散列,其中包含有關可以傳遞給插件的任何參數的幫助信息。如果使用-list-plugins參數,將顯示該信息。
options元素的每個鍵都應該是參數的名稱,字符串值應提供參數的簡要說明。
report_head(可選的)
這應該是對任何測試開始之前執行的函數的引用。如果未定義,則不會調用該插件以生成報告頭。
report_host_start(可選的)
這應該是對每個主機的偵聽階段之前執行的功能的引用。如果未定義,則不會調用該插件以生成主機頭。
report_host_end(可選的)
這應該是對每個主機的掃描階段之后執行的功能的引用。如果未定義,則不會調用該插件以生成主機頁腳。
report_item(可選的)
這應該是對每個發現的漏洞之后執行的功能的引用。如果未定義,則將不會調用該插件以生成項目記錄。
report_close(可選的)
這應該是對所有主機的測試完成后執行的功能的引用。如果未定義,則不會調用該插件來關閉報告。
report_format(可選的)
這應該描述插件處理的文件格式。這在內部與-output開關的內容匹配, 以減少對插件的過多調用。
report_weight(可選的)
這是用于在報告階段安排插件運行的權重。如果未定義,則默認為50。
示例8.1 初始化函數示例
sub nikto_auth_init {
my $id = { name => 'auth',
full_name => 'Guess authentication',
author => 'Sullo/Deity',
description => 'Attempt to guess authentication realms',
hooks => {
start => {
method => \&nikto_auth_load,
weight => 1,
},
postfetch => {
method => \&nikto_auth,
weight => 19,
cond => '$result->{whisker}->{code} eq 401',
},
prefetch => {
method => \&nikto_auth_pre,
weight => 19,
},
},
copyright => "2010 CIRT Inc"
};
return $id;
}
Nikto中文使用教程
推薦文章: