AlpacaHack Logo

Challenges

Sign InSign Up

Rows:

CHALLENGEAUTHORS

SOLVES

(CURRENT)

SOLVE RATE

(AT CONTEST TIME)

AlpacaHack 2100

Daily AlpacaHack

admin

1724

solves

-

1559

solves

-

Daily AlpacaHack

912

solves

-

AlpacaHack Round 2 (Web)

620

solves

Top 28%

= 84/300 users

Daily AlpacaHack

612

solves

-

Daily AlpacaHack

593

solves

-

SECCON Beginners CTF 2024

527

solves

Top 73%

= 683/928 teams

Daily AlpacaHack

404

solves

-

Daily AlpacaHack

399

solves

-

Daily AlpacaHack

367

solves

-

echo

AlpacaHack Round 1 (Pwn)

361

solves

Top 32%

= 56/174 users

Daily AlpacaHack

360

solves

-

Daily AlpacaHack

344

solves

-

Daily AlpacaHack

336

solves

-

Daily AlpacaHack

330

solves

-

Daily AlpacaHack

326

solves

-

Encoding Basics

Daily AlpacaHack

326

solves

-

🐈

Daily AlpacaHack

320

solves

-

Bars

Daily AlpacaHack

312

solves

-

108

Daily AlpacaHack

303

solves

-

Rows:

permission denied 2

Daily AlpacaHack
58 solves
Misc

Author:

minaminao

minaminao

cat: flag.txt: Permission denied

NOTE: permission denied の類題です。

初心者向けヒント1
  • nc で接続すると、シェルが起動することがわかります。
  • chal.sh を読むと、シェルが起動する前にパーミッション 400 で flag.txt が作成されています。
  • このコマンドを実行するのは root ユーザーです。
  • そのため、 400root ユーザーのみ読み取りができることを意味します。
  • そして runuser -u alpaca -- sh によって alpaca ユーザーでシェルが起動します。
  • しかし、 cat flag.txt を実行しても Permission denied となり、フラグを読むことができません。
  • では、どうすればフラグを読み取れるでしょうか?
初心者向けヒント2
  • メタ的な視点ですが、そもそも、なぜわざわざ chal.sh の中で flag.txt のパーミッションを設定しているのでしょうか?
  • chal.sh のパーミッションは Dockerfile で指定されています。
  • 同じように、 flag.txtDockerfile 側でパーミッションを設定することは可能なはずです。
  • Dockerfile でパーミッションを指定したときと、chal.sh のようにパーミッションを指定するときで、どのような挙動の差が生まれるかを考えてみましょう。
初心者向けヒント3
  • 前の問題である permission denied では nobody ユーザーが使われていましたが、今回は alpaca ユーザーが使われています。
  • また、 /home/alpaca ディレクトリで実行されています。
  • これにより、何が可能になるでしょうか。

[案内] Daily AlpacaHack を改善するためのサーベイにご協力ください(2026年4月分): https://forms.gle/SnpgzvYqjUX9uv8i6

permission-denied-2.tar.gz
descriptionsolveswriteups