AlpacaHack Logo
Sign InSign Up
Daily AlpacaHack

A daily CTF challenge with a fun new puzzle every day

What is Daily AlpacaHack?

We publish one simple, beginner-friendly or educational CTF challenge every day!

Join Anytime

Solve within 24 hours of release to appear on the leaderboard.

Not a Competition

Discussion with friends or AI is welcome (account sharing is prohibited).

Solution Sharing Rules

Sharing solutions is allowed only after 24 hours have passed since release.

Solve stats

0

/23

No solved challenges yet.

Sign In to view your player stats

Today's Challenge
tchentchen
Secret Renderer
Web
Medium
34 solves
Submissions (latest 3)
cocoa

SOLVED!

Jun 23, 3:34 AM

Leaderboard

Try the first challenge

Is this your first CTF? Let's begin by tackling the first challenge released on Daily AlpacaHack.

View challenge
admin
AlpacaHack 2100
Misc
Welcome🌱
1,903 solves
Upcoming challenges reveal the , , and in advance.
Prev

Jun 2026

Next
Solved
Unsolved
Upcoming
Mon
Tue
Wed
Thu
Fri
Sat
Sun
1
admin
Half-Year Recap
Misc
Welcome🌱
235 solves
2
minaminaominaminao
Cache Me If You Can
Web
Easy🌱
196 solves
3
minaminaominaminao
vm1
Misc
Medium
94 solves
4
pppp4649pppp4649
Small e
Crypto
Easy🌱
133 solves
5
minaminaominaminao
RPS GAME
Misc
Crypto
Medium
96 solves
6
nozokare
Flag for localhost
Web
Easy🌱
156 solves
7
tan90909090tan90909090
C++ flag checker
Rev
Hard
84 solves
8
shiragishiragi
Guess IP
Misc
Easy🌱
139 solves
9
nozokare
A Piece of DHKE
Crypto
Medium
81 solves
10
shiragishiragi
chmod-swapper
Misc
Medium
83 solves
11
tchentchen
Alpaca Certification
Web
Easy🌱
152 solves
12
rsk0315
Floating Equality
Misc
Medium
89 solves
13
pppp4649pppp4649
Elliptic Equation
Crypto
Hard
58 solves
14
tchentchen
CAuth
Web
Hard
65 solves
15
minaminaominaminao
SITE/2
Web
Easy🌱
117 solves
16
tan90909090tan90909090
Xored PNG
Misc
Medium
84 solves
17
tchentchen
Looks like Alpacahack
Web
Medium
80 solves
18
shiragishiragi
Catrunner 2
Misc
Easy🌱
102 solves
19
minaminaominaminao
Flag Printer 20XX
Misc
Medium
61 solves
20
nozokare
xorshift521
Crypto
Hard
53 solves
21
k0080k0080
what-is-my-size
Pwn
Hard
62 solves
22
minaminaominaminao
✌️✌️✌️
Crypto
Easy🌱
79 solves
23
tchentchen
Secret Renderer
Web
Medium
34 solves
24
kanonkanon
Planned topicBlock Cipher
Crypto
Medium
26
Coming soon
28
Planned topicTBA
Pwn
Hard
29
Coming soon
30
Coming soon
2
Planned topicMathematics
Crypto
Easy🌱
3
Coming soon
4
Coming soon
5
Coming soon

Want a harder challenge?

Go to B-SIDE

Writeups

Writeup for ✌️✌️✌️

baumroll1234

ja
✌️✌️✌️

9 hours ago

minaminao

Writeup for ✌️✌️✌️

author
ja

10 hours ago

Daily AlpacaHackに挑戦するつくよみちゃん 06/22/✌️✌️✌️/minaminao

tadanobutubutu

Writeup for ✌️✌️✌️

tadanobutubutu

Writeup for what-is-my-size

Daily AlpacaHackに挑戦するつくよみちゃん 06/20/xorshift521/nozokare

ja

2026/06/20 15:40

Rows:

vm1

Topic: Jail, JavaScriptReleased: Jun 3, 2026

94 solves
Misc
Medium4.5

by

minaminao

minaminao

https://nodejs.org/docs/latest-v26.x/api/vm.html#vm-executing-javascript

The node:vm module is not a security mechanism. Do not use it to run untrusted code.

I do not believe so

Beginner Hint 1: Challenge Overview (AI-translated)
  • If you read the distributed jail.js, you can see that the JavaScript code you input is executed with runInNewContext from node:vm.
  • Roughly speaking, runInNewContext is used as runInNewContext(code, contextObject, options). The first argument is the code to execute, the second argument is the global object visible from that code, and the third argument is the runtime options.
  • In this challenge, runInNewContext(code.toString(), {}, { timeout: 1000 }) is executed. In other words, your input code is executed in a new context, and an empty {} is passed as the global object. timeout: 1000 is a setting to stop execution that runs for too long.
  • The flag is stored in the environment variable FLAG, and in normal Node.js code, you can obtain it with process.env.FLAG. However, in this challenge, the {} passed as the second argument to runInNewContext does not contain process, so it fails with ReferenceError: process is not defined.
  • So how can you obtain FLAG?
Beginner Hint 2: Approach (AI-translated)
  • At first glance, it looks like you cannot access objects such as process, but that is not actually the case.
  • In JavaScript, when reading an object's property, if the property does not exist on the object itself, properties on the prototype chain are also searched.
  • In the vm context, focus especially on the constructor property among the properties visible from globalThis, and try investigating it.
Beginner Hint 3: A More Detailed Approach (AI-translated)
  • globalThis.constructor.constructor becomes the Function constructor, which can create functions from strings.
  • In which context is a function created with this evaluated?
vm1.tar.gz

Please sign in to submit the flag.

descriptionsolveswriteups