This is a security assessment exercise for a Senior Application Security Engineer position. The application is a simple document management API with intentional security vulnerabilities that you need to identify and analyze.
npm install
npm run devThe server will start on http://localhost:3000
- Admin:
admin/admin123 - User 1:
john/user123 - User 2:
jane/user123
POST /api/login- User login{"username": "admin", "password": "admin123"}
GET /api/documents- List documentsGET /api/documents/:id- Get specific documentPOST /api/upload- Upload fileGET /api/download/:filename- Download file
PUT /api/profile- Update user profile{"email": "new@email.com", "role": "admin"}
Find and document the security vulnerabilities in this application.
- Identify vulnerabilities - Find security issues in the code
- Classify severity - Rate each vulnerability (Critical/High/Medium/Low)
- Provide proof of concept - Show how to exploit each vulnerability
- Recommend fixes - Suggest specific remediation steps
A security assessment report containing:
- Executive summary
- Detailed vulnerability findings
- Risk assessment and prioritization
- Remediation recommendations
2-3 hours maximum
curl -X POST http://localhost:3000/api/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "admin123"}'# Get token from login response first
curl -X GET http://localhost:3000/api/documents \
-H "Authorization: Bearer YOUR_TOKEN"curl -X POST http://localhost:3000/api/upload \
-H "Authorization: Bearer YOUR_TOKEN" \
-F "file=@test.txt"- Completeness: How many vulnerabilities you identify
- Accuracy: Correct classification and impact assessment
- Technical depth: Quality of analysis and proof of concepts
- Communication: Clear, professional documentation
- Remediation: Practical and effective fix recommendations
Good luck! 🔒