-
General File Upload Testing
- Upload files containing payloads and observe application response.
- Attempt to change file paths to overwrite existing system files.
- Test the application's handling of excessively large files to prevent Denial of Service attacks.
- Check for leakage of metadata from uploaded files.
- Assess vulnerabilities related to the ImageMagick library (e.g., Image Tragick - CVE-2016-3714).
- Conduct pixel flood attacks with images of high density.
- Verify file storage location for directory traversal vulnerabilities.
- Ensure that proper validation of file types is enforced both client-side and server-side.
- Test for server-side code execution vulnerabilities by uploading files with executable content.
- Check if uploaded files are securely sandboxed to prevent unauthorized access.
-
Bypass Techniques
- Test null byte (
%00
) bypass for file type checks. - Assess the enforcement of MIME types (Content-Type bypass).
- Test file content checking based on header bytes (Magic Byte bypass).
- Confirm server-side enforcement of file restrictions to bypass client-side validation.
- Verify the robustness of file extension checks against blacklisted extensions.
- Test for Unicode vulnerabilities in file names (homographic character bypass).
- Attempt to bypass restrictions by using double file extensions (e.g.,
file.jpg.php
). - Test file upload functionality in various contexts within the application.
- Utilize automated tools and scripts for comprehensive file upload security testing.
- Review the application's code for insecure handling practices related to file uploads.
- Test null byte (
-
Specific Attacks
- Test for XXE (XML External Entity) injection via file upload.
- Attempt to upload files with malicious content triggering SSRF (Server-Side Request Forgery).
- Verify file handling in different environments (e.g., Windows vs. Linux).
- Check for stored XSS vulnerabilities by uploading files with script content in metadata.
- Test for insecure file upload configurations in third-party libraries or plugins.
-
Post-Upload Testing
- Verify if uploaded files are scanned for malware.
- Ensure uploaded files are stored in non-executable directories.
- Implement proper access controls on uploaded files to prevent unauthorized access.
- Test for race conditions in file upload functionality.