Hack the USV: 2017 (CTF Challenge)

Hello friends! Today we are going to take another CTF challenge known as USV: 2017. The credit for making this vm machine goes to “Suceava University” and it is another capture the flag challenge in which our goal is to find 5 flags to complete the challenge. You can download this VM here.
Let’s Breach!!!
Let us start form getting to know the IP of VM (Here, I have it at 192.168.0.18 but you will have to find your own)
Let’s do an nmap scan for port enumeration.

nmap -A -p- 192.168.0.18

We find port 21,22,80,4369,5222,5269,5280,15020,33939 to be open. Port 80 is running http and port 15020 is running https.
So we first open 192.168.0.18 in our browser.


We don’t find anything on this page so we enumerate the directories for further information.


During our directory enumeration we find a page called admin2, we open it in our browser and find it to be login page.


We take a look at the source code and find that the password is hidden itself in the page. The page uses javascript to verify the password. The javascript is in hex encode.


We first decrypt the hex encode and find that if the value is 1079950212331060 it will let you enter or it will show wrong password. Now the final value is calculated using a formula:
(stringconcat(password+4469)-234562221224)*1988=1079950212331060
Now when we calculate the value of the password we find it to be 77779673. When we enter it we get the 1st flag.


Now we open the ip 192.168.0.18 at port 15020 as it is running another apache service. When we open the ip on our browser we find that we need to install ssl certificate. We take a look at the details of the certificate for information; at the issuer section we find our 2nd flag.


We accept the certificate and open the web page.


We don’t find anything on the webpage. So we enumerate the directories on this page.


We open blog/ directory and find a few blogs with few comments.


Now goint through the blogs we find kevin’s blog with 1 comment that hints it has a flag inside his home directory.


We take a look inside source code and hint to open a php file called download.php.


When we open it we find to use image parameter to open file, this page maybe vulnerable to LFI.


We cannot exploit LFI vulnerability using the browser, we use post data using curl to exploit the LFI vulnerability.
curl -d “image=/etc/passwd” https://192.168.0.18:15020/blog/download.php -k


curl -d “image=/home/kevin/flag.txt” https://192.168.0.18:15020/blog/download.php -k


Now we go to the other vault/ directory, it contains a lot of directories so we download it on our system to make it easier for us to look through the directories. We download the entire site using recursive download utility of wget.
wget  -r –no-check-certificate “http://192.168.0.18:15020/vault


Now we use find command to look for files and we use grep to rule out .html files. We found two files rockyou.zip and and a cap file.
find ./ -type f | grep -v .html


We open it using wireshark going through the packets we found it to be a wifi handshake file.


We use this site here to convert the cap file to hccapx, to make it compatible for hashcat.


Now we use hashcat to decrypt the the handshake. We use the wordlist provided by the server just in case it had some extra keywords.
hashcat -m 2500 -a 0 ctf.hccapx 192.168.0.18:15020/rockyou.txt


We use username admin and the password we find from hashcat that is “minion.666” to login through the admin page.


As soon as we login this page, we find that this page maybe vulnerable to sql injection.
Now we use burpsuite to capture the request and use CO2 extension of burpsuite to exploit the sql injection but first we take a look at the source code.


When we look at the source code we find our 4th flag.


Now we use CO2 for SQL injection. We select database, tables and columns to dump all data on the server available on the database.




It gave us the name of the database, tables and columns. Unfortunately it couldn’t dump the database for some reason. So we manually exploit the sql injection through the browser.


We find that the server uses a firewall that blocks any sql query. We use normalization method to bypass this firewall. With name of the columns and table we were able to execute our SQL injection.
When we change the parameter of the id the output also changes, after going through different parameters we find that parameter 7 gave us our 5th and final flag.


0 comments:

Post a Comment