AttackLedger coverage report
Client web app
Summary
Of 24 possible lanes (2 in-scope hosts × 12 lanes), 8 were opened and 4 are receipted: every checklist item has evidence or a written reason, the receipt matches the ledger, and a named person reviewed the lane and closed it. No receipts are void. Lanes that were not opened were not tested.
What this report proves. It is a record of what was tested, not a judgement of how well. It shows which checklist items were recorded as tested or not applicable, which evidence was attached to each, who closed each lane and when, and that none of this changed after it was recorded: the evidence is hash-chained, signed receipts carry a signature from the reviewer’s own key, timestamped receipts carry a token from an independent timestamp authority, and anyone can re-check all of it offline.
It does not prove that the tests themselves were thorough or correct, that untested lanes or hosts are free of issues, or that a signing key belongs to the person named; compare key fingerprints with the signers for that. It is not a list of findings.
Scope and authorization
The authorization entry is the tester’s own statement that they were permitted to test, with the policy or statement of work it refers to. Recon and agent runs only reach hosts that match these rules, at this rate.
Coverage matrix
Each in-scope host against each lane of the methodology pack.
| Lane | api.client.test | app.client.test |
|---|---|---|
| Information gathering | Receipted | Receipted |
| Configuration | Not opened | Receipted |
| Identity management | Not opened | Not opened |
| Authentication | Not opened | In progress |
| Authorization | Not opened | Receipted |
| Session management | Not opened | In progress |
| Input validation | In progress | In progress |
| Error handling | Not opened | Not opened |
| Cryptography | Not opened | Not opened |
| Business logic | Not opened | Not opened |
| Client side | Not opened | Not opened |
| API | Not opened | Not opened |
| Receipted | 1 of 12 | 3 of 12 |
Receipts
A receipt is the SHA-256 of the lane’s manifest: its items, their states and reasons, and the hashes of its evidence. A person issues it when they close the lane. A signature ties it to the reviewer’s key; a timestamp from an independent authority shows it existed at that time.
| Lane | Signed by | Time |
|---|---|---|
Information gatheringapi.client.testReceipted | Demo Reviewer [email protected] Signed with a key | Issued 2026-10-09 20:28:16 UTC Timestamped 2026-10-09 20:28:16 UTC by timestamp.digicert.com |
Manifest SHA-256 dc0b0155df6a04c04916c90b4c5f359046c9ea61d9f0af559d320229d3b5529bEd25519 key 820b761b23e246dfbf36848a1af96c4ca52774cf20686a20e2dd18ca98c23cad, registered 2026-10-09 20:28:14 UTC from their own session | ||
Information gatheringapp.client.testReceipted | Demo Reviewer [email protected] Signed with a key | Issued 2026-10-09 20:28:16 UTC Timestamped 2026-10-09 20:28:16 UTC by timestamp.digicert.com |
Manifest SHA-256 51c1ec010b939c85aceefab3e30778b10852fded92492b5b089038231fa8a841Ed25519 key 820b761b23e246dfbf36848a1af96c4ca52774cf20686a20e2dd18ca98c23cad, registered 2026-10-09 20:28:14 UTC from their own session | ||
Configurationapp.client.testReceipted | Demo Reviewer [email protected] Signed with a key | Issued 2026-10-09 20:28:16 UTC Timestamped 2026-10-09 20:28:16 UTC by timestamp.digicert.com |
Manifest SHA-256 6c6025a25ba6ec2d9e9fc4853141c4f4a1857df7bfb1d6d394a0408726a58cb1Ed25519 key 820b761b23e246dfbf36848a1af96c4ca52774cf20686a20e2dd18ca98c23cad, registered 2026-10-09 20:28:14 UTC from their own session | ||
Authorizationapp.client.testReceipted | Demo Reviewer [email protected] Signed with a key | Issued 2026-10-09 20:28:17 UTC Timestamped 2026-10-09 20:28:17 UTC by timestamp.digicert.com |
Manifest SHA-256 8ed282dde205101815ab8ba63a2e41d07fda63838736c1e37a869c9acc27840aEd25519 key 820b761b23e246dfbf36848a1af96c4ca52774cf20686a20e2dd18ca98c23cad, registered 2026-10-09 20:28:14 UTC from their own session | ||
4 opened lanes have no receipt yet.
Change history
Every change to this engagement’s scope and rules, settings, roles and authorization, and to the accounts of the people who work on it or signed its receipts, from the server’s audit log. Each entry is hash-chained to the one before it, like the evidence; the verifier checks the links and uses them to say, for each receipt, which scope was in force and whether its signer held the reviewer role when it was issued.
| Time | By | Change |
|---|---|---|
| 2026-10-09 20:02:01 UTC | the operator token | Created the engagement “Client web app” (pentest, pack web-pentest-wstg) |
| 2026-10-09 20:02:06 UTC | the operator token | Changed the scope: in scope api.client.test, app.client.test (was none); identification header X-Pentest: client-engagement (was not set) |
| 2026-10-09 20:02:06 UTC | the operator token | Recorded authorization to test, by demo operator, under https://example.com/statement-of-work |
| 2026-10-09 20:02:06 UTC | the operator token | Added Demo Tester ([email protected]); whoever added them set the first password |
| 2026-10-09 20:02:06 UTC | the operator token | Changed the roles: Demo Tester ([email protected]) added as tester |
| 2026-10-09 20:02:06 UTC | Demo Tester ([email protected]) | Demo Tester ([email protected]) chose their own password |
| 2026-10-09 20:02:06 UTC | Demo Tester ([email protected]) | Imported a file (har, WebInspector 537.36, SHA-256 a5012e62182b…): 12 entries to the inbox, 1 refused as out of scope (1 host), 1 duplicate, 0 unreadable |
| 2026-10-09 20:02:06 UTC | Demo Tester ([email protected]) | Imported a file (burp, Burp Suite 2025.9.4, SHA-256 d0c350ed6371…): 6 entries to the inbox, 1 refused as out of scope (1 host), 0 duplicates, 0 unreadable |
| 2026-10-09 20:02:06 UTC | Demo Tester ([email protected]) | Dismissed 1 inbox entry (5): The browser's request for the site icon; nothing to test. |
| 2026-10-09 20:28:14 UTC | the operator token | Added Demo Reviewer ([email protected]); whoever added them set the first password |
| 2026-10-09 20:28:14 UTC | the operator token | Changed the roles: Demo Reviewer ([email protected]) added as reviewer |
| 2026-10-09 20:28:14 UTC | Demo Reviewer ([email protected]) | Demo Reviewer ([email protected]) chose their own password |
| 2026-10-09 20:28:18 UTC | the operator token | Turned required signatures on |
| 2026-10-09 20:28:18 UTC | Demo Owner ([email protected]) | Set the retention date: the content is kept until 2027-10-31, then deleted |
10 engagement entries and 4 person entries. Entries made by “recorded when the audit log was added” are the state at that time; who set it before then is not known. Passwords are never recorded, only that one was set.
How to verify
Anyone can check this report without AttackLedger, the tester’s server or a network connection. The verifier is one
file, verify_report.py, and needs only Python 3 and its standard library.
The quickest way: drop this file, HTML or JSON, on attackledger.com/verify. The same checks run in your browser, and the file is not uploaded.
1. Get the files
Save this report as JSON (or keep this HTML file: it embeds the same report). Download the verifier and the timestamp root it trusts from attackledger.com, which publishes them independently of the server that made this report:
- https://attackledger.com/verify_report.py
- https://attackledger.com/digicert-trusted-root-g4.pem, saved in a folder named
tsa-rootsnext to the script
If you have an account on the AttackLedger server that made this report, its Report and Verify tabs offer the same
files as one download, attackledger-verifier.zip (on that server at
/api/verifier/attackledger-verifier.zip), and show each file’s SHA-256. Before you rely on a copy from the
tester’s server, compare its SHA-256 with the copy from attackledger.com:
sha256sum verify_report.py # or: shasum -a 256 verify_report.py
2. Run the verifier
python3 verify_report.py report.json --tsa-root <root.pem>
For example, with the DigiCert root, or with this HTML file:
python3 verify_report.py report.json --tsa-root tsa-roots/digicert-trusted-root-g4.pem python3 verify_report.py report.html
Roots in tsa-roots/ next to the script are trusted without --tsa-root; pass it for
any other authority. Running python3 -I keeps Python from loading modules from the current folder.
3. Read the result
Each check prints PASS or FAIL, or SKIP when there was nothing for it to check,
such as signatures in a report whose receipts carry only a name. A skipped check neither passes nor fails. The last line
says Verified. and the exit code is 0 only if no check failed. Add --require-signatures to fail
any receipt that is not signed. NOTE lines are information, such as who signed and which receipts are not
timestamped.
| Check | What it means |
|---|---|
| Report body hash | The report has not been edited since it was generated: its SHA-256 matches the recorded value. |
| Evidence chain | Every evidence entry links to the one before it, from the genesis value to the chain head. No entry was removed, reordered or changed. Each summary matches the hash the chain commits to; a summary deleted with the engagement's key is reported as unavailable and the chain is still checked. |
| Lane receipts | For every receipted lane, a manifest rebuilt from the report’s own items and evidence has the receipt’s hash, every item marked done has evidence, and every not-applicable item has a reason. |
| Receipt signatures | Each signed receipt verifies with the public key in the report, the key matches its fingerprint, and the signed text names this lane, this manifest and a chain head in the report. SKIP when no receipt is signed. |
| Signing key history | Each signing key’s entries in the key log hash correctly and link into the log in order, and the key was registered to the signer before the receipt was issued and not revoked before it. Shown only when the report has signed receipts. |
| Change history | The audit log entries in the report hash correctly and link into the log in order. For each receipt, the signer held the reviewer role on this engagement (or was an owner) and had the name in the receipt when it was issued; NOTE lines give the scope in force then. Shown only when the report carries the audit log. |
| Receipt timestamps | Each timestamp token covers this receipt’s manifest hash and signature, the authority’s signature verifies, and its certificate chain reaches a root you trust. SKIP when no receipt is timestamped. |
Where the timestamp root comes from
tsa-roots/digicert-trusted-root-g4.pem is DigiCert Trusted Root G4, the root of DigiCert’s public timestamp service
(timestamp.digicert.com), taken from the macOS root store and matched against DigiCert’s download. Before you
rely on it, compare its SHA-256 fingerprint with your operating system’s root store or DigiCert’s site:
552F7BDCF1A7AF9E6CE672017F4F12ABF77240C78E761AC203D1D9D20AC89988
Tie keys to people
A valid signature proves the holder of that key signed. The key log shows when each key was registered to its signer and how; the server never holds a private key, but whoever runs it could register a new key for someone, and that key would appear here with its own registration. For high assurance, ask each signer for their key fingerprint through a channel you trust and compare it with the one in Receipts. To make sure this is the report you were sent, compare the report body SHA-256 on the cover with the value the tester gave you.
Control evidence
Indicative mapping of tests to controls; not a compliance determination. Reviewed against public sources by Claude on 2026-10-09; not reviewed by a qualified assessor (QSA, ISO lead auditor or DORA TLPT authority).
Evidence strength:
- Full: The result alone answers the control's test; nothing else is needed.
- Partial: The result answers a defined part of the control's test; the rest needs other evidence.
- Supporting: The result is relevant and can corroborate other evidence; it does not answer the test.
| Control | Framework | Evidence strength | Receipted items | Status |
|---|---|---|---|---|
| DORA-ART24 Article 24, General requirements for digital operational resilience testing The testing programme, its independence, remediation and yearly coverage need other evidence. | EU DORA (Regulation 2022/2554) | Supporting | 29 of 194 with evidence 6 not applicable | Some mapped items receipted |
| DORA-ART25 Article 25, Testing of ICT tools and systems Vulnerability assessments and penetration testing are among the tests Article 25(1) lists. AttackLedger tests are not threat-led penetration testing (Article 26, RTS 2025/1190). | EU DORA (Regulation 2022/2554) | Partial | 29 of 194 with evidence 6 not applicable | Some mapped items receipted |
| DORA-ART8 Article 8, Identification The entity identifies and inventories its own assets; external discovery can only be compared with that. | EU DORA (Regulation 2022/2554) | Supporting | 16 of 20 with evidence 4 not applicable | Resolved, partly not applicable |
| DORA-ART9 Article 9, Protection and prevention Relevant to access limitation and strong authentication, Article 9(4)(c) and (d). | EU DORA (Regulation 2022/2554) | Supporting | 4 of 64 with evidence | Some mapped items receipted |
| ISO-A.5.15 Access control | ISO/IEC 27001:2022 Annex A | Supporting | 4 of 18 with evidence | Some mapped items receipted |
| ISO-A.5.17 Authentication information | ISO/IEC 27001:2022 Annex A | Supporting | 0 of 10 with evidence | No mapped item receipted |
| ISO-A.5.9 Inventory of information and other associated assets Hosts and applications found in testing can be compared with the inventory; they are not the inventory. | ISO/IEC 27001:2022 Annex A | Supporting | 16 of 20 with evidence 4 not applicable | Resolved, partly not applicable |
| ISO-A.8.2 Privileged access rights | ISO/IEC 27001:2022 Annex A | Supporting | 1 of 2 with evidence | Some mapped items receipted |
| ISO-A.8.24 Use of cryptography | ISO/IEC 27001:2022 Annex A | Supporting | 1 of 12 with evidence | Some mapped items receipted |
| ISO-A.8.28 Secure coding | ISO/IEC 27001:2022 Annex A | Supporting | 0 of 88 with evidence | No mapped item receipted |
| ISO-A.8.29 Security testing in development and acceptance Only when the test is part of the development or release acceptance process. | ISO/IEC 27001:2022 Annex A | Supporting | 29 of 194 with evidence 6 not applicable | Some mapped items receipted |
| ISO-A.8.3 Information access restriction | ISO/IEC 27001:2022 Annex A | Partial | 4 of 8 with evidence | Some mapped items receipted |
| ISO-A.8.5 Secure authentication | ISO/IEC 27001:2022 Annex A | Partial | 0 of 38 with evidence | No mapped item receipted |
| ISO-A.8.8 Management of technical vulnerabilities Testing identifies vulnerabilities; evaluating them and acting in time need other evidence. | ISO/IEC 27001:2022 Annex A | Partial | 29 of 194 with evidence 6 not applicable | Some mapped items receipted |
| ISO-A.8.9 Configuration management | ISO/IEC 27001:2022 Annex A | Supporting | 9 of 22 with evidence 2 not applicable | Some mapped items receipted |
| PCI-11.4.1 A penetration testing methodology is defined, documented and implemented The method followed is the evidence for application-layer testing; network-layer and segmentation testing are not covered. | PCI DSS v4.0.1 | Supporting | 29 of 194 with evidence 6 not applicable | Some mapped items receipted |
| PCI-11.4.3 External penetration testing is performed Application-layer part only, and only when testing is from outside the network. Frequency, tester qualification and independence, and network-layer testing need other evidence. A bug bounty can add to this test but does not replace it. | PCI DSS v4.0.1 | Partial | 29 of 194 with evidence 6 not applicable | Some mapped items receipted |
| PCI-4.2.1 Strong cryptography protects PAN in transit over open, public networks Only for hosts that receive or send PAN. A TLS test shows the protocol and certificate state at test time. | PCI DSS v4.0.1 | Supporting | 1 of 6 with evidence | Some mapped items receipted |
| PCI-6.2.4 Software engineering techniques prevent or mitigate common software attacks Assessed mainly from procedures and developers; a test shows whether those attack types were found. | PCI DSS v4.0.1 | Supporting | 4 of 138 with evidence | Some mapped items receipted |
Item detail
api.client.test · Information gathering Receipted
| Item | Result | Evidence |
|---|---|---|
| WSTG-INFO-01 Search engine discovery and reconnaissance for information leakage | Evidence recorded | #9 Note: lane 6 item 1 checked 59b7af71ae7a |
| WSTG-INFO-02 Fingerprint the web server | Evidence recorded | #10 Note: lane 6 item 2 checked 9c26848dc0ee |
| WSTG-INFO-03 Review webserver metafiles for information leakage | Evidence recorded | #11 Note: lane 6 item 3 checked 2f0e874c2c66 |
| WSTG-INFO-04 Enumerate applications on the webserver | Evidence recorded | #12 Note: lane 6 item 4 checked 2e384a0b0eac |
| WSTG-INFO-05 Review webpage content for information leakage | Not applicable: not present on this host | none |
| WSTG-INFO-06 Identify application entry points | Evidence recorded | #13 Note: lane 6 item 6 checked ad5f9a46d6a5 |
| WSTG-INFO-07 Map execution paths through the application | Evidence recorded | #14 Note: lane 6 item 7 checked 06f031d963fe |
| WSTG-INFO-08 Fingerprint the web application framework | Evidence recorded | #15 Note: lane 6 item 8 checked 70f851c804a2 |
| WSTG-INFO-09 Fingerprint the web application | Evidence recorded | #16 Note: lane 6 item 9 checked 8f9a5b303d75 |
| WSTG-INFO-10 Map the application architecture | Not applicable: not present on this host | none |
api.client.test · Input validation In progress
| Item | Result | Evidence |
|---|---|---|
| WSTG-INPV-01 Test for reflected cross-site scripting | Open | none |
| WSTG-INPV-02 Test for stored cross-site scripting | Open | none |
| WSTG-INPV-03 Test for HTTP verb tampering | Open | none |
| WSTG-INPV-04 Test for HTTP parameter pollution | Open | none |
| WSTG-INPV-05 Test for SQL injection | Open | #41 Response: Imported from HAR 1.2, row 4: GET https://api.client.test/api/v1/items?page=1 -> 200 [1 value redacted: Authorization] 503d50fde73ahttps://api.client.test/api/v1/items?page=1 |
| WSTG-INPV-06 Test for LDAP injection | Open | none |
| WSTG-INPV-07 Test for XML injection | Open | none |
| WSTG-INPV-08 Test for SSI injection | Open | none |
| WSTG-INPV-09 Test for XPath injection | Open | none |
| WSTG-INPV-10 Test for IMAP/SMTP injection | Open | none |
| WSTG-INPV-11 Test for code injection | Open | none |
| WSTG-INPV-12 Test for command injection | Open | none |
| WSTG-INPV-13 Test for format string injection | Open | none |
| WSTG-INPV-14 Test for incubated vulnerabilities | Open | none |
| WSTG-INPV-15 Test for HTTP splitting and smuggling | Open | none |
| WSTG-INPV-16 Test for HTTP incoming requests | Open | none |
| WSTG-INPV-17 Test for host header injection | Open | none |
| WSTG-INPV-18 Test for server-side template injection | Open | none |
| WSTG-INPV-19 Test for server-side request forgery | Open | none |
app.client.test · Information gathering Receipted
| Item | Result | Evidence |
|---|---|---|
| WSTG-INFO-01 Search engine discovery and reconnaissance for information leakage | Evidence recorded | #1 Note: lane 5 item 1 checked 21ee57a2d39c |
| WSTG-INFO-02 Fingerprint the web server | Evidence recorded | #2 Note: lane 5 item 2 checked 656b53fe693d |
| WSTG-INFO-03 Review webserver metafiles for information leakage | Evidence recorded | #3 Note: lane 5 item 3 checked 5f537acc6d23 |
| WSTG-INFO-04 Enumerate applications on the webserver | Evidence recorded | #4 Note: lane 5 item 4 checked e28a7f45efb5 |
| WSTG-INFO-05 Review webpage content for information leakage | Not applicable: not present on this host | none |
| WSTG-INFO-06 Identify application entry points | Evidence recorded | #5 Note: lane 5 item 6 checked a8372bfca0b7 |
| WSTG-INFO-07 Map execution paths through the application | Evidence recorded | #6 Note: lane 5 item 7 checked 39ed9e992992 |
| WSTG-INFO-08 Fingerprint the web application framework | Evidence recorded | #7 Note: lane 5 item 8 checked 5fef2da8e444 |
| WSTG-INFO-09 Fingerprint the web application | Evidence recorded | #8 Note: lane 5 item 9 checked 906fec458c8e |
| WSTG-INFO-10 Map the application architecture | Not applicable: not present on this host | none |
app.client.test · Configuration Receipted
| Item | Result | Evidence |
|---|---|---|
| WSTG-CONF-01 Test network infrastructure configuration | Evidence recorded | #17 Note: lane 7 item 1 checked c4f4624fbd55 |
| WSTG-CONF-02 Test application platform configuration | Evidence recorded | #18 Note: lane 7 item 2 checked ddc59ebc9fbb |
| WSTG-CONF-03 Test file extension handling for sensitive information | Evidence recorded | #19 Note: lane 7 item 3 checked dcd50c54a3b6 |
| WSTG-CONF-04 Review old backup and unreferenced files | Evidence recorded | #20 Note: lane 7 item 4 checked f0714d00399c |
| WSTG-CONF-05 Enumerate infrastructure and application admin interfaces | Not applicable: not present on this host | none |
| WSTG-CONF-06 Test HTTP methods | Evidence recorded | #21 Note: lane 7 item 6 checked a20e6deae2ce |
| WSTG-CONF-07 Test HTTP Strict Transport Security | Evidence recorded | #22 Note: lane 7 item 7 checked 741b9f30ce73 |
| WSTG-CONF-08 Test RIA cross-domain policy | Evidence recorded | #23 Note: lane 7 item 8 checked 4a560040dc2f |
| WSTG-CONF-09 Test file permissions | Evidence recorded | #24 Note: lane 7 item 9 checked fdbb9ccc1d79 |
| WSTG-CONF-10 Test for subdomain takeover | Not applicable: not present on this host | none |
| WSTG-CONF-11 Test cloud storage | Evidence recorded | #25 Note: lane 7 item 11 checked c433371a14b5 |
app.client.test · Authorization Receipted
| Item | Result | Evidence |
|---|---|---|
| WSTG-ATHZ-01 Test for directory traversal and file inclusion | Evidence recorded | #26 Note: lane 8 item 1 checked 7eafbd2fb67f |
| WSTG-ATHZ-02 Test for bypass of the authorization schema | Evidence recorded | #27 Note: lane 8 item 2 checked 0853f816af5e |
| WSTG-ATHZ-03 Test for privilege escalation | Evidence recorded | #28 Note: lane 8 item 3 checked d99f6940c239 |
| WSTG-ATHZ-04 Test for insecure direct object references | Evidence recorded | #29 Note: lane 8 item 4 checked 35faa3133235 |
app.client.test · Authentication In progress
| Item | Result | Evidence |
|---|---|---|
| WSTG-ATHN-01 Test that credentials travel over an encrypted channel | Evidence recorded | #30 Note: lane 9 item 1 checked 5475b2ca0eac |
| WSTG-ATHN-02 Test for default credentials | Evidence recorded | #31 Note: lane 9 item 2 checked 4b042c7c6a62#38 Response: Imported from Burp Suite XML, row 3: GET https://app.client.test/admin/ -> 401 (Default credentials on the admin area). admin:admin is refused with 401. [3 values redacted: Cookie, Authorization] c075d20d15e0https://app.client.test/admin/ |
| WSTG-ATHN-03 Test for weak lockout mechanisms | Evidence recorded | #32 Note: lane 9 item 3 checked 3a15f3647e1e |
| WSTG-ATHN-04 Test for bypass of the authentication schema | Evidence recorded | #33 Note: lane 9 item 4 checked 5e02a08e362f#37 Response: Imported from HAR 1.2, row 12: GET https://app.client.test/admin/ -> 401. The admin area answers 401 without a session. [2 values redacted: Cookie] 31ca1c61c3c9https://app.client.test/admin/ |
| WSTG-ATHN-05 Test for vulnerable remember-password functions | Not applicable: not present on this host | none |
| WSTG-ATHN-06 Test for browser cache weaknesses | Evidence recorded | #34 Note: lane 9 item 6 checked f99f1db8c936 |
| WSTG-ATHN-07 Test for weak password policy | Evidence recorded | #35 Note: lane 9 item 7 checked 4462deeead30 |
| WSTG-ATHN-08 Test for weak security question and answer | Open | none |
| WSTG-ATHN-09 Test for weak password change or reset functions | Open | none |
| WSTG-ATHN-10 Test for weaker authentication in alternative channels | Open | none |
app.client.test · Session management In progress
| Item | Result | Evidence |
|---|---|---|
| WSTG-SESS-01 Test the session management schema | Open | none |
| WSTG-SESS-02 Test cookie attributes | Open | none |
| WSTG-SESS-03 Test for session fixation | Open | none |
| WSTG-SESS-04 Test for exposed session variables | Open | none |
| WSTG-SESS-05 Test for cross-site request forgery | Open | none |
| WSTG-SESS-06 Test logout functionality | Open | #36 Response: Imported from HAR 1.2, row 14: GET https://app.client.test/account/logout -> 200. Sign-out answers 200; the session is checked after it. [2 values redacted: Cookie] c0157d20c68chttps://app.client.test/account/logout |
| WSTG-SESS-07 Test session timeout | Open | none |
| WSTG-SESS-08 Test for session puzzling | Open | none |
| WSTG-SESS-09 Test for session hijacking | Open | none |
app.client.test · Input validation In progress
| Item | Result | Evidence |
|---|---|---|
| WSTG-INPV-01 Test for reflected cross-site scripting | Open | #39 Response: Imported from HAR 1.2, row 11: GET https://app.client.test/search.php?q=shoes -> 200 [2 values redacted: Cookie] 7a739c5ab1b4https://app.client.test/search.php?q=shoes #40 Response: Imported from Burp Suite XML, row 2: GET https://app.client.test/search.php?q=%3Cb%3Eshoes%3C%2Fb%3E -> 200 (Is q encoded in the page?). q comes back still URL-encoded, so the markup is not rendered. [2 values redacted: Cookie] 683f5886018chttps://app.client.test/search.php?q=%3Cb%3Eshoes%3C%2Fb%3E |
| WSTG-INPV-02 Test for stored cross-site scripting | Open | none |
| WSTG-INPV-03 Test for HTTP verb tampering | Open | none |
| WSTG-INPV-04 Test for HTTP parameter pollution | Open | none |
| WSTG-INPV-05 Test for SQL injection | Open | none |
| WSTG-INPV-06 Test for LDAP injection | Open | none |
| WSTG-INPV-07 Test for XML injection | Open | none |
| WSTG-INPV-08 Test for SSI injection | Open | none |
| WSTG-INPV-09 Test for XPath injection | Open | none |
| WSTG-INPV-10 Test for IMAP/SMTP injection | Open | none |
| WSTG-INPV-11 Test for code injection | Open | none |
| WSTG-INPV-12 Test for command injection | Open | none |
| WSTG-INPV-13 Test for format string injection | Open | none |
| WSTG-INPV-14 Test for incubated vulnerabilities | Open | none |
| WSTG-INPV-15 Test for HTTP splitting and smuggling | Open | none |
| WSTG-INPV-16 Test for HTTP incoming requests | Open | none |
| WSTG-INPV-17 Test for host header injection | Open | none |
| WSTG-INPV-18 Test for server-side template injection | Open | none |
| WSTG-INPV-19 Test for server-side request forgery | Open | none |
Integrity
Every evidence entry commits to the hash of the entry before it, starting from the genesis value, so removing, reordering or editing any entry changes the chain head. The body hash covers everything in the report except this section. The full report is embedded in this page as JSON; see How to verify.