SECCON CTF 2023

今回はwebとcryptoを1問ずつ解くことができました。 webBad JWT JWTの署名処理に問題があり、secret無しに検証を通るsignatureを作成できました。 const algorithms = { hs256: (data, secret) => base64UrlEncode(

SECCON Beginners CTF 2023

毎回Webをメインに解いていましたが今回はあまり解けなかったのでmiscばかり解いていました。 (double checkは前回調べた内容からJWTの生成まではできていましたがプロトタイプ汚染についてすっかり忘れてしまっていて数時間かけて何も進みませんでした) YARO 正規表現でルールを作成できましたがリクエスト数を少なくしたかったので以下の関数を作成して一度で一文字調べて解きました。 const template = `rule flag { strings: $flag = /__T_

WindowsでcuDNN v8.8.1を使うためにzlibをビルドする

cuDNNのv8.8.1をインストールしようとしたところ、zlibのインストールも必要で、ビルド手順が書かれていなかったのでメモです。 CUDA、cuDNNのダウンロード、インストール、ファイルの配置や環境変数の設定は終わっている前提です。 また、以下のソフトウェアを使用します。 Visual

SECCON CTF 2022

今回は時間が取れなかった事もありますが私は前回と同じくweb1問のみ解きました。 1問しか解いていないのに189/726位でしたwebskipinx 去年のgormと同様にライブラリの仕様を確認することで解ける問題でした。 nginxはクエリ文字列にproxy=nginxを追加し、本体ではproxyにnginxがあればアクセスを拒否していました。 nginxのコンテナしかportが公開されていないので回避してアクセスすることは難しそうで、このproxyのクエリの処理を通り抜ける必要がありそうでした。 Expressを使用してクエリ文字列を取得しているのでexpressのドキュメントを確認し、これはデフォルトではnodejsのquerystringを用いてパースしていました。 Express

ISUCON12-予選に参加しました

最終スコアはFailedしたことで0点でした。 準備前回と異なり7月になってしまったことで準備には全く時間を割けませんでした。 当日10:00 ~ 11:00 pprofの導入や自動デプロイの設定を行いました。 事前に何もしていませんでしたが前回に参加したときの記憶を頼りに結果として前回と変わらない時間かかりました。 11:10~13:00

SECCON Beginners CTF 2022

Utilmain.goを確認すると以下のように渡されたアドレスをそのまま文字列として結合してshに渡しているのでCommand Injectionが可能であり、ここにアドレスの後にflagを取得するコードも含めて渡せば取得できます。 flagは以下で書き込まれているので RUN echo "ctf4b{xxxxxxxxxxxxxxxxxx}" >

MastodonでGroongaを利用して全文検索する

MastodonにはElasticsearchを利用した全文検索を行う機能があります。 しかし、ElasticSearchにはある程度メモリが必要、日本語で使うには別に設定が必要で面倒、デフォルトでは自分の投稿しか検索できない、等のデメリットがありました。 GroongaをPostgreSQLから利用可能になるPGroongaというものもありますが、こちらは全ての投稿にindexを貼ってしまうので無駄が増える、PostgreSQLを扱うDBサーバーに負荷がかかってしまう、といった問題がありました。 そのためにGroongaのサーバーを別のサーバーに配置し、それを利用して全文検索を行えるようにしました。

SECCON CTF 2021

welcomeを除きチームで2問しか解けませんでした webVulnerabilities postされたjsonを元にクエリを作成して取得したDBの情報が返却され、jsonにはNameの指定が必須で、NameはflagになっていたのでNameで絞り込んで取得することはできませんでした。 gormが使われていて、Nameの中身を空にできればgormによって無視されるので別の条件を使うことができそうでした。 jsonのチェックはNameに対しては行っていましたが併せてnameも指定すると、json["Name"]で空でないかのチェックを通して、gormには中身が空のnameを渡すことができました

ISUCON11-予選に参加しました

ISUCONという面白そうなイベントが存在することを知ったので参加してみました。 最終スコアは45870点で全体で85位、学生で10位でした。 準備10と9の予選問題を触ってみました。 ベンチマークまで含めて一台で行ってしまったのでDB分割等の練習はできませんでしたが、何を参考にチューニングを進めるか程度は決定できました。 練習時間もそれぞれ半日程度しか取れなかったこともあり、SQLにインデックスを少し貼る以外はアプリケーションのチューニングをメインにしてDB等の入れ替えは避けたほうが良さそうだと感じていました。 また、GitHubで管理してwebhookで簡単な自動デプロイを組むことも決めました。 当日チームメンバーとの連絡にはDiscordのVCを利用していたため参考にできる記録がGitしかなくズレがあるかもしれません。 10: