django-attack-probe
Installation
SKILL.md
Django Attack Probe
Authorized probe of a Django (4.2+/5.x) app the user owns. Follow shared probing conventions — discover base URL via env / manage.py runserver default 8000 / Dockerfile EXPOSE / docker-compose.yml. Never hardcode the port.
Django-specific attack surface
DEBUG=Truein dev exposes a yellow error page with full traceback, environment variables, and SQL queries — often left on in non-prod-like environments.ALLOWED_HOSTS = ['*']combined withHost:header trickery enables cache poisoning / password-reset link injection./admin/is the canonical admin path; brute-force lockout depends ondjango-axes/django-ratelimitbeing installed.- DRF
permission_classesdefault to project-wide setting — easy to leaveAllowAnyon a single ViewSet by accident. ModelSerializerwithfields = "__all__"+update()enables mass-assignment ofis_staff/is_superuser.Model.objects.raw()/extra(where=...)with f-strings is the typical SQLi vector in Django code.
Procedure
- Authorization preflight + base URL discovery.
- Liveness check:
GET /,GET /admin/,GET /api/. - Run rules below.