Files
sif/modules/recon/laravel-ignition-exposure.yaml
T

46 lines
1.2 KiB
YAML

# Laravel Ignition Debug Exposure Detection Module
id: laravel-ignition-exposure
info:
name: Laravel Ignition Debug Exposure
author: sif
severity: high
description: Detects an exposed Laravel Ignition debug endpoint that may allow remote code execution
tags: [laravel, ignition, debug, rce, exposure, recon]
type: http
http:
method: GET
paths:
- "{{BaseURL}}/_ignition/health-check"
matchers:
- type: status
status:
- 200
# an spa fallback route that inlines the ignition client bundle references
# can_execute_commands as a bare js property with no real health-check
# response present. anchor on the actual json shape the endpoint emits
# (a quoted key immediately followed by a boolean), which a bundled script
# accessing the field as `r.can_execute_commands` never produces.
- type: regex
part: body
regex:
- '"can_execute_commands"\s*:\s*(?:true|false)'
- type: regex
part: body
negative: true
regex:
- '(?i)<(!doctype|html|head|title|body)[ >]'
extractors:
- type: regex
name: can_execute_commands
part: body
regex:
- '"can_execute_commands"\s*:\s*(true|false)'
group: 1