bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

go語言實現mvc go語言實現簡單kv存儲

Golang里面有類似Java中的ThreadLocal的東西么

我們現在軟件經常會分層,比如MVC ,類似這種橫向分層,而ThreadLocal會提供一種方式,方便的在同一個線程范圍內,提供一個存儲空間,供我們使用,實現縱向的存儲結構,便于我們在同一個線程范圍內,隨時取得我們在另外一個層面存放的數據。

創新互聯建站主營舞陽網站建設的網絡公司,主營網站建設方案,成都app軟件開發,舞陽h5成都小程序開發搭建,舞陽網站營銷推廣歡迎舞陽等地區企業咨詢

Go語言做Web應用開發的框架,哪一個更適合入門

Revel Web開源框架

個高效的Go語言Web開發框架,?其思路完全來自 Java 的?Play Framework。

特點

熱編譯,簡單可選,同步(每個請求都創建自己的goroutine來處理。

Go語言Web框架:beego

一個用Go開發的應用框架,思路來自于tornado,路由設計來源于sinatra。

支持特性

MVC;

REST;

智能路由;

日志調試;

配置管理;

模板自動渲染;

layout設計;

中間件插入邏輯;

方便的JSON/XML服務;

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

TrackRay簡介

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

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

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

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

功能展示

主頁

登錄

任務創建

任務列表

任務詳情

無交互接口插件調用

MVC插件示例

交互式插件控制臺

MSF 控制臺

依賴環境

JDK 1.8

Python 2.7

Maven

Git

Metasploit

Nmap(建議安裝)

SQLMAP(建議安裝)

AWVS

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

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

安裝過程

第一步

手動啟動 AWVS 服務

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

復制密匙和 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參數

第三步

安裝 Maven 后找到倉庫位置。

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

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

第四步

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

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

修改配置文件

第五步

啟動 msf 和 sqlmapapi。

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

如果是其他系統,則要找到 metasploit 和 sqlmap 的目錄分別執行

啟動成功后修改配置文件

第六步

編譯打包程序

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

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

然后直接執行startup.bat或startup.sh溯光就會啟動服務。

沒有拋出異常或ERROR日志,訪問 8080 端口正常。

服務啟動正常后,登錄 iZone 社區賬號。

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

目錄結構

插件

AbstractPlugin

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

BASE常量

其中的靜態常量 BASE 是 /resources/include/ 的所在目錄。

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

如 Typecho001 = typecho001

check(Map param)

這是用于檢驗是否合規的方法,需要被強制重寫,當返回 true 時才會調用 start() 方法

param 參數是從前臺傳過來的參數鍵值對。

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

after()

在 start() 方法之前調用

before()

在 start() 方法之后調用

start()

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

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

start() 方法返回值最終會會當做插件結果,響應給前臺。

shell()

調用當前系統 shell 來輔助完成插件功能。

executor()

插件執行的主方法

crawlerPage

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

fetcher

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

errorMsg

當校驗不通過時,返回給前臺的信息。

param

前臺傳過來的參數鍵值對

requests

HTTP 發包工具(推薦使用)

hackKit

hack 常用工具包

無交互插件

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

默認需要去繼承 CommonPlugin類。

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

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

繼承了 CommonPlugin 的類可以通過調用這兩個屬性來控制請求和響應內容。

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

在 ,找到相應的插件填寫好參數提交即可完成調用。

或直接調用接口。

交互式插件

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

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

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

內部插件

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

例如 “網頁爬蟲”,“指紋識別”,“端口掃描” 等,都是通過調用內部插件實現的。

還有用于檢測 SSRF 等漏洞用的 FuckCeye 插件也屬于內部插件。

通過 spring 的自動注入,來注入內部插件到當前對象。

例子可參考 WebLogicWLSRCE.java

爬蟲插件

爬蟲插件會在掃描任務被勾選“網頁爬蟲”時調用,每爬取一條請求就會調用一次爬蟲插件。

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

check 方法用于檢驗請求是否符合插件規則,以免產生多余請求。

當 check 方法 返回為 true 時會調用 process 方法。

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

addVulnerable()

當插件檢測出漏洞時,可以通過調用 addVulnerable() 方法來向數據庫插入一條漏洞。

requests

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

response

response 屬性為當前爬蟲得到的 HTTP 響應。

task

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

參考 FingerProbe.java 或 InfoProbe.java。

target

爬蟲爬取到的 URL 對象。

fetcher crawlerPage

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

漏洞掃描插件

漏洞掃描插件會在,掃描任務中勾選“漏洞攻擊模塊”時調用。

漏洞掃描插件分為三種

1.獨立插件

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

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

requests

http / https 發包工具

target 當前掃描任務的地址。

task

當前掃描任務對象。

check()

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

該方法一般用于檢驗是否符合當前漏洞掃描插件的規則,以免產生多與請求。

attack()

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

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

before()

在 attack 方法前執行

after()

在 attack 方法后執行

addVulnerable()

當插件檢測出漏洞時,可以通過調用 addVulnerable() 方法來向數據庫插入一條漏洞。

fetcher crawlerPage

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

2.漏洞規則

位于

實際上這是一個“內部插件”,會在勾選漏洞模塊攻擊時調用。

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

在 doSwitch() 方法中會先去根據當前任務的指紋識別結果走一遍 switch 流程。

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

當 switch 找到當前任務 WEB 指紋對應的 case 后,case 內的代碼會通過構建一個漏洞規則添加到 loaders 集合里。

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

3.kunpeng JSON插件

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

只需要按照 kunpeng json 插件的格式規范創建一個 json 文件到 /resources/json 目錄。

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

MVC 插件

位于

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

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

MVCPlugin 內置了一個 ModelAndView 對象, 是 SpringMVC 提供的。

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

通過 addObject(key,value) 向視圖層網頁模板注入參數。

這里的視圖層是使用 thymeleaf 實現的,需要懂 thymeleaf 的語法。

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

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

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

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

例如

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

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

Python 插件

python 插件有兩種實現方式。

1.通過命令行實現

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

然后在插件里調用 shell() 方法來執行系統命令。

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

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

2.通過jython實現

jython 是一個 Python 語言在 Java 中的完全實現。

我將它的調用過程寫成了一個交互式插件。

你可以通過在 /resources/python/ 目錄下安裝如下規范去創建一個 python 文件。

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

關于注解

@Rule

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

@Plugin

WEB指紋

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

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

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

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

FingerBean 類是指紋匹配對象。

本文題目:go語言實現mvc go語言實現簡單kv存儲
標題鏈接:http://vcdvsql.cn/article30/dopicpo.html

成都網站建設公司_創新互聯,為您提供網站維護關鍵詞優化移動網站建設網站設計公司App設計服務器托管

廣告

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

成都定制網站建設