controllers

package
v0.0.0-...-85b2367 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2024 License: MIT Imports: 28 Imported by: 0

Documentation

Overview

Package controllers is responsible for setting up the routing and controllers (http.Handlers) for gophish.

Index

Constants

View Source
const TransparencySuffix = "+"

TransparencySuffix (when appended to a valid result ID), will cause Gophish to return a transparency response.

Variables

View Source
var ErrCampaignComplete = errors.New("Event received on completed campaign")

ErrCampaignComplete is thrown when an event is received for a campaign that has already been marked as complete.

View Source
var ErrInvalidRequest = errors.New("Invalid request")

ErrInvalidRequest is thrown when a request with an invalid structure is received

Functions

func Flash

func Flash(w http.ResponseWriter, r *http.Request, t string, m string)

Flash handles the rendering flash messages

Types

type AdminServer

type AdminServer struct {
	// contains filtered or unexported fields
}

AdminServer is an HTTP server that implements the administrative Gophish handlers, including the dashboard and REST API.

func NewAdminServer

func NewAdminServer(config config.AdminServer, options ...AdminServerOption) *AdminServer

NewAdminServer returns a new instance of the AdminServer with the provided config and options applied.

func (*AdminServer) Base

func (as *AdminServer) Base(w http.ResponseWriter, r *http.Request)

Base handles the default path and template execution

func (*AdminServer) CampaignID

func (as *AdminServer) CampaignID(w http.ResponseWriter, r *http.Request)

CampaignID handles the default path and template execution

func (*AdminServer) Campaigns

func (as *AdminServer) Campaigns(w http.ResponseWriter, r *http.Request)

Campaigns handles the default path and template execution

func (*AdminServer) Groups

func (as *AdminServer) Groups(w http.ResponseWriter, r *http.Request)

Groups handles the default path and template execution

func (*AdminServer) Impersonate

func (as *AdminServer) Impersonate(w http.ResponseWriter, r *http.Request)

Impersonate allows an admin to login to a user account without needing the password

func (*AdminServer) LandingPages

func (as *AdminServer) LandingPages(w http.ResponseWriter, r *http.Request)

LandingPages handles the default path and template execution

func (*AdminServer) Login

func (as *AdminServer) Login(w http.ResponseWriter, r *http.Request)

Login handles the authentication flow for a user. If credentials are valid, a session is created

func (*AdminServer) Logout

func (as *AdminServer) Logout(w http.ResponseWriter, r *http.Request)

Logout destroys the current user session

func (*AdminServer) ResetPassword

func (as *AdminServer) ResetPassword(w http.ResponseWriter, r *http.Request)

ResetPassword handles the password reset flow when a password change is required either by the Gophish system or an administrator.

This handler is meant to be used when a user is required to reset their password, not just when they want to.

This is an important distinction since in this handler we don't require the user to re-enter their current password, as opposed to the flow through the settings handler.

To that end, if the user doesn't require a password change, we will redirect them to the settings page.

func (*AdminServer) SendingProfiles

func (as *AdminServer) SendingProfiles(w http.ResponseWriter, r *http.Request)

SendingProfiles handles the default path and template execution

func (*AdminServer) Settings

func (as *AdminServer) Settings(w http.ResponseWriter, r *http.Request)

Settings handles the changing of settings

func (*AdminServer) Shutdown

func (as *AdminServer) Shutdown() error

Shutdown attempts to gracefully shutdown the server.

func (*AdminServer) Start

func (as *AdminServer) Start()

Start launches the admin server, listening on the configured address.

func (*AdminServer) Templates

func (as *AdminServer) Templates(w http.ResponseWriter, r *http.Request)

Templates handles the default path and template execution

func (*AdminServer) UserManagement

func (as *AdminServer) UserManagement(w http.ResponseWriter, r *http.Request)

UserManagement is an admin-only handler that allows for the registration and management of user accounts within Gophish.

func (*AdminServer) Webhooks

func (as *AdminServer) Webhooks(w http.ResponseWriter, r *http.Request)

Webhooks is an admin-only handler that handles webhooks

type AdminServerOption

type AdminServerOption func(*AdminServer)

AdminServerOption is a functional option that is used to configure the admin server

func WithWorker

func WithWorker(w worker.Worker) AdminServerOption

WithWorker is an option that sets the background worker.

type PServer

type PServer struct {
	// contains filtered or unexported fields
}

PServer is an HTTP server that implements the campaign event handlers, such as email open tracking, click tracking, and more.

func NewPServer

func NewPServer(config config.PhishServer, options ...PServerOption) *PServer

NewPServer returns a new instance of the P server with provided options applied.

func (*PServer) PhishHandler

func (ps *PServer) PhishHandler(w http.ResponseWriter, r *http.Request)

PhishHandler handles incoming client connections and registers the associated actions performed (such as clicked link, etc.)

func (*PServer) ReportHandler

func (ps *PServer) ReportHandler(w http.ResponseWriter, r *http.Request)

ReportHandler tracks emails as they are reported, updating the status for the given Result

func (*PServer) RobotsHandler

func (ps *PServer) RobotsHandler(w http.ResponseWriter, r *http.Request)

RobotsHandler prevents search engines, etc. from indexing P materials

func (*PServer) Shutdown

func (ps *PServer) Shutdown() error

Shutdown attempts to gracefully shutdown the server.

func (*PServer) Start

func (ps *PServer) Start()

Start launches the P server, listening on the configured address.

func (*PServer) TrackHandler

func (ps *PServer) TrackHandler(w http.ResponseWriter, r *http.Request)

TrackHandler tracks emails as they are opened, updating the status for the given Result

func (*PServer) TransparencyHandler

func (ps *PServer) TransparencyHandler(w http.ResponseWriter, r *http.Request)

TransparencyHandler returns a TransparencyResponse for the provided result and campaign.

type PServerOption

type PServerOption func(*PServer)

PServerOption is a functional option that is used to configure the the P server

func WithContactAddress

func WithContactAddress(addr string) PServerOption

WithContactAddress sets the contact address used by the transparency handlers

type TransparencyResponse

type TransparencyResponse struct {
	Server         string    `json:"server"`
	ContactAddress string    `json:"contact_address"`
	SendDate       time.Time `json:"send_date"`
}

TransparencyResponse is the JSON response provided when a third-party makes a request to the transparency handler.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL