Rating:
# GnomeArena: Rock Paper Scissors (Web)
Hi CTF player. If you have any questions about the writeup or challenge. Submit a issue and I will try to help you understand.
Also I might be wrong on some things. Enjoy :)
(P.S Check out my [CTF cheat sheet](https://github.com/flawwan/CTF-Candy))
![alt text](1.png "Chall")
This challenge is a rock paper scissor challenge.
![alt text](2.png "Chall")
The game did not seem exploitable. But at the right corner we see a settings page.
![alt text](3.png "Chall")
At the settings page we can upload a new profile picture. We can also set a new name for our account.
![alt text](4.png "Chall")
Here is our goal:
* Upload a file containing PHP code
* Find the directory where the files are stored.
* Figure out a way to run the uploaded file as PHP code.
Questions I always ask myself when dealing with these kind of challenges:
* What kind of file extensions does the server allow?
* Can I find the uploaded file?
* Can I spoof the MIME header?
* etc ...
TL;DR answer to these questions.
I can only upload image files.
All other files seem to be blocked.
I can control the name + extension of the uploaded file with the rename "name" functionality.
### Exploiting the file upload
* Create a small image. I used a 1x1 black pixel as image.
* Append PHP backdoor shell at the end of the image. I used VIM for this.
```
```
* Upload image to website as any filename.
* Rename `name` to shell.php
* Right click image and `Copy Image Source`
* Visit that address and we should have shell.
![alt text](6.png "Chall")
And now get the flag with `cat` command.
![alt text](7.png "Chall")