totoridipjp API 1.1について
取り急ぎmikutter本で書いた内容についての訂正及び補足です。
・APIのエンドポイントにブラウザでアクセスするとXMLが出ることがありますがHTTPのAcceptヘッダに指定されたMIMEの内容を返すようになっているためです。
何も指定しない場合はJSONで返りますし、?format=json等のオプションでオーバーライドできます。
2015/12/31 10:19現在でめっちゃ適当にデプロイしてるので落ちたりしたら許して
----- 2015/12/31 10:44追記 -----
現時点で神棚経由モードが実装できてません。
----- 追記以上 -----
たぶん年越した頃には確認できると思うのでそれぐらいまではできるだけ変なことしないでください
以上
SECCON2015 Online CTFに出た
この記事は「さくらインターネット Advent Calendar 2015 - Qiita」 8日目の記事です。
・・・なんですがうかうかしていたらいい感じの枠が埋まってしまっていたので名目上8日目だけど6日目に書いちゃいます。すいません。
チームMr.Takedaで出て3500ptsで19位、残念ながら3年連続本戦出場は無理そう。
以下writeup
自力で解いたやつ
Bonsai XSS Revolutions
起動するとわけのわからん画面が出る。
どこか外部と通信してるのかなあと思ってWiresharkだのBurp SuiteだのでSSLで通信してるパケットを捕まえようとしたけど何も無くていったん断念。
放置していたらチームメイトの__mathせんせーから「25番ポート開いてなんかしてるぞ」との情報、見てみたらどうもSMTPサーバが立ち上がってるっぽい。
最初はThunderbirdのSMTPサーバとしてlocalhostを登録していろいろやっていたのだけどThunderbirdがいろいろ余計なことをしてくれるので自前クライアントに方針転換。
C#でメール送信しまくるクライアントを書いたはいいけど標準で付いてるSystem.Web.Mail.SmtpClientではちゃんとRFCに準拠したメールアドレスとかでないと例外を吐いて死ぬ。
そこで「SMTPでメールを送信する: .NET Tips: C#, VB.NET」のコードを丸々拝借して変なメールを連続して送れるコードを書く。
最終的にはDateフィールドに任意の文字列を入れることができ、エスケープもされないようなのでここでXSSが可能。
ブラウザのユーザーエージェントがフラグなので Date: <script>alert(window.navigator.userAgent);</script>
をヘッダに仕込んでフラグゲット。
Exec dmesg
極端に機能の少ない(?)LinuxのLiveCDのイメージが渡される。
問題名からdmesgが怪しいけどbusyboxから削られてるのかdmesgが実行できない。
VMwareで起動したら幸いネットワーク環境も一発で認識してくれていたのでちゃんとしたBusyboxを落としてきて
busybox dmesg | grep SECCON
でフラグゲット。
QR puzzle (Windows)
バラバラになってるQRコードのパズルを完成させてQRコードの内容を読んだら1ステージクリア x300ステージぐらいあるやつ。
メモリダンプしてみたらあからさまに内部で使ってる辞書っぽいのが見えたのでそいつをWindowsAPIで送りつけまくる頭の悪いコードを書いてみたら案外上手く行ったのでその方針で行く。
残念すぎて正解したかどうかもわからないまま300回回す上一度通ったワードも再度チャレンジする(これに関しては問題の仕様が不明なのである程度しょうが無いけど)とか本当に頭が悪い。
途中拾えなかったワード(先頭大文字になってる単語が1つだけ混じってる)とか唯一辞書に載ってなかったsecconだとかを手で読むお世話をしながら延々6時間ぐらい回してたらフラグが出た。記念にスクリーンショット撮ったんだけど大会終了後にPCが落ちてスクリーンショット紛失。
とりあえずそんなこんなでフラグゲット。
すごいやってるぞ感があるけどこの間PCは使えないし遅いしで何もいいことがないソルバーの実行中の動画があったので貼っておきます。
途中までやって投げた or 途中からやった
Fragment2
全く意味がわからなかったけどもしかしてHTTP2じゃね?と言ってWiresharkでHTTP2としてDecodeさせてみたけどよくわからず。
ここが怪しそうじゃね?とSlackに投げて放置していたらチームメイトのaki33524が解読してくれた。
Command-Line Quiz
chibiegg先生がstage4まで突破して最後で悩んでいたのを持っていった。
以上
Bonsaiがおそらく想定解で解けたのでよかった
Exec dmesgは要らんこと(Slackで解けたぜヤッター等)してなければ最速いけたかもしれないのが残念
つらい回路を読めるようになりたいがつらい
ISUCON5予選に出ました
MMACTF 1st 2015に出た
Mr. Takedaで出て何もしなかった。1100ptで42位。
国内で言うと7位?まあつらい
Login as admin!
某ctfの某と全く同じだったけどこれ以外の解き方があったっぽい。
Splitted
わからんということでチームメイトのきひろちゃんに既にPSDになった状態のファイルを渡された。
Paint.netで開いてみたら白背景レイヤーがFLAGの上に被さっているだけだった。変換ツール避けかなんかか?
This program cannot be run in DOS mode.
実行ファイルを1バイト書き換えるだけ。
渡された実行ファイルを普通に実行すると「このファイルは実行できません」と言われて16ビットバイナリかなんかか?と思ったけどどうも普通の32bitバイナリっぽい。
ってことはヘッダがおかしそうなんでいろいろ見て回ったらMZスタブに書いてあるPEヘッダのオフセットが0で潰されていた。正しい値に直すと普通に起動できる。
Uploader
"php without start tag"みたいな怪しい英語でググりまくったら「PHP7.0で<% %>とか<script language="php"></script>で囲われた範囲をPHPとして解釈するのやめるよ」的な公式のリファレンスが出てきた。
ご丁寧にHTTPヘッダでPHP5.xを使っていることを教えてくれていたので怪しいPHPコードを<script language="php"></script>で囲ってアップロードした。
lsしただけでは見つからず結局/flagにFLAGがあった。
stream...
pcapngが渡されるのでWiresharkでpcapにしてからNetworkMinerに食わせるとストリーミング再生している動画のデータ?がファイルとして取り出せる。
ただそのまま拡張子をwmvとかにしても再生できないので、適当にwmv形式のファイルヘッダを漁ったところ(案外面倒)30 26 B2 75 8E 66 CF 11 A6 D9 00 AA 00 62 CE 6C
で始まる(参考)ことがわかったのでそこが先頭になるようにデータを削る。
しかしこれだけだと動画の再生時間?かなにかを示すフィールドが0のままで再生できない(一応0xFFとかで潰してみたりもしたけどダメだった)。
結局ffmpegに食わせてaviとして出力、普通に再生してFLAGゲット。
MQAAAA
渡された文字列をBase64でデコードするとよくわからないファイルが出来上がる。
中身を見てみると#@~
で始まって#~@
で終わっているのに規則性がありそうな気がするんで#@~
でググったらエンコードされたVBScript?らしいことがわかった。
デコードする方法もあるらしいんだけど適当に拡張子を.vbeにして実行したらFLAGが出た。
おわり
最高で100pt問しか解けなくてつらい
まあ自分が勉強不足なだけで全体的によかったと思うので次回以降期待してます
強力なワードアートの作り方
--------------------------------------------------------------------
2018/12/09 追記
Office 365を使っている場合この記事の手法は使えなくなりました。
以下の記事で対応手法を書いたので併せてご覧下さい。
--------------------------------------------------------------------
今までに何度かTwitterで流したこともあるのですが、鍵垢だし流れちゃうしで残らないのでせっかくならここに書いておくことにします。
準備
- 最低限必要な物としてOffice 2010/2013(以下2013で進めます)
リボンインターフェースになったOffice2007からかはわかりませんが、少なくとも2013では普通にワードアートを作ろうとするとこのようなすっきりしたデザインしか出てこず、火力が下がったと思われがちです。
しかし後述するように実際の火力は2013の方が遙かに上です。騙されないようにしましょう。
- 表現力のあるフォント
MSOfficeを入れると同時にインストールされる創英角ポップ体は話題になるだけあって高火力です。
しかし、個人的には創英角ポップ体を使うのは安易であると考えており、なるべくならMSゴシックとか何も考えてないフォントでワードアート自体の火力で戦っていきたいと思っています。
制作
ここからは実際にワードアート制作の手順を追っていきます。
- ワードアートにしたい文字列を考える
今回は「インターネット」とします。 - Microsoft Office 2013のWordを起動する
ExcelとかPowerPointでもできるかなと思ったらダメでした。Wordで作ってコピペしましょう。 - Wordに考えた文字列を入力し、マウス等でワードアートにしたい部分を選択する
-
選択された状態でAlt+I → P → Wの順でキーを押す
ここが最も重要な手順です。このコマンドを入力することで2003時代の強力な仲間達を呼び出すことができます。
今回は適当にレインボーカラーのアイツを選択しました。 -
フォントを選択し、必要に応じて太字や斜体スタイルを適用する
このあたりが町内会チラシ感を左右します。ただし必須ではなく、これらのスタイルを使用しなくてもこの後のステップで十分挽回が可能です。 - 「OK」をクリックしワードアート召喚
これでワードアートが出来ました。しかしここまでなら2003を使えばワンタッチで作れるので2013を買う意味がありません。ここからが本番です。 -
「ワードアート ツール」→ 「3-D効果」を選択し、ヤバそうなエフェクトを選ぶ
新Officeの神髄発揮です。3D効果をフルに活用してあなただけの激しいワードアートを作りましょう。3-D効果選択ドロップダウンの横にあるボタンを利用して自由に回転させることが可能です。
その他、奥行の長さや表面の質感選択などで思うままに表現しましょう。
- (必要に応じて)「文字列の折り返し」を「外周」に設定する
この手順は必須ではありませんが、「外周」などに設定を変更しないままペイントソフト等にワードアートを貼り付けると背景が透過せず、解像度も低くなってしまいます。
ただし、そこを逆手に取って町内会チラシ感を表現するのもアリです。
-
ペイントソフトに貼り付けて画像化する
これで完成です。実際に制作したワードアートを以下に示します。
おわりに
いかがでしたでしょうか?ワードアートなら古いのが最強みたいな風潮がありますがそうではないということを感じて頂ければ幸いです。
「ワードアートの為に金は出せない!!俺はフリーソフトで戦う!!」という向きもあるでしょうが、私が確認した限りではLibreOffice, OpenOffice, Google Docs等の無料で使えるOffice互換ソフト/サービスでは高火力のワードアートを作ることは出来ません。
唯一無償ソフトウェアの組み合わせで同程度の火力を発揮することができたのはString MQObject Builder + Metasequoiaでしたが、手間が恐ろしくかかる上、強力なテクスチャを手に入れるのが難しいため、無一文だけどどうしても強力なワードアートが必要という人以外にはおすすめできません。
解説は以上になりますが、某某某某某某と呼んでいた某CTFイベントの公式アカウントで実際に私が作り方を指導したアイコンを使用していたりするので是非ご覧ください。
それでは、よいワードアートライフをお過ごしください。