4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Daily AlpacaHack 2/20 Dancing Cursorのwriteup

4
Posted at

Daily AlpacaHackで可愛い動画が撮れたので、writeupと称して掲載することにしました。

Dancing Cursor

Topic: Control Sequences
Author: rsk0315

カーソルが左や上に動いたらどう思う?

print-flag.shというshellスクリプトが渡されます。中を見るとBase64encodeされたデータをdecodeして実行してそうなので、とりあえずBase64部分をDecodeしてみることにします。

Here is the flag:
^[[?1049h^[[1B^[[1;38;5;196mA^[[m^[[1;38;5;208ml^[[m^[[1;38;5;226mp^[[m^[[1;38;5;202ma^[[m^[[1;38;5;220mc^[[m^[[1;38;5;214ma^[[m^[[1m{^[[m^[[46C^[[1m}^[[m^[[1B^[[11D^[[38;5;191m#^[[m^[[1A^[[7Dn^[[13D_^[[26Cl^[[34Du^[[5Ds^[[6Dt^[[6CS^[[10C0^[[18Dr^[[1A^[[8D^[[38;5;226m+^[[m^[[1B^[[3Co^[[40Ct^[[34DE^[[3D_^[[1B^[[2D^[[38;5;227mo^[[m^[[2A^[[2C^[[38;5;227m.^[[m^[[1B^[[23Cr^[[34DC^[[34Co^[[16Dh^[[1Cul^[[19Cr^[[1B^[[50D^[[38;5;226m*^[[m^[[35C^[[38;5;190m+^[[m^[[2A^[[4D^[[38;5;226m.^[[m^[[11C^[[38;5;227mo^[[m^[[1B^[[34Dl^[[1A^[[8C^[[38;5;191mo^[[m^[[1B^[[9C_^[[1B^[[14D^[[38;5;221m+^[[m^[[2A^[[10D^[[38;5;190m#^[[m^[[1B^[[35Cc^[[13D3^[[1B^[[14C^[[38;5;221m*^[[m^[[1A^[[29Dn^[[9Cd^[[1A^[[4D^[[38;5;221m+^[[m^[[2B^[[22D^[[38;5;227m.^[[m^[[1A^[[18Cs^[[1A^[[13C^[[38;5;191m#^[[m^[[1B^[[6Co^[[7D_^[[30Do^[[30Cu^[[20Ds^[[7DC^[[1B^[[6C^[[38;5;226m*^[[m^[[1A^[[13C3^[[17De^[[4De^[[30Co^[[4Dn^[[40Dn^[[35C_^[[10Du^[[2D_^[[14Dc^[[21Cr^[[12Db^[[1B^[[3D^[[38;5;191mo^[[m^[[1A^[[6Cd^[[1A^[[39D^[[K^[[2B^[[K^[[1AXiqxox{==============================================}
^[[?1049l... but it has been wiped away.

flagはここだけど消しちゃったよ!と出るみたいですね。実際に実行してみると

Here is the flag:
... but it has been wiped away.

こんな感じ。間にあるのはANSI escape codeといって、Escの後に[を付けて色を変えたりカーソルを移動させたりできるみたいです。先ほどのコードをよく見ると、

^[[1;38;5;196mA
^[[m^[[1;38;5;208ml
^[[m^[[1;38;5;226mp
^[[m^[[1;38;5;202ma
^[[m^[[1;38;5;220mc
^[[m^[[1;38;5;214ma

この辺で色を指定しながらAlpacaと表示させているのが分かります。標準出力にFlagを表示していますが、早すぎて視認できないみたいですね。
この先もANSIのコードを見ながら分析していけばどこに何が入るか判明しそうですが、面倒です。pvコマンドを使います。

sudo apt install pv

でインストールできます。
これでpv -qL 100とすると、1秒あたりに100bytesずつ出力してくれるので、経過をゆっくり見ることができます。

./print-flag.sh | pv -qL 100
以下ネタバレ動画のため畳む

dancing cursor.gif

かわいい!
pv -qL 10あたりにすれば余裕をもってflagが読めるので、遅く表示してゲット。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?