Target: https://shop.example.com
Hostname: shop.example.com
Suite: pen_test_core · Tier: penetration-test
Generated: 2026-08-17T00:00:00.000Z
Automated testing with evidence · AI status: sampleHands-off Vulnify worker. No human tester. Exact-hostname scope lock.
Auth: none · Included retests: 1.
This automated evidence pack can support your auditor's review. It is not a PCI DSS, SOC 2, or ISO 27001 certification, and it is not a certified or human-signed penetration test.
Automated penetration test identified 5 finding(s) on shop.example.com
Vulnify ran the pen_test_core suite against https://shop.example.com. Findings by severity: Critical 0, High 3, Medium 2, Low 0, Info 0. Check matrix: 2 passed, 4 failed, 5 not applicable.
This is an automated, evidence-backed Vulnify assessment. It is not a PCI DSS, SOC 2, ISO 27001, or certified penetration test, and it is not a human consultant letter or attestation.
The five highest-severity fixes, in plain English, with the URL to change first.
/search?q=/account/email/file?path=//Exact hostname only. Sibling hosts and extra subdomains stay out of scope until they are verified.
| Hostname | Status | Role | Notes |
|---|---|---|---|
shop.example.com |
tested | primary | primary |
no prior pentest
A second auth profile was not supplied, so role B columns are Not tested.
No object-level authorization probes were recorded for this engagement.
Target hostname shop.example.com was tested under exact-hostname scope lock. Suite pen_test_core executed 11 catalog checks. Engines and Vulnify modules invoked: must_checks. This run was unauthenticated. Authenticated authz and business-logic checks are not applicable until a healthy auth profile is supplied. Checks marked not_applicable were skipped because preconditions were missing (for example auth, object IDs, or optional binaries). Findings are never invented to fill those gaps. One targeted retest is included with this Penetration Test.
This automated evidence pack can support your auditor's review. It is not a PCI DSS, SOC 2, or ISO 27001 certification, and it is not a certified or human-signed penetration test.
| Check | OWASP | PTES | NIST |
|---|---|---|---|
baseline.tls_transport |
WSTG-CRYP-01 | PTES Vulnerability Analysis | NIST SP 800-115 3.2 Review Techniques |
baseline.security_headers |
WSTG-CONF-12 | PTES Vulnerability Analysis | NIST SP 800-115 3.2 Review Techniques |
web.xss.reflected |
WSTG-INPV-01 | PTES Exploitation | NIST SP 800-115 3.4 Target Vulnerability Validation |
web.xss.stored |
WSTG-INPV-02 | PTES Exploitation | NIST SP 800-115 3.4 Target Vulnerability Validation |
web.xss.dom |
WSTG-CLNT-01 | PTES Exploitation | NIST SP 800-115 3.4 Target Vulnerability Validation |
web.csrf.state_changing |
WSTG-SESS-05 | PTES Vulnerability Analysis | NIST SP 800-115 3.4 Target Vulnerability Validation |
web.lfi_path_traversal |
WSTG-ATHZ-01 | PTES Exploitation | NIST SP 800-115 3.4 Target Vulnerability Validation |
web.sqli.reflect_or_blind |
WSTG-INPV-05 | PTES Exploitation | NIST SP 800-115 3.4 Target Vulnerability Validation |
discover.crawl_auth |
WSTG-INFO-06 | PTES Intelligence Gathering | NIST SP 800-115 3.3 Target Identification and Analysis |
api.bola_object_id |
WSTG-ATHZ-04 | PTES Exploitation | NIST SP 800-115 3.4 Target Vulnerability Validation |
logic.priv_escalation |
WSTG-ATHZ-03 | PTES Exploitation | NIST SP 800-115 3.4 Target Vulnerability Validation |
Send GET to /search?q=, observe HTTP 200, using parameter q.
Reflected XSS steals sessions, injects UI, and is a common phishing primitive on the same origin.
After the change is live, use the included targeted retest from the workspace. Do not mark the finding closed until the retest records a before/after result.
Observed GET · /search?q= · HTTP 200
Path hits /search?q=
Browser proof no browser proof
Send POST to /account/email, observe HTTP 200.
Without anti-CSRF controls, a foreign site can change email, password, or money-moving actions as the victim.
After the change is live, use the included targeted retest from the workspace. Do not mark the finding closed until the retest records a before/after result.
Observed POST · /account/email · HTTP 200
Path hits /account/email /password/reset /account/email
Browser proof no browser proof
Send GET to /file?path=, observe HTTP 200, using parameter path.
Path traversal reads secrets, source, and sometimes credentials off disk.
After the change is live, use the included targeted retest from the workspace. Do not mark the finding closed until the retest records a before/after result.
Observed GET · /file?path= · HTTP 200
Path hits /file?path=
Browser proof no browser proof
Open / and confirm the recorded evidence still appears.
Missing security headers make XSS, clickjacking, and MIME confusion easier. Auditors look for these on every HTTPS response.
After the change is live, use the included targeted retest from the workspace. Do not mark the finding closed until the retest records a before/after result.
Missing headers content-security-policy strict-transport-security x-content-type-options
Path hits /
Browser proof no browser proof
Open / and confirm the recorded evidence still appears.
Missing cookie flags or session fixation lets an attacker keep a stolen or planted session.
After the change is live, use the included targeted retest from the workspace. Do not mark the finding closed until the retest records a before/after result.
Path hits /
Browser proof no browser proof
Prioritize CISA KEV and high-EPSS findings first, then Critical/High severity. Retest after each remediation batch.
Identified 2 combined path(s) from related findings. Validate and remediate path members together.
sample-cookies sample-headers sample-xsssample-xss sample-lfi sample-csrf| Check | Status | Summary |
|---|---|---|
baseline.tls_transport |
passed | TLS 1.2+ served on the sample host |
baseline.security_headers |
failed | CSP, HSTS, and X-Content-Type-Options missing |
web.xss.reflected |
failed | Reflected XSS confirmed on /search |
web.xss.stored |
not_applicable | No persistent sink in sample scope |
web.xss.dom |
not_applicable | No DOM sink in sample scope |
web.csrf.state_changing |
failed | State-changing forms lacked CSRF tokens |
web.lfi_path_traversal |
failed | Path parameter read a local file |
web.sqli.reflect_or_blind |
passed | SQL injection was not confirmed |
discover.crawl_auth |
not_applicable | Sample report is unauthenticated |
api.bola_object_id |
not_applicable | No authenticated object IDs in sample |
logic.priv_escalation |
not_applicable | No login role in sample |
Not applicable (5): web.xss.stored web.xss.dom discover.crawl_auth api.bola_object_id logic.priv_escalation