Rows:
| CHALLENGE | AUTHORS | SOLVES (CURRENT) | SOLVE RATE (AT CONTEST TIME) |
|---|---|---|---|
1724 solves | - | ||
1559 solves | - | ||
912 solves | - | ||
620 solves | Top 28% = 84/300 users | ||
612 solves | - | ||
593 solves | - | ||
527 solves | Top 73% = 683/928 teams | ||
404 solves | - | ||
399 solves | - | ||
367 solves | - | ||
361 solves | Top 32% = 56/174 users | ||
360 solves | - | ||
344 solves | - | ||
336 solves | - | ||
330 solves | - | ||
326 solves | - | ||
326 solves | - | ||
320 solves | - | ||
312 solves | - | ||
303 solves | - |
Rows:
cat: flag.txt: Permission denied
NOTE: permission denied の類題です。
nc で接続すると、シェルが起動することがわかります。chal.sh を読むと、シェルが起動する前にパーミッション 400 で flag.txt が作成されています。root ユーザーです。400 は root ユーザーのみ読み取りができることを意味します。runuser -u alpaca -- sh によって alpaca ユーザーでシェルが起動します。cat flag.txt を実行しても Permission denied となり、フラグを読むことができません。chal.sh の中で flag.txt のパーミッションを設定しているのでしょうか?chal.sh のパーミッションは Dockerfile で指定されています。flag.txt も Dockerfile 側でパーミッションを設定することは可能なはずです。Dockerfile でパーミッションを指定したときと、chal.sh のようにパーミッションを指定するときで、どのような挙動の差が生まれるかを考えてみましょう。nobody ユーザーが使われていましたが、今回は alpaca ユーザーが使われています。/home/alpaca ディレクトリで実行されています。[案内] Daily AlpacaHack を改善するためのサーベイにご協力ください(2026年4月分): https://forms.gle/SnpgzvYqjUX9uv8i6