Web


Nmap discovered a Web server on the target port 80 The running service is Apache httpd 2.4.41

┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/astronaut]
└─$ curl -I -X OPTIONS http://$IP/      
HTTP/1.1 200 OK
Date: Mon, 31 Mar 2025 14:06:17 GMT
Server: Apache/2.4.41 (Ubuntu)
Allow: GET,POST,OPTIONS,HEAD
Content-Length: 0
Content-Type: httpd/unix-directory
 
 
┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/astronaut]
└─$ curl -I http://$IP/          
HTTP/1.1 200 OK
Date: Mon, 31 Mar 2025 14:06:20 GMT
Server: Apache/2.4.41 (Ubuntu)
Content-Type: text/html;charset=UTF-8

Webroot Directory indexing is enabled ;/grav-admin/

/grav-admin/ Directory


This is a default installation page of a Grav instance Source code is available for reference

Grav is a free software, self-hosted content management system (CMS) written in the PHP programming language and based on the Symfony web application framework. It uses a flat file database for both backend and frontend.

/grav-admin/admin Directory


Login page for the admin panel is available at the /grav-admin/admin endpoint No credential is known at this time

/grav-admin/robots.txt


Vulnerabilities


┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/astronaut]
└─$ searchsploit Grav CMS
------------------------------------------------------------------------------------- ---------------------------------
 Exploit Title                                                                       |  Path
------------------------------------------------------------------------------------- ---------------------------------
Grav CMS 1.4.2 Admin Plugin - Cross-Site Scripting                                   | php/webapps/42131.txt
Grav CMS 1.6.30 Admin Plugin 1.9.18 - 'Page Title' Persistent Cross-Site Scripting   | php/webapps/49264.txt
Grav CMS 1.7.10 - Server-Side Template Injection (SSTI) (Authenticated)              | php/webapps/49961.py
GravCMS 1.10.7 - Arbitrary YAML Write/Update (Unauthenticated) (2)                   | php/webapps/49973.py
GravCMS 1.10.7 - Unauthenticated Arbitrary File Write (Metasploit)                   | php/webapps/49788.rb
gravy media CMS 1.07 - Multiple Vulnerabilities                                      | php/webapps/8315.txt
------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
Papers: No Results

There are multiple vulnerabilities While the version information has not been confirmed yet, I will attempt the unauthenticated RCE exploit

Fuzzing


┌──(kali㉿kali)-[~/PEN-200/PG_PRACTICE/astronaut]
└─$ ffuf -c -w /usr/share/wordlists/seclists/Discovery/Web-Content/big.txt -u http://$IP/grav-admin/FUZZ -ic -e .php,.txt,.html
________________________________________________
 :: Method           : GET
 :: URL              : http://192.168.154.12/grav-admin/FUZZ
 :: Wordlist         : FUZZ: /usr/share/wordlists/seclists/Discovery/Web-Content/big.txt
 :: Extensions       : .php .txt .html 
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 40
 :: Matcher          : Response status: 200-299,301,302,307,401,403,405,500
________________________________________________
.htaccess               [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 296ms]
.htaccess.php           [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 291ms]
.htpasswd.txt           [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 214ms]
.htpasswd.php           [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 215ms]
.htpasswd.html          [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 215ms]
.htaccess.html          [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 224ms]
.htaccess.txt           [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 226ms]
.htpasswd               [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 218ms]
LICENSE.txt             [Status: 403, Size: 279, Words: 20, Lines: 10, Duration: 66ms]
admin.txt               [Status: 403, Size: 0, Words: 1, Lines: 1, Duration: 540ms]
admin.html              [Status: 200, Size: 15508, Words: 4330, Lines: 139, Duration: 606ms]
admin                   [Status: 200, Size: 15508, Words: 4330, Lines: 139, Duration: 648ms]
assets                  [Status: 301, Size: 328, Words: 20, Lines: 10, Duration: 67ms]
backup                  [Status: 301, Size: 328, Words: 20, Lines: 10, Duration: 80ms]
bin                     [Status: 301, Size: 325, Words: 20, Lines: 10, Duration: 64ms]
cache                   [Status: 301, Size: 327, Words: 20, Lines: 10, Duration: 80ms]
cgi-bin/                [Status: 302, Size: 0, Words: 1, Lines: 1, Duration: 90ms]
forgot_password.html    [Status: 200, Size: 12383, Words: 2246, Lines: 155, Duration: 751ms]
forgot_password         [Status: 200, Size: 12383, Words: 2246, Lines: 155, Duration: 774ms]
forgot_password.txt     [Status: 200, Size: 12383, Words: 2246, Lines: 155, Duration: 815ms]
home                    [Status: 200, Size: 14014, Words: 2089, Lines: 160, Duration: 308ms]
home.html               [Status: 200, Size: 14014, Words: 2089, Lines: 160, Duration: 297ms]
home.txt                [Status: 200, Size: 14014, Words: 2089, Lines: 160, Duration: 323ms]
images                  [Status: 301, Size: 328, Words: 20, Lines: 10, Duration: 80ms]
login.txt               [Status: 200, Size: 13967, Words: 3067, Lines: 190, Duration: 299ms]
login                   [Status: 200, Size: 13967, Words: 3067, Lines: 190, Duration: 316ms]
login.html              [Status: 200, Size: 13967, Words: 3067, Lines: 190, Duration: 298ms]
logs                    [Status: 301, Size: 326, Words: 20, Lines: 10, Duration: 61ms]
robots.txt              [Status: 200, Size: 274, Words: 17, Lines: 16, Duration: 69ms]
robots.txt              [Status: 200, Size: 274, Words: 17, Lines: 16, Duration: 65ms]
system                  [Status: 301, Size: 328, Words: 20, Lines: 10, Duration: 77ms]
tmp                     [Status: 301, Size: 325, Words: 20, Lines: 10, Duration: 84ms]
user                    [Status: 301, Size: 326, Words: 20, Lines: 10, Duration: 68ms]
user_profile.txt        [Status: 403, Size: 0, Words: 1, Lines: 1, Duration: 292ms]
user_profile            [Status: 200, Size: 13974, Words: 3067, Lines: 190, Duration: 423ms]
user_profile.html       [Status: 200, Size: 13974, Words: 3067, Lines: 190, Duration: 443ms]
vendor                  [Status: 301, Size: 328, Words: 20, Lines: 10, Duration: 68ms]
:: Progress: [81912/81912] :: Job [1/1] :: 134 req/sec :: Duration: [0:11:24] :: Errors: 0 ::

N/A