Current v4.0.4 Scenarios
Example operations that match the actual WSHawk v4 workflow model.
Four-Identity Authorization Matrix
AuthorizationCompare anonymous, User A, User B, and Admin behavior against the same resource operation.
1GET /auth/resource/resource-b2policy: horizontal_idor3identities: anonymous, user-a, user-b, admin4 5# Expected secure matrix6# anonymous: 4017# user-a: 4038# user-b: 2009# admin: 200Automatic Object Candidate Discovery
ObjectsDiscover bounded identifiers in paths, queries, JSON bodies, GraphQL variables, and captured traffic.
1POST /users/123/orders/456?account_id=1232{3 "document_id": "8aa3f0d1-..."4}5 6# Candidates7# path: 123, 4568# query: account_id=1239# json: document_id=<uuid>GraphQL Partial-Data Authorization
GraphQLDetect sensitive data returned with GraphQL errors even when the transport status remains HTTP 200.
1query Document($documentId: ID!) {2 document(id: $documentId) { id owner secret }3}4 5# Semantic result6# status: 2007# graphql_errors: true8# partial_sensitive_data: true9# authorization_difference: highSaved-Finding Retest
RetestRe-run stable finding evidence after a fix and classify the outcome without losing the original record.
1finding: authz_7a3f...2action: retest3 4# Outcomes5# still_vulnerable | fixed6# authentication_expired7# endpoint_changed | inconclusiveCross-Identity WebSocket AuthZ Diff
AuthZCompare the same WebSocket action across two stored identities and review the grouped behavioral differences.
1POST /platform/projects/{project}/attacks/authz-diff2{3 "baseline_identity_id": "tenant-admin",4 "candidate_identity_id": "tenant-user",5 "message_family": "invoice.subscribe"6}7 8# Output9# difference_count: 110# finding: candidate received cross-tenant invoice metadataHTTP Replay with Stored Identity
ReplayReplay a captured HTTP request inside the same project record used for WebSocket work.
1POST /platform/projects/{project}/attacks/http/replay2{3 "identity_id": "support-user",4 "request_id": "req_42"5}6 7# Output8# replay_status: complete9# evidence_record: http_replay_completedDuplicate Action Race Window
RaceFire parallel requests against a state-changing workflow to spot replay-before-invalidation windows.
1POST /platform/projects/{project}/attacks/race2{3 "waves": 3,4 "parallelism": 8,5 "action": "approve_refund"6}7 8# Output9# suspicious_race_window: true10# accepted_duplicates: 2Validation Lab Regression Run
ValidationUse the shipped local labs to check that replay, diff, race, and evidence paths still behave as expected.
1./venv/bin/python validation/run_validation.py2 3# Output4# full_stack_realtime_saas: passed5# socketio_saas: passed6# graphql_subscriptions_lab: passed