id: missing-sri info: name: Missing Subresource Integrity author: lucky0x0d,PulseSecurity.co.nz severity: info description: | Checks if script tags within the HTML response have Subresource Integrity implemented via the integrity attribute reference: - https://cheatsheetseries.owasp.org/cheatsheets/Third_Party_Javascript_Management_Cheat_Sheet.html#subresource-integrity metadata: max-request: 1 tags: compliance,js,sri,misconfig http: - raw: - | GET / HTTP/1.1 Host: {{Hostname}} redirects: true max-redirects: 5 matchers-condition: and matchers: - type: xpath part: body xpath: - "//script[contains(@src,'//') and not(contains(translate(@integrity,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'^sha'))]" - type: word words: - "text/html" part: header extractors: - type: xpath attribute: src xpath: - "//script[contains(@src,'//') and not(contains(translate(@integrity,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz'),'^sha'))]" # digest: 4a0a0047304502200e29fdf3695b4eadfb362a6ec5332dff4696a4564e73a096a609363b81776126022100a0e6443350ecc806ce4da1a80d628339d3515f387129fc50651ee687b8265bb8:922c64590222798bb761d5b6d8e72950