ctfd

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 23, 2022 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Challenge

type Challenge struct {
	ID             int64  `json:"id"`
	Name           string `json:"name"`
	Description    string `json:"description"`
	ConnectionInfo string `json:"connection_info"`
	// NextID       int64  `json:"next_id"`
	Attempts    int64  `json:"attempts"`
	MaxAttempts int64  `json:"max_attempts"`
	Value       int64  `json:"value"`
	Category    string `json:"category"`
	Type        string `json:"type"`
	TypeData    struct {
		ID        string `json:"id"`
		Name      string `json:"name"`
		Templates struct {
			Create string `json:"create"`
			Update string `json:"update"`
			View   string `json:"view"`
		} `json:"templates"`
		Scripts struct {
			Create string `json:"create"`
			Update string `json:"update"`
			View   string `json:"view"`
		} `json:"scripts"`
	} `json:"type_data"`
	State string `json:"state"`
	// Requirements []struct {
	// 	ID   int64  `json:"id"`
	// 	Name string `json:"name"`
	// } `json:"requirements"`
	Solves     int64         `json:"solves"`
	SolvedByMe bool          `json:"solved_by_me"`
	Files      []string      `json:"files"`
	Hints      []Hint        `json:"hints"`
	Tags       []interface{} `json:"tags"`
}

type ChallengeData

type ChallengeData struct {
	ID         int64  `json:"id"`
	Type       string `json:"type"`
	Name       string `json:"name"`
	Value      int64  `json:"value"`
	Solves     int64  `json:"solves"`
	SolvedByMe bool   `json:"solved_by_me"`
	Category   string `json:"category"`
}

type Challenges

type Challenges struct {
	Success bool            `json:"success"`
	Data    []ChallengeData `json:"data"`
}

type Client

type Client struct {
	Client  *http.Client
	BaseURL *url.URL
	Log     *logrus.Logger
}

func NewClient

func NewClient(transport http.RoundTripper) *Client

NewClient constructs a new Client. If transport is nil, a default transport is used.

func (*Client) Authenticate

func (c *Client) Authenticate(username, password string) error

Authenticate client to the CTFd instance with the given username, password.

func (*Client) Challenge

func (c *Client) Challenge(id int64) (*Challenge, error)

func (*Client) Check

func (c *Client) Check() error

Check will check if the instance is a CTFd instance.

func (*Client) DownloadFiles

func (c *Client) DownloadFiles(id int64, filePath string) error

func (*Client) GetDescription

func (c *Client) GetDescription(challenge *Challenge, challengePath string) error

GetDescription retrieves a challenge and returns a writeup template of the challenge

func (*Client) ListChallenges

func (c *Client) ListChallenges() ([]ChallengeData, error)

USE: func (c *Client) get(urlStr string, a ...interface{}) (*goquery.Document, error) {

type Hint

type Hint struct {
	ID      int64  `json:"id"`
	Cost    int64  `json:"cost"`
	Content string `json:"content"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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