diff options
| author | Louis Burda <quent.burda@gmail.com> | 2022-09-27 21:07:33 +0200 |
|---|---|---|
| committer | Louis Burda <quent.burda@gmail.com> | 2022-09-27 21:22:29 +0200 |
| commit | 18d2171b69b004bf4d67ec5a9b45e7b482cd5496 (patch) | |
| tree | 8f7e89c62fb3e7a300c9bd8feb7db5f6f7a145f4 | |
| parent | b047d99431e311efe28ea3f1671c1307bb2fcf5f (diff) | |
| download | bambi7-service-catchbox-18d2171b69b004bf4d67ec5a9b45e7b482cd5496.tar.gz bambi7-service-catchbox-18d2171b69b004bf4d67ec5a9b45e7b482cd5496.zip | |
Update vuln descriptions
| -rw-r--r-- | README.md | 31 |
1 files changed, 17 insertions, 14 deletions
@@ -1,25 +1,28 @@ ## CatchBox -Simple file upload service. +*The logical successor to Dropbox.* -Flag user- and filenames are given as attack info. +### Flagstores -Flagstore 1 is stored in a file from the flag user. +Flag user- and filenames are given as attack info. -Flagstore 2 is stored in a report created by the flag user. +Flagstore 1 is a file uploaded by the flag user. -### VULNS +Flagstore 2 is a report created by the flag user. -1. upload file directory name is generated based on creation time - (can be bruteforced using user creation time) +### Vulnerabilities -2. upload filename path traversal allows for reading reports and uploads - (filename check is fumbled via php type juggling and wrong variable use) +1. The random value used to generate the upload directory name is seeded + using the time of the request, which can be inferred (with minimal bruteforce) + from the user creation time in the 'users' endpoint. (flagstore 1) -3. nginx uploads alias allows arbitrary file read in /service (except database) +2. The upload endpoint has a path traversal that allows reading of other + users' reports and uploads. There is a type confusion between the + return of strpos and false, which allows paths like "*/../*" to bypass + the check since the index is 0 (== false). Additionally, the unsanitized + parameter is stored in the database. (flagstore 2) -4. theoretically hash collision on flag user's name allows accessing report, - but computation complexity is too high even for given round time - (easy to find two strings with same md5 hash, but difficult to find - 'complement' for a given string) +3. The nginx /uploads alias allows for arbitrary file read in /service + (except for the database), since /upload../* expands + to /service/files/../. (flagstore 2) |
