Documentation
¶
Overview ¶
Tests for unrestricted HTTP methods/verbs
Index ¶
- Variables
- func MergeMaps(map1 map[string]string, map2 map[string]string) map[string]string
- func ParamsToMap(params []parser.Param) map[string]string
- type ApiTest
- func BasicOsCommandInjectionTest(baseUrl string, docParams []*parser.DocHttpParams, ...) []*ApiTest
- func BasicSqliTest(baseUrl string, docParams []*parser.DocHttpParams, ...) []*ApiTest
- func BasicSsrfTest(ssrfUrl, baseUrl string, docParams []*parser.DocHttpParams, ...) []*ApiTest
- func BasicSstiInjectionTest(baseUrl string, docParams []*parser.DocHttpParams, ...) []*ApiTest
- func BasicXssHtmlInjectionTest(baseUrl string, docParams []*parser.DocHttpParams, ...) []*ApiTest
- func BolaTest(baseUrl string, docParams []*parser.DocHttpParams, ...) []*ApiTest
- func BolaTrailingPathTest(baseUrl string, docParams []*parser.DocHttpParams, ...) []*ApiTest
- func UnrestrictedHttpMethods(baseUrl string, docParams []*parser.DocHttpParams, ...) []*ApiTest
- type InjectionConfig
- type Payload
- type TGenHandler
Constants ¶
This section is empty.
Variables ¶
View Source
var HttpMethodsSlice = []string{ fasthttp.MethodGet, fasthttp.MethodHead, fasthttp.MethodPost, fasthttp.MethodPut, fasthttp.MethodPatch, fasthttp.MethodDelete, fasthttp.MethodConnect, fasthttp.MethodOptions, fasthttp.MethodTrace, }
Functions ¶
Types ¶
type ApiTest ¶
type ApiTest struct {
// Fields to be populated before making HTTP request
TestName string `json:"test_name"`
Request *client.Request `json:"request"`
Path string `json:"path"`
PathWithParams string `json:"path_with_params"`
MatchRegex string `json:"match_regex"` // regex used in post processing for detecting injection
// Fields to be populated after making HTTP request
IsVulnerable bool `json:"is_vulnerable"`
IsDataLeak bool `json:"is_data_leak"`
Response *client.ConcurrentResponse `json:"concurrent_response"`
// Post Request Process
VulnerableResponseCodes []int `json:"vulnerable_response_codes"`
ImmuneResponseCodes []int `json:"immune_response_codes"` //
}
Holds data related for API testing
func BasicOsCommandInjectionTest ¶
func BasicOsCommandInjectionTest(baseUrl string, docParams []*parser.DocHttpParams, queryParams map[string]string, headers map[string]string, injectionConfig InjectionConfig) []*ApiTest
func BasicSqliTest ¶
func BasicSqliTest(baseUrl string, docParams []*parser.DocHttpParams, queryParams map[string]string, headers map[string]string, injectionConfig InjectionConfig) []*ApiTest
generates very basic sqli API tests
func BasicSsrfTest ¶
func BasicSsrfTest(ssrfUrl, baseUrl string, docParams []*parser.DocHttpParams, queryParams map[string]string, headers map[string]string, injectionConfig InjectionConfig) []*ApiTest
generates very basic SSRF API tests by injecting provided URL
func BasicSstiInjectionTest ¶
func BasicSstiInjectionTest(baseUrl string, docParams []*parser.DocHttpParams, queryParams map[string]string, headers map[string]string, injectionConfig InjectionConfig) []*ApiTest
func BasicXssHtmlInjectionTest ¶
func BasicXssHtmlInjectionTest(baseUrl string, docParams []*parser.DocHttpParams, queryParams map[string]string, headers map[string]string, injectionConfig InjectionConfig) []*ApiTest
func BolaTrailingPathTest ¶
func UnrestrictedHttpMethods ¶
func UnrestrictedHttpMethods(baseUrl string, docParams []*parser.DocHttpParams, queryParams map[string]string, headers map[string]string) []*ApiTest
returns a new map with k:parser.DocHttpParams.Name, v:parser.DocHttpParams.Value
type InjectionConfig ¶
type Payload ¶
type Payload struct {
InjText string // text to be injected
// Post Processors
VulnerableResponseCodes []int // status code indicating API endpoint is vulnerable
ImmuneResponseCodes []int // status code indicating API endpoint is not vulnerable
Regex string // regex to be used for post processing
}
Struct used for injecting payloads while generating tests
type TGenHandler ¶
type TGenHandler struct {
Doc []*parser.DocHttpParams
DefaultQueryParams map[string]string
DefaultHeaders map[string]string
BaseUrl string
// Register all tests using bool values below
RunUnrestrictedHttpMethodTest bool
RunBasicSQLiTest bool
RunBasicSSRFTest bool
RunOsCommandInjectionTest bool
RunXssHtmlInjectionTest bool
RunSstiInjectionTest bool
RunBolaTest bool
RunBolaTrailingPathTest bool
// SSRF Test related data
SsrfUrl string
}
func (*TGenHandler) FilterTests ¶
func (t *TGenHandler) FilterTests(apiTests []*ApiTest, pathRegex string) []*ApiTest
func (*TGenHandler) GenerateTests ¶
func (t *TGenHandler) GenerateTests() []*ApiTest
Click to show internal directories.
Click to hide internal directories.