AlpacaHack Logo

Challenges

Sign InSign Up

Rows:

CHALLENGEAUTHORS

SOLVES

(CURRENT)

SOLVE RATE

(AT CONTEST TIME)

AlpacaHack 2100

Daily AlpacaHack

admin

1719

solves

-

1559

solves

-

Daily AlpacaHack

911

solves

-

AlpacaHack Round 2 (Web)

620

solves

Top 28%

= 84/300 users

Daily AlpacaHack

611

solves

-

Daily AlpacaHack

590

solves

-

SECCON Beginners CTF 2024

525

solves

Top 73%

= 683/928 teams

Daily AlpacaHack

402

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

335

solves

-

Daily AlpacaHack

329

solves

-

Daily AlpacaHack

326

solves

-

Encoding Basics

Daily AlpacaHack

325

solves

-

🐈

Daily AlpacaHack

320

solves

-

Bars

Daily AlpacaHack

310

solves

-

108

Daily AlpacaHack

303

solves

-

Rows:

permission denied

Daily AlpacaHack
56 solves
Misc

Author:

minaminao

minaminao

cat: flag.txt: Permission denied

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