AttackLedger coverage report

Client web app

Engagement type
Penetration test
Methodology pack
Web application pentest (OWASP WSTG), version 0.2
Generated
2026-10-09 20:28:38 UTC
Report format
attackledger-report/2
Report body SHA-256
e585435353a73933c3a070a3e6293a0fcd0f8129d22f05a97428f5ee1213fcda

Summary

2In-scope hosts
4 of 8Lanes receipted, of those opened; 24 possible
35Items with evidence
7Items not applicable, with a reason
50Items still open
4 of 4Receipts signed with a key; 4 timestamped

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

Authorization recorded by
demo operator
Recorded at
2026-10-09 20:02:06 UTC
Policy or statement of work
https://example.com/statement-of-work
In scope (rules)
  • api.client.test
  • app.client.test
Out of scope (rules)
None
Rate limit
5 requests per second
Identification header
X-Pentest: client-engagement
User agent
Not set
Separation of duties
Off
Signatures required
Yes: a receipt needs a signature from the reviewer’s key
Evidence redaction
On: credentials, and email addresses and card numbers in captured responses and files, are replaced by a hash marker before raw evidence is stored; each entry says what was redacted
Retention
Content kept until 2027-10-31, then deleted

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.

Receipted every item resolved, reviewed and closed Void receipted, then the ledger changed In progress opened, not closed Not opened not tested
Laneapi.client.testapp.client.test
Information gatheringReceiptedReceipted
ConfigurationNot openedReceipted
Identity managementNot openedNot opened
AuthenticationNot openedIn progress
AuthorizationNot openedReceipted
Session managementNot openedIn progress
Input validationIn progressIn progress
Error handlingNot openedNot opened
CryptographyNot openedNot opened
Business logicNot openedNot opened
Client sideNot openedNot opened
APINot openedNot opened
Receipted1 of 123 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.

LaneSigned byTime
Information gathering
api.client.test
Receipted
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 dc0b0155df6a04c04916c90b4c5f359046c9ea61d9f0af559d320229d3b5529b
Ed25519 key 820b761b23e246dfbf36848a1af96c4ca52774cf20686a20e2dd18ca98c23cad, registered 2026-10-09 20:28:14 UTC from their own session
Information gathering
app.client.test
Receipted
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 51c1ec010b939c85aceefab3e30778b10852fded92492b5b089038231fa8a841
Ed25519 key 820b761b23e246dfbf36848a1af96c4ca52774cf20686a20e2dd18ca98c23cad, registered 2026-10-09 20:28:14 UTC from their own session
Configuration
app.client.test
Receipted
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 6c6025a25ba6ec2d9e9fc4853141c4f4a1857df7bfb1d6d394a0408726a58cb1
Ed25519 key 820b761b23e246dfbf36848a1af96c4ca52774cf20686a20e2dd18ca98c23cad, registered 2026-10-09 20:28:14 UTC from their own session
Authorization
app.client.test
Receipted
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 8ed282dde205101815ab8ba63a2e41d07fda63838736c1e37a869c9acc27840a
Ed25519 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.

TimeByChange
2026-10-09 20:02:01 UTCthe operator tokenCreated the engagement “Client web app” (pentest, pack web-pentest-wstg)
2026-10-09 20:02:06 UTCthe operator tokenChanged 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 UTCthe operator tokenRecorded authorization to test, by demo operator, under https://example.com/statement-of-work
2026-10-09 20:02:06 UTCthe operator tokenAdded Demo Tester ([email protected]); whoever added them set the first password
2026-10-09 20:02:06 UTCthe operator tokenChanged the roles: Demo Tester ([email protected]) added as tester
2026-10-09 20:02:06 UTCDemo Tester ([email protected])Demo Tester ([email protected]) chose their own password
2026-10-09 20:02:06 UTCDemo 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 UTCDemo 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 UTCDemo 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 UTCthe operator tokenAdded Demo Reviewer ([email protected]); whoever added them set the first password
2026-10-09 20:28:14 UTCthe operator tokenChanged the roles: Demo Reviewer ([email protected]) added as reviewer
2026-10-09 20:28:14 UTCDemo Reviewer ([email protected])Demo Reviewer ([email protected]) chose their own password
2026-10-09 20:28:18 UTCthe operator tokenTurned required signatures on
2026-10-09 20:28:18 UTCDemo 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:

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.

CheckWhat it means
Report body hashThe report has not been edited since it was generated: its SHA-256 matches the recorded value.
Evidence chainEvery 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 receiptsFor 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 signaturesEach 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 historyEach 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 historyThe 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 timestampsEach 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:

ControlFrameworkEvidence strengthReceipted itemsStatus
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)Supporting29 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)Partial29 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)Supporting16 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)Supporting4 of 64 with evidenceSome mapped items receipted
ISO-A.5.15
Access control
ISO/IEC 27001:2022 Annex ASupporting4 of 18 with evidenceSome mapped items receipted
ISO-A.5.17
Authentication information
ISO/IEC 27001:2022 Annex ASupporting0 of 10 with evidenceNo 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 ASupporting16 of 20 with evidence
4 not applicable
Resolved, partly not applicable
ISO-A.8.2
Privileged access rights
ISO/IEC 27001:2022 Annex ASupporting1 of 2 with evidenceSome mapped items receipted
ISO-A.8.24
Use of cryptography
ISO/IEC 27001:2022 Annex ASupporting1 of 12 with evidenceSome mapped items receipted
ISO-A.8.28
Secure coding
ISO/IEC 27001:2022 Annex ASupporting0 of 88 with evidenceNo 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 ASupporting29 of 194 with evidence
6 not applicable
Some mapped items receipted
ISO-A.8.3
Information access restriction
ISO/IEC 27001:2022 Annex APartial4 of 8 with evidenceSome mapped items receipted
ISO-A.8.5
Secure authentication
ISO/IEC 27001:2022 Annex APartial0 of 38 with evidenceNo 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 APartial29 of 194 with evidence
6 not applicable
Some mapped items receipted
ISO-A.8.9
Configuration management
ISO/IEC 27001:2022 Annex ASupporting9 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.1Supporting29 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.1Partial29 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.1Supporting1 of 6 with evidenceSome 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.1Supporting4 of 138 with evidenceSome mapped items receipted

Item detail

api.client.test · Information gathering Receipted

ItemResultEvidence
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 hostnone
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 hostnone

api.client.test · Input validation In progress

ItemResultEvidence
WSTG-INPV-01
Test for reflected cross-site scripting
Opennone
WSTG-INPV-02
Test for stored cross-site scripting
Opennone
WSTG-INPV-03
Test for HTTP verb tampering
Opennone
WSTG-INPV-04
Test for HTTP parameter pollution
Opennone
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] 503d50fde73a
https://api.client.test/api/v1/items?page=1
WSTG-INPV-06
Test for LDAP injection
Opennone
WSTG-INPV-07
Test for XML injection
Opennone
WSTG-INPV-08
Test for SSI injection
Opennone
WSTG-INPV-09
Test for XPath injection
Opennone
WSTG-INPV-10
Test for IMAP/SMTP injection
Opennone
WSTG-INPV-11
Test for code injection
Opennone
WSTG-INPV-12
Test for command injection
Opennone
WSTG-INPV-13
Test for format string injection
Opennone
WSTG-INPV-14
Test for incubated vulnerabilities
Opennone
WSTG-INPV-15
Test for HTTP splitting and smuggling
Opennone
WSTG-INPV-16
Test for HTTP incoming requests
Opennone
WSTG-INPV-17
Test for host header injection
Opennone
WSTG-INPV-18
Test for server-side template injection
Opennone
WSTG-INPV-19
Test for server-side request forgery
Opennone

app.client.test · Information gathering Receipted

ItemResultEvidence
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 hostnone
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 hostnone

app.client.test · Configuration Receipted

ItemResultEvidence
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 hostnone
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 hostnone
WSTG-CONF-11
Test cloud storage
Evidence recorded#25 Note: lane 7 item 11 checked c433371a14b5

app.client.test · Authorization Receipted

ItemResultEvidence
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

ItemResultEvidence
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] c075d20d15e0
https://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] 31ca1c61c3c9
https://app.client.test/admin/
WSTG-ATHN-05
Test for vulnerable remember-password functions
Not applicable: not present on this hostnone
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
Opennone
WSTG-ATHN-09
Test for weak password change or reset functions
Opennone
WSTG-ATHN-10
Test for weaker authentication in alternative channels
Opennone

app.client.test · Session management In progress

ItemResultEvidence
WSTG-SESS-01
Test the session management schema
Opennone
WSTG-SESS-02
Test cookie attributes
Opennone
WSTG-SESS-03
Test for session fixation
Opennone
WSTG-SESS-04
Test for exposed session variables
Opennone
WSTG-SESS-05
Test for cross-site request forgery
Opennone
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] c0157d20c68c
https://app.client.test/account/logout
WSTG-SESS-07
Test session timeout
Opennone
WSTG-SESS-08
Test for session puzzling
Opennone
WSTG-SESS-09
Test for session hijacking
Opennone

app.client.test · Input validation In progress

ItemResultEvidence
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] 7a739c5ab1b4
https://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] 683f5886018c
https://app.client.test/search.php?q=%3Cb%3Eshoes%3C%2Fb%3E
WSTG-INPV-02
Test for stored cross-site scripting
Opennone
WSTG-INPV-03
Test for HTTP verb tampering
Opennone
WSTG-INPV-04
Test for HTTP parameter pollution
Opennone
WSTG-INPV-05
Test for SQL injection
Opennone
WSTG-INPV-06
Test for LDAP injection
Opennone
WSTG-INPV-07
Test for XML injection
Opennone
WSTG-INPV-08
Test for SSI injection
Opennone
WSTG-INPV-09
Test for XPath injection
Opennone
WSTG-INPV-10
Test for IMAP/SMTP injection
Opennone
WSTG-INPV-11
Test for code injection
Opennone
WSTG-INPV-12
Test for command injection
Opennone
WSTG-INPV-13
Test for format string injection
Opennone
WSTG-INPV-14
Test for incubated vulnerabilities
Opennone
WSTG-INPV-15
Test for HTTP splitting and smuggling
Opennone
WSTG-INPV-16
Test for HTTP incoming requests
Opennone
WSTG-INPV-17
Test for host header injection
Opennone
WSTG-INPV-18
Test for server-side template injection
Opennone
WSTG-INPV-19
Test for server-side request forgery
Opennone

Integrity

Evidence entries
41
Chain genesis
0000000000000000000000000000000000000000000000000000000000000000
Chain head
c2ec04daab6f45dc7cee5c1472b7946e477a7b155d8ecda4c11769643699b28d
Report body SHA-256
e585435353a73933c3a070a3e6293a0fcd0f8129d22f05a97428f5ee1213fcda

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.