ltっぽくブログを書いてみるテスト

17

Click here to load reader

Upload: yuji-kazan

Post on 03-Jul-2015

3.017 views

Category:

Documents


0 download

DESCRIPTION

@が付いたURLって面白いですね

TRANSCRIPT

Page 1: LTっぽくブログを書いてみるテスト

LTっぽくブログを書いてみるテスト

山本洋介山

@yousukezan

Page 2: LTっぽくブログを書いてみるテスト

自己紹介

• カリスマノーワーカー

• たまに原稿とかも書いています

• 普段の仕事はブラウザ間のドラッグ&ドロップ

• だいたいは寝てます

Page 3: LTっぽくブログを書いてみるテスト

普段の仕事のドラッグアンドドロップ

• 場所をミスるとエラー

Page 4: LTっぽくブログを書いてみるテスト

慌てて戻ると入力してたページが消える

• 入力してたページと違う!!

Page 5: LTっぽくブログを書いてみるテスト

Firefoxのバグ!?

• こいつは困った

• 入力してたページが消えるのは困る

• ミスすんなって話は聞かない

• どんなときに起きるのか調査しないと!

Page 6: LTっぽくブログを書いてみるテスト

いろいろ試す

• bogusならhttp://www.bogus.jp/を開く

• bogus jp(半角空き)だとエラー!!!!

• http://bogus.jp/とかちゃんとしたURLをドラッグアンドドロップすればそこが開く

• http://bogus.jp/だとhttp://http.com/を開く

Page 7: LTっぽくブログを書いてみるテスト

ここまでは前振り

マジで!?

Page 8: LTっぽくブログを書いてみるテスト

たまたま@の入ったURLを試す

• http://[email protected]/

みたいなURL

• @の付いたURLはRFC的には全くもって正しい

• @の前は認証に使う文字列なのでbogus.jpへアクセス

• FirefoxだとこのURLへのアクセスはフィッシングの疑いがあると警告がでる

• Chrome的にはこのURLは素通し

• IEは読まない

Page 9: LTっぽくブログを書いてみるテスト

ややこしいURL

• http://[email protected]/みたいにするとややこしい

• とはいえURL的にはhttp://bogus.jp/に行くのが常識でしょ

• それはともかく前の方のドメインに向かう前提のプログラムとかあるかもね

Page 10: LTっぽくブログを書いてみるテスト

前の方のドメインに向かう前提のプログラムを考えてみた

• <?php$base="http://bogus.jp";echo '<script src="'.htmlspecialchars($base.$_GET["file"]).'"></script>';?>

Page 11: LTっぽくブログを書いてみるテスト

間抜けなプログラム

• http://bogus.jp/scriptsrcxss.php?file=/base.js

みたいに外部JSを読み込む間抜けなプログラム

• htmlspecialchars でXSS対策も万全なはず(いい加減)

• 実際には存在しない…はず

Page 12: LTっぽくブログを書いてみるテスト

スクリプト読み込めるんじゃね?

• http://bogus.jp/[email protected]/x

• みたいなURLでhttp://packetmonster.com/x

が読み込まれるんじゃね?

Page 13: LTっぽくブログを書いてみるテスト

警告もなくスクリプトを読み込む

Page 14: LTっぽくブログを書いてみるテスト

なぜ?

• 生成されるURLが<script src="http://[email protected]/x"></script>となるんだからhttp://bogus.jp/xが読まれてあたりまえ。何か問題でも?• 残念ながら/が入ると読まれないので注意• http://packetmonster.com/php/@bogus.jp/xみたいなのはダメ

Page 15: LTっぽくブログを書いてみるテスト

MozillaとGoogleに聞いてみた

• こんなURLで警告なく読み込めるのってブラウザが悪くね?

• 返信:プログラムが悪いんじゃクソボケ!(意訳)

• これもまあ想定通り(URL的には正しいもんね)

Page 16: LTっぽくブログを書いてみるテスト

結論

• こんな間抜けなコード書く人はいないと思いますが、こんなことも起きるんですね

• 実際にこんなプログラムがあると面白いので誰か教えてください

• phperにとっては常識的なのかもしれません(;´Д`)

Page 17: LTっぽくブログを書いてみるテスト

終わり

• LTっぽくブログを書いてみました

• 最後までお読みいただきありがとうございました