mirror of
https://github.com/lunchcat/sif.git
synced 2026-07-28 14:37:01 -07:00
* feat(modules): add active web-vuln probe modules Add five active-probe modules to modules/http: ssti-reflected (arithmetic eval proof), command-injection (id output, not payload echo), and error-based xpath, nosql, and ldap injection. Each keys on a transformed response the payload cannot produce by reflection, so a benign echo cannot trigger it. * chore(modules): trim redundant module header comments drop top-line comments that just restate the id/name fields already present in the same file
50 lines
1.2 KiB
YAML
50 lines
1.2 KiB
YAML
id: ssti-reflected
|
|
info:
|
|
name: Server-Side Template Injection
|
|
author: sif
|
|
severity: high
|
|
description: Detects server-side template injection by confirming the engine evaluated an injected arithmetic expression
|
|
tags: [ssti, injection, template, rce, owasp-top10]
|
|
|
|
type: http
|
|
|
|
http:
|
|
method: GET
|
|
paths:
|
|
- "{{BaseURL}}/?q={{payload}}"
|
|
- "{{BaseURL}}/?search={{payload}}"
|
|
- "{{BaseURL}}/?name={{payload}}"
|
|
- "{{BaseURL}}/?input={{payload}}"
|
|
- "{{BaseURL}}/?id={{payload}}"
|
|
- "{{BaseURL}}/?page={{payload}}"
|
|
- "{{BaseURL}}/?message={{payload}}"
|
|
|
|
# each payload evaluates to a distinctive product whose digits appear
|
|
# nowhere in the payload text, so a match proves the template engine
|
|
# computed the expression rather than reflecting the input verbatim.
|
|
payloads:
|
|
- "{{1337*1337}}"
|
|
- "${1337*1337}"
|
|
- "#{1337*1337}"
|
|
- "{1337*1337}"
|
|
- "<%= 1337*1337 %>"
|
|
- "${{1337*1337}}"
|
|
- "%7B%7B1337*1337%7D%7D"
|
|
- "%24%7B1337*1337%7D"
|
|
|
|
threads: 10
|
|
|
|
matchers:
|
|
- type: word
|
|
part: body
|
|
words:
|
|
- "1787569"
|
|
|
|
extractors:
|
|
- type: regex
|
|
name: evaluated
|
|
part: body
|
|
regex:
|
|
- "(1787569)"
|
|
group: 1
|