go語言滲透測試 滲透測試工具集

匯總下關(guān)于安全的13款必備工具

匯總下關(guān)于安全的幾款必備工具:

公司主營業(yè)務(wù):網(wǎng)站制作、成都做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出樂昌免費做網(wǎng)站回饋大家。

Burp Suite 是用于攻擊web 應(yīng)用程序的集成平臺,http協(xié)議分析神器,里面包括了不少安全必備的功能,重放、爆破、掃描并且支持自定義腳本,實現(xiàn)自己想要的功能。Burp Suite為這些工具設(shè)計了許多接口,以加快攻擊應(yīng)用程序的過程。所有工具都共享一個請求,并能處理對應(yīng)的HTTP 消息、持久性、認(rèn)證、代理、日志、警報。

工具下載地址:

工具運行需要Java環(huán)境,請自行安裝。

Nmap,也就是Network Mapper,最早是Linux下的網(wǎng)絡(luò)掃描和嗅探工具包,掃描網(wǎng)絡(luò)情況和端口開放情況,也可以加載nmap內(nèi)置的poc腳本發(fā)現(xiàn)安全漏洞

官網(wǎng):

nmap是一個網(wǎng)絡(luò)連接端掃描軟件,用來掃描網(wǎng)上電腦開放的網(wǎng)絡(luò)連接端。確定哪些服務(wù)運行在哪些連接端,并且推斷計算機運行哪個操作系統(tǒng)(這是亦稱 fingerprinting)。它是網(wǎng)絡(luò)管理員必用的軟件之一,以及用以評估網(wǎng)絡(luò)系統(tǒng)安全。

正如大多數(shù)被用于網(wǎng)絡(luò)安全的工具,nmap 也是不少黑客及駭客(又稱腳本小子)愛用的工具 。系統(tǒng)管理員可以利用nmap來探測工作環(huán)境中未經(jīng)批準(zhǔn)使用的服務(wù)器,但是黑客會利用nmap來搜集目標(biāo)電腦的網(wǎng)絡(luò)設(shè)定,從而計劃攻擊的方法。

Nmap 常被跟評估系統(tǒng)漏洞軟件Nessus 混為一談。Nmap 以隱秘的手法,避開闖入檢測系統(tǒng)的監(jiān)視,并盡可能不影響目標(biāo)系統(tǒng)的日常操作。

這個主要是利用sql注入漏洞的工具,可以自定義掃描規(guī)則和方式,若是通讀源碼之后對sql注入會有相當(dāng)深的理解

官網(wǎng):

這個是域名爆破工具,owasp開發(fā)的,該工具采用Go語言開發(fā),它可以通過遍歷等形式爬取數(shù)據(jù)源和Web文檔,或利用IP地址來搜索相關(guān)的網(wǎng)塊和ASN,并利用所有收集到的信息來構(gòu)建目標(biāo)網(wǎng)絡(luò)拓?fù)?。速度和發(fā)現(xiàn)都相當(dāng)不錯。

項目地址:

官網(wǎng)

ubuntu下安裝命令如下:

Masscan,是 robertdavidgraham 在 Github 上開源的端口掃描工具。

Masscan 性能優(yōu)越,極限速度可以從單機每秒發(fā)送1000萬個數(shù)據(jù)包。Masscan 使用了與另一個著名的掃描工具 —— nmap 類似的命令行參數(shù),方便進行上手使用。

Masscan 針對 TCP 端口進行掃描,使用 SYN 掃描的方式,不建立一個完全的 TCP 連接,而是首先發(fā)送一個 SYN 數(shù)據(jù)包到目標(biāo)端口,然后等待接收。如果接收到 SYN-ACK 包,則說明該端口是開放的,此時發(fā)送一個 RST 結(jié)束建立過程即可;否則,若目標(biāo)返回 RST,則端口不開放。 這個用來發(fā)現(xiàn)大規(guī)模網(wǎng)絡(luò)下存活的ip和端口還是不錯,配合nmap發(fā)現(xiàn)服務(wù)可快速掃描網(wǎng)絡(luò)

項目代碼位于

安裝 Masscan 可以從源碼進行編譯,在 Debian/Ubuntu 平臺上,使用命令:

編譯得到的二進制程序位于子文件夾 masscan/bin。由于代碼中包含了大量的小文件,可以開啟多線程模式進行編譯:

Wireshark(前稱Ethereal)是一個網(wǎng)絡(luò)封包分析軟件。網(wǎng)絡(luò)封包分析軟件的功能是截取網(wǎng)絡(luò)封包,并盡可能顯示出最為詳細(xì)的網(wǎng)絡(luò)封包資料。Wireshark使用WinPCAP作為接口,直接與網(wǎng)卡進行數(shù)據(jù)報文交換。

下載地址

7、metasploit

Metasploit是一款開源的安全漏洞檢測工具,可以幫助安全和IT專業(yè)人士識別安全性問題,驗證漏洞的緩解措施,并管理專家驅(qū)動的安全性進行評估,提供真正的安全風(fēng)險情報。這些功能包括智能開發(fā),代碼審計,Web應(yīng)用程序掃描, 社會 工程。團隊合作,在Metasploit和綜合報告提出了他們的發(fā)現(xiàn)。

下載地址

Cobalt Strike是一款基于java的滲透測試神器,常被業(yè)界人稱為CS神器。自3.0以后已經(jīng)不在使用Metasploit框架而作為一個獨立的平臺使用,分為客戶端與服務(wù)端,服務(wù)端是一個,客戶端可以有多個,非常適合團隊協(xié)同作戰(zhàn),多個攻擊者可以同時連接到一個團隊服務(wù)器上,共享攻擊資源與目標(biāo)信息和sessions,可模擬APT做模擬對抗,進行內(nèi)網(wǎng)滲透。

Cobalt Strike集成了端口轉(zhuǎn)發(fā)、服務(wù)掃描,自動化溢出,多模式端口監(jiān)聽,win exe木馬生成,win dll木馬生成,java木馬生成,office宏病毒生成,木馬捆綁;釣魚攻擊包括:站點克隆,目標(biāo)信息獲取,java執(zhí)行,瀏覽器自動攻擊等等。

mimikatz可以從內(nèi)存中提取明文密碼、哈希、PIN 碼和 kerberos 票證。 mimikatz 還可以執(zhí)行哈希傳遞、票證傳遞或構(gòu)建黃金票證。

下載地址

這個是內(nèi)網(wǎng)端口轉(zhuǎn)發(fā)工具,對于無法出網(wǎng)的端口相當(dāng)好用。有Windows版和Linux版兩個版本,Windows版是lcx.exe,Linux版為portmap。

lcx有兩大功能:

代理隧道工具,可以讓工具走隧道進入內(nèi)網(wǎng)環(huán)境,配合msf中的代理相當(dāng)好用

github地址

1.建立文件夾proxychains,并進入下載

2.解壓縮

3.進入解壓縮后的目錄進行安裝

4.配置環(huán)境變量 打開文件.bashrc

將下面一段話考入該文件

使改變生效

有管理員權(quán)限 直接執(zhí)行以下命令

netcat被譽為網(wǎng)絡(luò)安全界的‘瑞士軍刀’,命令用于設(shè)置路由器。 一個簡單而有用的工具,透過使用TCP或UDP協(xié)議的網(wǎng)絡(luò)連接去讀寫數(shù)據(jù)。它被設(shè)計成一個穩(wěn)定的后門工具,能夠直接由其它程序和腳本輕松驅(qū)動。同時,它也是一個功能強大的網(wǎng)絡(luò)調(diào)試和探測工具,能夠建立你需要的幾乎所有類型的網(wǎng)絡(luò)連接,還有幾個很有意思的內(nèi)置功能(詳情請看下面的使用方法)。

【沒有找到該工具logo,隨便找一個湊數(shù)】

中國蟻劍是一款開源的跨平臺網(wǎng)站管理工具,它主要面向于合法授權(quán)的滲透測試安全人員以及進行常規(guī)操作的網(wǎng)站管理員。

通俗的講:中國蟻劍是 一 款比菜刀還牛的shell控制端軟件。

唯一官方github下載地址:

嫌棄一個個下載麻煩的同學(xué)有福了, 一口君已經(jīng)下載,并存放在網(wǎng)盤里,

后臺回復(fù): 安全工具 即可下載

GO語言(十六):模糊測試入門(上)

本教程介紹了 Go 中模糊測試的基礎(chǔ)知識。通過模糊測試,隨機數(shù)據(jù)會針對您的測試運行,以嘗試找出漏洞或?qū)е卤罎⒌妮斎???梢酝ㄟ^模糊測試發(fā)現(xiàn)的一些漏洞示例包括 SQL 注入、緩沖區(qū)溢出、拒絕服務(wù)和跨站點腳本攻擊。

在本教程中,您將為一個簡單的函數(shù)編寫一個模糊測試,運行 go 命令,并調(diào)試和修復(fù)代碼中的問題。

首先,為您要編寫的代碼創(chuàng)建一個文件夾。

1、打開命令提示符并切換到您的主目錄。

在 Linux 或 Mac 上:

在 Windows 上:

2、在命令提示符下,為您的代碼創(chuàng)建一個名為 fuzz 的目錄。

3、創(chuàng)建一個模塊來保存您的代碼。

運行g(shù)o mod init命令,為其提供新代碼的模塊路徑。

接下來,您將添加一些簡單的代碼來反轉(zhuǎn)字符串,稍后我們將對其進行模糊測試。

在此步驟中,您將添加一個函數(shù)來反轉(zhuǎn)字符串。

a.使用您的文本編輯器,在 fuzz 目錄中創(chuàng)建一個名為 main.go 的文件。

獨立程序(與庫相反)始終位于 package 中main。

此函數(shù)將接受string,使用byte進行循環(huán) ,并在最后返回反轉(zhuǎn)的字符串。

此函數(shù)將運行一些Reverse操作,然后將輸出打印到命令行。這有助于查看運行中的代碼,并可能有助于調(diào)試。

e.該main函數(shù)使用 fmt 包,因此您需要導(dǎo)入它。

第一行代碼應(yīng)如下所示:

從包含 main.go 的目錄中的命令行,運行代碼。

可以看到原來的字符串,反轉(zhuǎn)它的結(jié)果,然后再反轉(zhuǎn)它的結(jié)果,就相當(dāng)于原來的了。

現(xiàn)在代碼正在運行,是時候測試它了。

在這一步中,您將為Reverse函數(shù)編寫一個基本的單元測試。

a.使用您的文本編輯器,在 fuzz 目錄中創(chuàng)建一個名為 reverse_test.go 的文件。

b.將以下代碼粘貼到 reverse_test.go 中。

這個簡單的測試將斷言列出的輸入字符串將被正確反轉(zhuǎn)。

使用運行單元測試go test

接下來,您將單元測試更改為模糊測試。

單元測試有局限性,即每個輸入都必須由開發(fā)人員添加到測試中。模糊測試的一個好處是它可以為您的代碼提供輸入,并且可以識別您提出的測試用例沒有達到的邊緣用例。

在本節(jié)中,您將單元測試轉(zhuǎn)換為模糊測試,這樣您就可以用更少的工作生成更多的輸入!

請注意,您可以將單元測試、基準(zhǔn)測試和模糊測試保存在同一個 *_test.go 文件中,但對于本示例,您將單元測試轉(zhuǎn)換為模糊測試。

在您的文本編輯器中,將 reverse_test.go 中的單元測試替換為以下模糊測試。

Fuzzing 也有一些限制。在您的單元測試中,您可以預(yù)測Reverse函數(shù)的預(yù)期輸出,并驗證實際輸出是否滿足這些預(yù)期。

例如,在測試用例Reverse("Hello, world")中,單元測試將返回指定為"dlrow ,olleH".

模糊測試時,您無法預(yù)測預(yù)期輸出,因為您無法控制輸入。

但是,Reverse您可以在模糊測試中驗證函數(shù)的一些屬性。在這個模糊測試中檢查的兩個屬性是:

(1)將字符串反轉(zhuǎn)兩次保留原始值

(2)反轉(zhuǎn)的字符串將其狀態(tài)保留為有效的 UTF-8。

注意單元測試和模糊測試之間的語法差異:

(3)確保新包unicode/utf8已導(dǎo)入。

隨著單元測試轉(zhuǎn)換為模糊測試,是時候再次運行測試了。

a.在不進行模糊測試的情況下運行模糊測試,以確保種子輸入通過。

如果您在該文件中有其他測試,您也可以運行g(shù)o test -run=FuzzReverse,并且您只想運行模糊測試。

b.運行FuzzReverse模糊測試,查看是否有任何隨機生成的字符串輸入會導(dǎo)致失敗。這是使用go test新標(biāo)志-fuzz執(zhí)行的。

模糊測試時發(fā)生故障,導(dǎo)致問題的輸入被寫入將在下次運行的種子語料庫文件中g(shù)o test,即使沒有-fuzz標(biāo)志也是如此。要查看導(dǎo)致失敗的輸入,請在文本編輯器中打開寫入 testdata/fuzz/FuzzReverse 目錄的語料庫文件。您的種子語料庫文件可能包含不同的字符串,但格式相同。

語料庫文件的第一行表示編碼版本。以下每一行代表構(gòu)成語料庫條目的每種類型的值。由于 fuzz target 只需要 1 個輸入,因此版本之后只有 1 個值。

c.運行沒有-fuzz標(biāo)志的go test; 新的失敗種子語料庫條目將被使用:

由于我們的測試失敗,是時候調(diào)試了。

打造自己的滲透測試框架—溯光

TrackRay簡介

溯光,英文名“TrackRay”,意為逆光而行,追溯光源。同時致敬安全圈前輩開發(fā)的“溯雪”,“流光”。

溯光是一個開源的插件化滲透測試框架,框架自身實現(xiàn)了漏洞掃描功能,集成了知名安全工具:Metasploit、Nmap、Sqlmap、AWVS等。

溯光使用 Java 編寫,SpringBoot 作為基礎(chǔ)框架,JPA + HSQLDB嵌入式數(shù)據(jù)庫做持久化,Maven 管理依賴,Jython 實現(xiàn) Python 插件調(diào)用,quartz 做任務(wù)調(diào)度,freemarker + thymeleaf 做視圖層,Websocket 實現(xiàn)命令行式插件交互。

框架可擴展性高,支持 Java、Python、JSON 等方式編寫插件,有“漏洞掃描插件”、“爬蟲插件”、“MVC插件”、“內(nèi)部插件”、“無交互插件”和“可交互插件” 等插件類型。

功能展示

主頁

登錄

任務(wù)創(chuàng)建

任務(wù)列表

任務(wù)詳情

無交互接口插件調(diào)用

MVC插件示例

交互式插件控制臺

MSF 控制臺

依賴環(huán)境

JDK 1.8

Python 2.7

Maven

Git

Metasploit

Nmap(建議安裝)

SQLMAP(建議安裝)

AWVS

**加粗為必須環(huán)境,沒有安裝程序則無法正常編譯運行

不論是 Windows 還是 linux 一定需要先安裝 JDK1.8 和 Maven。安裝過程這里不做演示。保證 JDK 和 Maven 都在系統(tǒng)環(huán)境變量,能執(zhí)行java -version 和 mvn --version即可。

安裝過程

第一步

手動啟動 AWVS 服務(wù)

登錄后臺,生成一個API密匙。

復(fù)制密匙和 AWVS 的地址。

找到web/src/main/resources/application.properties配置文件。

修改如下部分

第二步

找到你 python 的第三方庫目錄。

Windows 的一般在 python 安裝目錄下的/Lib/site-packages

Linux 下可以通過輸出 sys.path 來找第三方包路徑

我的是 D:/Python2/Lib/site-packages

同樣找到web/src/main/resources/application.properties配置文件。

修改python.package.path參數(shù)

第三步

安裝 Maven 后找到倉庫位置。

如果沒有在 settings.xml 里配置指定倉庫目錄,默認(rèn)會在當(dāng)前用戶目錄中生成一個 .m2的目錄

找到倉庫目錄后修改 application.properties 的 maven.repository.path參數(shù)

第四步

這個是 DNSLOG 回顯檢測漏洞時需要的。

去 ceye.io 注冊一個賬號,拿到給你分配的域名和 TOKEN。

修改配置文件

第五步

啟動 msf 和 sqlmapapi。

如果你是 kali 操作系統(tǒng),可以直接運行startdep.sh。

如果是其他系統(tǒng),則要找到 metasploit 和 sqlmap 的目錄分別執(zhí)行

啟動成功后修改配置文件

第六步

編譯打包程序

等待依賴下載完成和編譯完成,如果以上操作都沒有出現(xiàn)問題則會提示 BUILD SUCCESS

編譯成功后會在當(dāng)前目錄打包一個trackray.jar就是溯光的主程序。

然后直接執(zhí)行startup.bat或startup.sh溯光就會啟動服務(wù)。

沒有拋出異?;駿RROR日志,訪問 8080 端口正常。

服務(wù)啟動正常后,登錄 iZone 社區(qū)賬號。

**開發(fā)插件建議使用 Intellij IDEA IDE,需要安裝 lombok 插件。

目錄結(jié)構(gòu)

插件

AbstractPlugin

這是交互式插件和非交互式插件的父類。

BASE常量

其中的靜態(tài)常量 BASE 是 /resources/include/ 的所在目錄。

如果你的插件需要額外的靜態(tài)資源,那么你可以在 /resources/include 目錄里創(chuàng)建一個和插件 KEY 相同的文件夾,便于識別,如果沒有在 @Plugin 注解中設(shè)置 value 則默認(rèn)的插件 KEY 就是當(dāng)前類名首字母小寫。

如 Typecho001 = typecho001

check(Map param)

這是用于檢驗是否合規(guī)的方法,需要被強制重寫,當(dāng)返回 true 時才會調(diào)用 start() 方法

param 參數(shù)是從前臺傳過來的參數(shù)鍵值對。

常被用于檢驗參數(shù)格式是否正確或漏洞是否存在。

after()

在 start() 方法之前調(diào)用

before()

在 start() 方法之后調(diào)用

start()

這是一個抽象方法,所有繼承了該類的子類都需要重寫這個方法。

在 check 方法 通過后會調(diào)用 start() 方法

start() 方法返回值最終會會當(dāng)做插件結(jié)果,響應(yīng)給前臺。

shell()

調(diào)用當(dāng)前系統(tǒng) shell 來輔助完成插件功能。

executor()

插件執(zhí)行的主方法

crawlerPage

http請求對象(不推薦使用)

fetcher

執(zhí)行 http 請求對象(不推薦使用)

errorMsg

當(dāng)校驗不通過時,返回給前臺的信息。

param

前臺傳過來的參數(shù)鍵值對

requests

HTTP 發(fā)包工具(推薦使用)

hackKit

hack 常用工具包

無交互插件

無交互插件需要你填寫好所有要填寫的參數(shù),直接請求接口來執(zhí)行插件。

默認(rèn)需要去繼承 CommonPlugin類。

這是一個抽象類,繼承了 AbstractPlugin

主要多出來兩個屬性:request 和 response。

繼承了 CommonPlugin 的類可以通過調(diào)用這兩個屬性來控制請求和響應(yīng)內(nèi)容。

無交互插件同時也需要使用 @Rule 和 @Plugin 插件,這兩個注解后面會講到。

在 ,找到相應(yīng)的插件填寫好參數(shù)提交即可完成調(diào)用。

或直接調(diào)用接口。

交互式插件

交互式插件一般在命令行控制臺中調(diào)用,可以允許你通過命令行交互來完成插件的調(diào)用。

交互式插件由 Websocket 實現(xiàn),想要寫一個交互式插件,首先要繼承 WebSocketPlugin 類。

同時設(shè)置 @Rule 注解的 websocket 參數(shù)為 true ,如果需要異步交互需要將 sync 也設(shè)置為 true。

內(nèi)部插件

內(nèi)部插件是不可以通過外部去調(diào)用的,需要繼承 InnerPlugin 并使用 @Plugin 注解,通常在漏洞掃描時時會調(diào)用。

例如 “網(wǎng)頁爬蟲”,“指紋識別”,“端口掃描” 等,都是通過調(diào)用內(nèi)部插件實現(xiàn)的。

還有用于檢測 SSRF 等漏洞用的 FuckCeye 插件也屬于內(nèi)部插件。

通過 spring 的自動注入,來注入內(nèi)部插件到當(dāng)前對象。

例子可參考 WebLogicWLSRCE.java

爬蟲插件

爬蟲插件會在掃描任務(wù)被勾選“網(wǎng)頁爬蟲”時調(diào)用,每爬取一條請求就會調(diào)用一次爬蟲插件。

爬蟲插件需要繼承 CrawlerPlugin,繼承該類必須重寫 check 和 process 方法。

check 方法用于檢驗請求是否符合插件規(guī)則,以免產(chǎn)生多余請求。

當(dāng) check 方法 返回為 true 時會調(diào)用 process 方法。

process 方法里寫插件主要檢測代碼。

addVulnerable()

當(dāng)插件檢測出漏洞時,可以通過調(diào)用 addVulnerable() 方法來向數(shù)據(jù)庫插入一條漏洞。

requests

requests 屬性為請求工具包,處理 https 和 http 都很方便。

response

response 屬性為當(dāng)前爬蟲得到的 HTTP 響應(yīng)。

task

task 屬性為當(dāng)前任務(wù)對象,如果你的爬蟲插件不是檢測漏洞而希望是檢測一些敏感信息的話可以修改 task.getResult() 里的屬性。

參考 FingerProbe.java 或 InfoProbe.java。

target

爬蟲爬取到的 URL 對象。

fetcher crawlerPage

http 請求對象(不建議使用)。

漏洞掃描插件

漏洞掃描插件會在,掃描任務(wù)中勾選“漏洞攻擊模塊”時調(diào)用。

漏洞掃描插件分為三種

1.獨立插件

獨立的漏洞掃描插件需要繼承 AbstractExploit 并使用 @Plugin 或 @Exploit

AbstractExploit 中有以下需要了解的方法和屬性。

requests

http / https 發(fā)包工具

target 當(dāng)前掃描任務(wù)的地址。

task

當(dāng)前掃描任務(wù)對象。

check()

check 是一個抽象方法,需要被子類強制重寫。

該方法一般用于檢驗是否符合當(dāng)前漏洞掃描插件的規(guī)則,以免產(chǎn)生多與請求。

attack()

attack 也是一個抽象方法,需要被子類強制重寫。

該方法是檢測漏洞的主方法。

before()

在 attack 方法前執(zhí)行

after()

在 attack 方法后執(zhí)行

addVulnerable()

當(dāng)插件檢測出漏洞時,可以通過調(diào)用 addVulnerable() 方法來向數(shù)據(jù)庫插入一條漏洞。

fetcher crawlerPage

http 請求對象(不建議使用)。

2.漏洞規(guī)則

位于

實際上這是一個“內(nèi)部插件”,會在勾選漏洞模塊攻擊時調(diào)用。

有一些漏洞檢測方法很簡單,只通過簡單的判斷響應(yīng)體就能識別出來,也就沒有必要再去寫一個獨立的插件而占用空間了。

在 doSwitch() 方法中會先去根據(jù)當(dāng)前任務(wù)的指紋識別結(jié)果走一遍 switch 流程。

swtich 的每一個 case 都是 WEB 指紋的枚舉對象。

當(dāng) switch 找到當(dāng)前任務(wù) WEB 指紋對應(yīng)的 case 后,case 內(nèi)的代碼會通過構(gòu)建一個漏洞規(guī)則添加到 loaders 集合里。

如果規(guī)則是通用的,可以寫在 switch 的外面。

3.kunpeng JSON插件

kunpeng 是一個 go 語言編寫的 poc 測試框架,這里我對 kunpeng 的 JSON 插件做了一個支持。

只需要按照 kunpeng json 插件的格式規(guī)范創(chuàng)建一個 json 文件到 /resources/json 目錄。

在掃描任務(wù)勾選“漏洞攻擊模塊”時會被調(diào)用,或通過 MVC 插件調(diào)用 。

MVC 插件

位于

MVC 插件的特點在于,他可以像是在寫一個功能一樣,而非簡單的接口式調(diào)用。

MVC 插件需要繼承 MVCPlugin 類,并使用 @Rule,@Plugin 注解。

MVCPlugin 內(nèi)置了一個 ModelAndView 對象, 是 SpringMVC 提供的。

可以通過 setViewName() 來指定視圖層的網(wǎng)頁模板。

通過 addObject(key,value) 向視圖層網(wǎng)頁模板注入?yún)?shù)。

這里的視圖層是使用 thymeleaf 實現(xiàn)的,需要懂 thymeleaf 的語法。

例子可以參考:com.trackray.module.inner.JSONPlugin

繼承 MVCPlugin 必須要重寫一個 index 方法,這是插件的入口。

如果需要寫其他的功能,就得再創(chuàng)建一個 public 返回值為 void 的無參方法。

并且要在該方法上使用 @Function 注解,該注解的 value 參數(shù)如果不填寫的話則默認(rèn)的 requestMapping 地址為方法名。

例如

最后還需要在 /module/src/main/resources/templates 創(chuàng)建一個目錄名為插件 KEY 的目錄。

里面存放擴展名為 .html 的模板文件。

Python 插件

python 插件有兩種實現(xiàn)方式。

1.通過命令行實現(xiàn)

這種方式最為簡單,通過在 include 里寫一個 python 腳本。

然后在插件里調(diào)用 shell() 方法來執(zhí)行系統(tǒng)命令。

案例可參考 com.trackray.module.plugin.windows.smb.MS17010

但這樣還需要再寫 java 的代碼,對于沒有學(xué)過 java 的人來說很不友好。

2.通過jython實現(xiàn)

jython 是一個 Python 語言在 Java 中的完全實現(xiàn)。

我將它的調(diào)用過程寫成了一個交互式插件。

你可以通過在 /resources/python/ 目錄下安裝如下規(guī)范去創(chuàng)建一個 python 文件。

在這個 python 文件中需要寫兩個方法。

關(guān)于注解

@Rule

一般用在“可交互插件”和“無交互插件”類上。

@Plugin

WEB指紋

這里順便再說一下如何添加指紋庫。

指紋庫位于 base 模塊,是一個枚舉類。

可以在首部或尾部添加一條新的枚舉,盡量使用 $ 開頭。

第一個參數(shù)是 指紋的名稱,如果第二個參數(shù)是 String 類型則是該指紋的說明。

FingerBean 類是指紋匹配對象。

GO語言(十八):模糊測試入門(下)-

Reverse為了解決這個問題,如果輸入不是有效的 UTF-8 ,讓我們返回一個錯誤。

a.在您的文本編輯器中,將現(xiàn)有Reverse函數(shù)替換為以下內(nèi)容。

如果輸入字符串包含無效的 UTF-8 字符,此更改將返回錯誤。

b.由于 Reverse 函數(shù)現(xiàn)在返回錯誤,因此修改main函數(shù)以丟棄額外的錯誤值。將現(xiàn)有main功能替換為以下內(nèi)容。

這些調(diào)用Reverse應(yīng)該返回一個 nil 錯誤,因為輸入字符串是有效的 UTF-8。

c.您將需要導(dǎo)入錯誤和 unicode/utf8 包。main.go 中的 import 語句應(yīng)如下所示。

d.修改reverse_test.go文件檢查是否有錯誤,如果返回產(chǎn)生錯誤則跳過測試。

除了返回之外,您還可以調(diào)用t.Skip()以停止執(zhí)行該模糊輸入。

a.使用 go test 運行測試

b.使用go test -fuzz=Fuzz進行模糊測試,幾秒鐘后,停止用ctrl-C模糊測試。

除非您通過-fuzztime標(biāo)志進行限制,否則模糊測試將一直運行,直到遇到失敗的輸入。如果沒有發(fā)生故障,默認(rèn)是永遠(yuǎn)運行,并且可以使用 中斷該過程ctrl-C。

c. 使用go test -fuzz=Fuzz -fuzztime 30s。如果沒有30 秒發(fā)現(xiàn)失敗,它會在退出模糊測試。

模糊測試通過了!

做得很好!您剛剛學(xué)習(xí)了在 Go 中進行模糊測試。

— main.go —

— reverse_test.go —

分享名稱:go語言滲透測試 滲透測試工具集
分享鏈接:http://muchs.cn/article38/doeeosp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計、網(wǎng)站制作網(wǎng)頁設(shè)計公司、商城網(wǎng)站、動態(tài)網(wǎng)站、云服務(wù)器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站