coinslt#0 tkbctf3 miocatができるまで
DESCRIPTION
coinsLT#0で発表したもの。tkbctf3においてWeb250として出題された"miocat"に関する発表。 .NET Frameworkでの文字列比較におけるロケールの扱いの仕様を題材にしたものだったが、実装の甘さや.NET/Monoの挙動の違いにより非常に簡単な問題になってしまった。その原因などを紹介する。TRANSCRIPT
tkbctf3miocatができるまで
あるいはNET FrameworkがWindows向けであることを(今更)確信するに至るまで
Mei Akizuru (maytheplic)
自己紹介
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
自己紹介
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
darr家族ですbull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
ここになにかあった
darr家族ですbull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
bull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
darr小傘です
ここに小傘ちゃんがいた
そもそもCTFってなに
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
そもそもCTFってなに
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
弟です 嘘です
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
自己紹介
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
自己紹介
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
darr家族ですbull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
ここになにかあった
darr家族ですbull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
bull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
darr小傘です
ここに小傘ちゃんがいた
そもそもCTFってなに
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
そもそもCTFってなに
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
弟です 嘘です
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
自己紹介
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
darr家族ですbull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
ここになにかあった
darr家族ですbull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
bull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
darr小傘です
ここに小傘ちゃんがいた
そもそもCTFってなに
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
そもそもCTFってなに
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
弟です 嘘です
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
darr家族ですbull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
ここになにかあった
darr家族ですbull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
bull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
darr小傘です
ここに小傘ちゃんがいた
そもそもCTFってなに
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
そもそもCTFってなに
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
弟です 嘘です
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
darr家族ですbull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
bull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
darr小傘です
ここに小傘ちゃんがいた
そもそもCTFってなに
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
そもそもCTFってなに
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
弟です 嘘です
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
bull 秋弦めい (Mei Akizuru)
bull maytheplic autchord
bull coins11AC
bull RubyとかCとか触ります
bull 最近Fとかやりたい機運
bull 自然言語処理(したい)マン
bull 小傘ちゃんかわいい
darr小傘です
ここに小傘ちゃんがいた
そもそもCTFってなに
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
そもそもCTFってなに
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
弟です 嘘です
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
そもそもCTFってなに
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
そもそもCTFってなに
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
弟です 嘘です
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
そもそもCTFってなに
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
弟です 嘘です
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
弟です 嘘です
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
CTF Capture The Flag
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
CTF Capture The Flag
bull コンピュータセキュリティに関する技術を競う
bull バイナリと(解析的な意味で)お友達になったりパケットと(解析的な意味で)お友達になったりSQLと(インジェクション的な意味で)お友達になれます(あくまで一例です)
bull 攻撃の手法を知ることで防御の仕方を学ぶ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
ldquomiocatrdquoの概略
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
miocatbull 「みおきゃっと」と読みます
bull のWeb 250点問題
bull 某筑波大生が生み出した伝説の授業支援アプリケーションにちなんで命名
bull けいおんキャラの中では澪ちゃんがいいです黒髪ロングは正義だよいいね
ちなみに元ネタgithubで公開されててビビった
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
どんな問題 (1)bull 指示されたURLを見に行くと謎のフォームがある
bull 謎のフォームにURLを入れると そのURLの内容を取得して表示する
bull localeというパラメータを受け付ける
bull localeを指定するとそのlocaleの元で指定されたURLの内容を取得
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
どんな問題 (2)bull フォームにrdquofilehogehelliprdquoとか入れても弾かれる
bull 内部でrdquoFILErdquoで始まるかチェックしているこのチェックがロケール依存
bull ldquolocale=tr-TRrdquoとしてrdquofileldquoとするとアクセスが通る()
bull あとはetcpasswdとか読んでください
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
スコアサーバーを眺めて私は思った
なんか解かれるのさすがに早すぎない
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
リクエストの内容を見て私は思った
なんか意図と異なる方法で解かれている気がする
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
まぁ今から問題変えるわけにもいかないしhelliphellip
そして放置された
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
実際に何が起こったか
ここから先はtkbctf3が終わった後の話
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
tkbctf3 Write-up - kusano_kの日記
httpdhatenanejpkusano_k201405051399302285
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
ただのディレクトリトラバーサルに
なってる
これで250点はあまりにもボーナス問題であるhelliphellip
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
原因bull 受け取ったアドレスをそのままWebClientDownloadStringに渡していた (これは半ば意図的ではある)
bull DownloadStringが`httphellip`という形式のURLを受け付けてそれを`filehttphellip`と見なしてしまう
bull そしてそのローカルファイルを返してしまう
bull 本番ではmiocatをMonoランタイムで動かしていた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
犯人はGetFullPath
bull PathGetFullPath(String)は名前の通りのメソッド
bull DownloadStringが呼び出す
bull URLとしての解析に失敗した場合に呼ぶ
bull `httphoge`は不正なURL
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
犯人はGetFullPath
bull GetFullPathにrdquohttpmofnyardquoを渡すとhelliphellip
bull NETでは失敗する(URI formats are not supported)
bull Monoでは成功する()
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
Mono vs NETbull NET FrameworkとMonoで挙動が違っていた
bull NET Frameworkは`httpetcpasswd`を ファイルパスとして見なさない(URI形式として認識して例外を投げる)
bull Monoは`httpetcpasswd`を妥当なファイルパスとして見なす
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
結果helliphellipbull `httpetcpasswd`は`filehttpetcpasswd`になり
bull カレントディレクトリを基準にフルパスになり
bull homemiocathttpetcpasswd
bull homeetcpasswd
bull ``の数によっては無事`etcpasswd`に辿り着いてしまうのでした
完
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
そんなわけで
NET Frameworkと挙動が違うじゃんかよーhelliphellipと私はバグレポートを投げたのでした
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
バグレポートBug 19603 ‒ PathGetFullPath returns the full path for URI
httpsbugzillaxamarincomshow_bugcgiid=19603
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
返事が来たあと状態がRESOLVED INVALIDになってた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
返事を簡単に訳してみた
ldquohttptestcomrdquoはUnixでは正しいファイル名だからだ
これはNETとかいうUnixのことをあまり考えてないブツを使ってることから来る問題だだからその問題(ディレクトリトラバーサルが起こるかもしれない等)には自分のコードで対処する必要がある
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
うーんhelliphellip
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
ぐうの音も出ねえ
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
まとめ
bull 自己紹介
bull そもそもCTFってなに
bull ldquomiocatrdquoの概略
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
まとめ
bull 自己紹介
bull そもそもCTF
bull ldquomiocatrdquo
bull ldquomiocatrdquoでは何が起きたのかそしてどうなったのか
bull まとめ
もくじ
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
NETとMonoの差異
bull 特にディレクトリ操作パス操作はWindowsとUnixでだいぶ異なるので気を付ける
bull Mono on Windowsでも挙動はMono
bull 「WindowsとUnix」ではないので注意
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
Webアプリとして
bull ユーザーの入力をそのまま受け付けるな
bull 当たり前だけど忘れがちですね
bull 時にWAFが上手くやってくれたりするけど
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
CTF(の運営)的に
bull 問題のレビューはちゃんとやれ
bull 時間を取ってやれ
bull 問題の完成が問題公開直前なのは論外だ
本当にすいませんでしたhelliphellip
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
˙˙最後に˙˙
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた
ルールとマナーを守って 楽しくデュエルCTFしよう
ここに遊戯がいた