mirror of
https://github.com/elicpeter/nyx.git
synced 2026-06-21 20:18:06 +02:00
[pitboss] phase 21: Track M.3 — ScheduledJob + GraphQLResolver + WebSocket + Middleware + Migration
This commit is contained in:
parent
00b0fbaea9
commit
f9bd51c024
84 changed files with 5898 additions and 40 deletions
15
tests/dynamic_fixtures/graphql_resolver/gqlgen/benign.go
Normal file
15
tests/dynamic_fixtures/graphql_resolver/gqlgen/benign.go
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
// Phase 21 — gqlgen benign control.
|
||||
package benign
|
||||
|
||||
// import "github.com/99designs/gqlgen/graphql"
|
||||
|
||||
import "regexp"
|
||||
|
||||
var idAllow = regexp.MustCompile(`^[A-Za-z0-9_-]+$`)
|
||||
|
||||
func ResolveUser(id string) (string, error) {
|
||||
if !idAllow.MatchString(id) {
|
||||
return "", nil
|
||||
}
|
||||
return "user-" + id, nil
|
||||
}
|
||||
23
tests/dynamic_fixtures/graphql_resolver/gqlgen/vuln.go
Normal file
23
tests/dynamic_fixtures/graphql_resolver/gqlgen/vuln.go
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
// Phase 21 (Track M.3) — gqlgen GraphQL resolver vuln fixture.
|
||||
//
|
||||
// `resolveUser(ctx, id)` is a gqlgen resolver (substring marker only —
|
||||
// the real gqlgen runtime is not on the workdir's go.mod). The
|
||||
// resolver splices the id into a shell command via os/exec.
|
||||
package vuln
|
||||
|
||||
// import "github.com/99designs/gqlgen/graphql"
|
||||
|
||||
import (
|
||||
"os/exec"
|
||||
)
|
||||
|
||||
// type queryResolver struct{}
|
||||
|
||||
func ResolveUser(id string) (string, error) {
|
||||
// SINK: tainted id concatenated into shell command.
|
||||
out, err := exec.Command("/bin/sh", "-c", "echo lookup-"+id).Output()
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return string(out), nil
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue