タグ

XSSに関するt_43zのブックマーク (20)

  • クロスサイトスクリプティング対策 ホンキのキホン - 葉っぱ日記

    稿はCodeZineに2015年12月28日に掲載された記事の再掲となります。 クロスサイトスクリプティング(XSS)は、古くから存在し開発者にもっともよく知られたセキュリティ上の問題のひとつでありながら、OWASP Top 10でも2010年に引き続き2013年でも3位と、未だに根絶できていない脆弱性です。 記事では、Webアプリケーションの開発においてXSSを根絶するために必要な対策の基気でお伝えします。 はじめに OWASPでは開発者に向けたセキュリティ対策のためのドキュメントやチートシートを多数用意しており、XSSへの対策としても「XSS (Cross Site Scripting) Prevention Cheat Sheet」というドキュメントが用意されています。 ただし、このXSS Prevention Cheat Sheetはシンプルなルールを定めたチートシートで

    クロスサイトスクリプティング対策 ホンキのキホン - 葉っぱ日記
    t_43z
    t_43z 2016/01/07
  • XSS (Cross Site Scripting) Cheat Sheet

    XSS (Cross Site Scripting) Cheat Sheet Esp: for filter evasion By RSnake Note from the author: XSS is Cross Site Scripting. If you don't know how XSS (Cross Site Scripting) works, this page probably won't help you. This page is for people who already understand the basics of XSS attacks but want a deep understanding of the nuances regarding filter evasion. This page will also not show you how to

  • ツッコミ hideden (2009-08-06 12:45) - 徳丸浩の日記 - i-mode2.0セキュリティの検討 - 携帯JavaScriptとXSSの組み合わせによる「かんたんログイン」なりすましの可能性

    SQLインジェクション対策はおすみですか? 開発開始時点からのコンサルティングから、公開済みWebサイトの脆弱性検査、 脆弱性発見後の適切な対策まで ●携帯JavaScriptとXSSの組み合わせによる「かんたんログイン」なりすましの可能性 このエントリでは、携帯電話のブラウザに搭載されたJavaScriptと、WebサイトのXSSの組み合わせにより、いわゆる「かんたんログイン」に対する不正ログインの可能性について検討する。 5月28にはてなダイアリーに書いた日記「i-mode2.0は前途多難」にて、今年のNTTドコモの夏モデルP-07AにてJavaScript機能が利用停止されたことを指摘した。同日付のNTTドコモ社のリリースによると、「ソフトウェア更新に伴い、高度化した機能の一部をご利用いただけなくなっていますが、再びご利用いただけるよう速やかに対処いたします」とあったが、それ以

  • XSSはそのサイトを信頼している人が多いほど脅威になりうる - ぼくはまちちゃん!(Hatena)

    はい! こんにちは! 今日は珍しくセキュリティについて一言です! タイトルにある通り、 XSSはそのサイトを信頼している人が多いほど脅威になりうる ってことなんだけど…。これだけだと、あたりまえっぽいよね。 まずXSS脆弱性ってなに? って人のために簡単に説明しちゃうと、これ サイトを作った人以外の人でも、好きなスクリプトを実行できちゃう状態 ってことなんだよね。 でもよく考えてみてほしい。 スクリプトが実行できる。へんなスクリプトが実行されちゃうかもしれないページ。 これって別に、「ふつうにスクリプトを許可されている、そこらへんのブログやホームページと同じ」じゃない? いや、微妙に違うかな。 違う点はひとつ。 スクリプトを埋め込めるのが「サイトの管理者オンリー」なのか「誰でも」なのかの違いがあるんだよね。 … じゃあ、「名もなきサイトの管理者」と「誰でも」の違いってなんだろう? なんだろ

    XSSはそのサイトを信頼している人が多いほど脅威になりうる - ぼくはまちちゃん!(Hatena)
  • Wicketで入力フォームの情報を受け取る時の問題

    Wicketを学習するために書いたブログです。メモ帳がわりに学習した内容を記述していきます。 単なる情報の羅列だけにならないように、試した結果や感想を、自分の言葉で記録していきます。 どうすればよいか分からなくなってきた。。。 問題点 テキストエリアなどの入力フォームにHTMLタグなどを入力 サーバサイドでgetModelObjectAsStringで受け取る HTMLエスケープされている。つまり<→&lt;のような変換が行われた状態で取得される 気に入らないのは、入力データを取得する時にエスケープされてしまう点。いわゆるサニタイジングが入力データに対して行われている。PHP(は良く知らないが)に似たような機能があったと思う。こちらのセキュリティガイドラインでもあるように出力時に行うべきだと思う。 セキュリティガイドライン サニタイジングのタイミングは入力データのチェック時ではなく、HTM

    Wicketで入力フォームの情報を受け取る時の問題
  • printenv at xss-quiz.int21h.jp

    printenv at xss-quiz.int21h.jp Your IP address: 133.242.243.6 () NameValue HTTP_ACCEPT*/* HTTP_CACHE_CONTROLno-cache HTTP_CONNECTIONclose HTTP_HOSTxss-quiz.int21h.jp HTTP_USER_AGENTHatenaBookmark/4.0 (Hatena::Bookmark; Analyzer) QUERY_STRING REMOTE_ADDR133.242.243.6 REQUEST_METHODGET REQUEST_SCHEMEhttp REQUEST_URI/

  • 第8回 クロスサイトスクリプティング対策の落とし穴 | gihyo.jp

    今回は熟練したWebアプリ開発者なら常識のクロスサイトスクリプティング対策の落とし穴を紹介します。 JavaScriptを排除しているつもりで排除に失敗?! 最近はSanitize(サニタイズ)という言葉の代わりにValidation(検証)という言葉をよく聞くようになったと思います。Sanitizeの意味を辞書で調べると「汚れている物をきれいにすること」とされています。この意味の通り汚れた変数をきれいにして使えば安全に利用できるとする考え方に基づくのがサニタイズ手法です。典型的な例は、「⁠テキストを出力する前に"<"と">"を取り除く」方法があります。 例1 "<"と">"をereg_replaceで取り除く $safe_text = ereg_replace($_GET['text'], '[<>]', ''); この$safe_textを <a href="/script.php?t

    第8回 クロスサイトスクリプティング対策の落とし穴 | gihyo.jp
  • Atom や RDF を利用したXSS - 葉っぱ日記

    Internet Explorer の悪名高い Content-Type: 無視という仕様を利用すると、Atom や RDF/RSS を利用してXSSを発生できることがあります。条件的に対象となるWebアプリケーションは多くはないと思いますが、それでもいくつか該当するWebアプリケーションが実在することを確認しました。以下の例では Atom の場合について書いていますが RDF/RSS でも同様です。 例えば、http://example.com/search.cgi?output=atom&q=abcd という URL にアクセスすると、「abcd」という文字列の検索結果を Atom として返すCGIがあったとします。 GET /search.cgi?output=atom&q=abcd Host: example.com HTTP/1.1 200 OK Content-Type: ap

    Atom や RDF を利用したXSS - 葉っぱ日記
  • 第7回 いまさらながらクロスサイトスクリプティングの基礎の基礎 | gihyo.jp

    今回はWebアプリケーションを作ったことがない方でも分かるようクロスサイトスクリプティング脆弱性を解説します。 クロスサイトスクリプティングとは? 初めてクロスサイトスクリプティングと聞いて、どのような問題なのかすぐに理解できる人はいないと思います。サイトAに記述されたJavaScriptプログラムがサイトB上で実行されるために発生することが問題とされたので、「⁠サイト間をまたがるスクリプトの実行」問題として、クロスサイトスクリプティング(XSS)と名前が付けられました。この命名では直感的に分かりづらい、サイト間にまたがらずHTMLメールなどにJavaScriptを挿入する攻撃でも同じ効果が得られることから、「⁠JavaScriptインジェクション」とも呼ばれるようになっています。 図1 簡単なクロスサイトスクリプティング 例1 簡単な直接攻撃 掲示板サイトに投稿されたデータをエスケープ処

    第7回 いまさらながらクロスサイトスクリプティングの基礎の基礎 | gihyo.jp
  • 第1回 Ajaxとクロスサイトスクリプティング | gihyo.jp

    初回はWeb2.0の中核技術ともいえるAjaxを見ていきたいと思います。 Ajaxのセキュリティについて考えていきますが、その前にAjaxについて簡単におさらいしてみましょう。 AjaxとはAsynchronous JavaScript XMLの略であり、一言で言えばJavaScriptとXMLを使って非同期に通信するということです(XML以外の形式が使われることも多くなりました⁠)⁠。通信を非同期にすることで、何か処理をする場合にいちいち待たなくても次の処理に移ることができます。その結果、ユーザを待たせずに多くの処理を行えるようになりました。また、画面全体を再読み込みする必要がなくなったことも、使い勝手の向上した理由です。 Ajaxの動作 それでは簡単なサンプルコードでAjaxの動作を見ていきたいと思います(リスト1⁠)⁠。これらはAjaxの入門サイトや書籍で一番最初に出てくるコードです

    第1回 Ajaxとクロスサイトスクリプティング | gihyo.jp
    t_43z
    t_43z 2007/06/27
  • XSSを削除し、非推奨の要素を変換! - HTMLフィルタ「HTML Purifier 2.0」 | エンタープライズ | マイコミジャーナル

    20日(米国時間)、HTML Purifierの最新版となる「HTML Purifier 2.0」が公開された。HTML PurifierはPHPで開発されたHTMLフィルタライブラリ。GNU LESSER GENERAL PUBLIC LICENSE Version 2.1のもと、オープンソースソフトウェアとして公開されている。標準仕様に準拠しているHTMLデータをフィルタリングするためのライブラリで、XSSなど危険性のあるコードを削除する際に役立つほか、BBCodeに対する代替ライブラリとしても活用できる。 2.0における主な変更点はアーキテクチャに対して2つの大きな変更が加えられた点にある。まず推奨されていない要素を標準推奨されているものに変換するTidyが変更されており、新しい要素や属性を簡単に作成するためのAdvanced APIにも変更が加えられている。以前のバージョンから2.

  • XSS攻撃対策用のライブラリ - DeXSS 1.0登場 | エンタープライズ | マイコミジャーナル

    米XeroxのLeigh L. Klotz, Jr.氏は26日(米国時間)、DeXSSの最新版となるDeXSS 1.0.0を公開した。DeXSSはJavaで実装されたSAX2パーサ。XSS攻撃対策を実施するためのライブラリとして開発されている。成果物はAcademic Free License ("AFL") v. 3.0のもと、オープンソースソフトウェアとして公開されている。 ユーザからのテキスト入力を受け付けるダイナミックなサイトでは、XSS(Cross Site Scripting)のような攻撃を受ける可能性がでてくる。DeXSSはHTMLパーサであるTagSoupを活用することでHTMLを読み込んでSAX2イベントを生成。スクリプトや属性を削除するための機能を提供する。 同ライブラリではフィルタの形式でイベントに対する処理を記述。また同梱されている機能を使って文字列変換などを実施で

  • インジェクション系攻撃への防御の鉄則

    前回までは,主にクロスサイト・スクリプティングのぜい弱性とその対策について解説してきた。最終回となる今回は,クロスサイト・スクリプティング以外の「インジェクション系」ぜい弱性について解説する。具体的には,SQLインジェクション,OSコマンド・インジェクション,HTTPヘッダー・インジェクション,そしてメールの第三者中継である。 SQLインジェクション対策にはバインド変数の利用が最適 まず,SQLインジェクションから見ていこう。対策には二つの方法がある。一つは,SQLの「バインド変数(注1)」を使う方法である。バインド変数の書式はプログラミング言語によって異なるが,一例として,Perlを使った場合に,パスワード認証のSQLをバインド変数で書き換えた例を示す(図1)。 (注1) 「準備された文(Prepared Statement)」というのがJIS SQLでの用語だがあまり普及していない。バ

    インジェクション系攻撃への防御の鉄則
  • まだまだあるクロスサイト・スクリプティング攻撃法

    前回はクロスサイト・スクリプティングのぜい弱性を突く攻撃の対策としてのHTMLエンコードの有効性を述べた。ただ,HTMLエンコードだけではクロスサイト・スクリプティング攻撃を完全に防御することはできない。そこで今回は,HTMLエンコードで対処できないタイプのクロスサイト・スクリプティング攻撃の手口と,その対策について解説する。 HTMLエンコードで対処できない攻撃には,次のようなものがある。 タグ文字の入力を許容している場合(Webメール,ブログなど) CSS(カスケーディング・スタイルシート)の入力を許容している場合(ブログなど) 文字コードを明示していないケースでUTF-7文字コードによるクロスサイト・スクリプティング <SCRIPT>の内容を動的に生成している場合 AタグなどのURLを動的に生成している場合注) 以下では,HTMLタグやCSSの入力を許容している場合と,文字コードを明

    まだまだあるクロスサイト・スクリプティング攻撃法
  • 対策遅らせるHTMLエンコーディングの「神話」

    クロスサイト・スクリプティングという言葉は元々,WebアプリケーションのHTMLエンコード漏れなどを利用することによって第三者にJavaScriptを実行させる手法を指す。広義では,HTMLのエンコードによる画面改変などを含むこともある。 前回述べたように,クロスサイト・スクリプティングのぜい弱性はWebアプリケーションに見付かるぜい弱性の半分以上を占める。数年前から指摘されているにもかかわらず,一向になくならない。その理由として,クロスサイト・スクリプティング対策あるいはHTMLエンコード注1)に対する「神話」があり,正しい対策の普及を遅らせているように思う。その「神話」の数々について説明しよう。 注1)実体参照(entity reference)というのが正式だが,あまり普及していない用語なので,HTMLエンコードという用語を用いる 「すべからくHTMLエンコードすべし」が鉄則 HTM

    対策遅らせるHTMLエンコーディングの「神話」
    t_43z
    t_43z 2007/04/10
    「注1)実体参照(entity reference)というのが正式だが,あまり普及していない用語なので,HTMLエンコードという用語を用いる」
  • はびこる「インジェクション系」のぜい弱性:ITpro

    Webアプリケーションのぜい弱性を示す用語として,クロスサイト・スクリプティング,SQLインジェクションといった言葉の認知度はかなり高まった。ブログ・サイトなどでも活発に議論されている。しかし,Webサイトの実態はどうだろうか。 筆者の所属する京セラコミュニケーションシステムでは昨年(2006年),ぜい弱性診断を実施したWebサイトの統計情報「2007年版 Webアプリケーションぜい弱性傾向」を発表した。これによると,パソコン向けWebサイトの48%に致命的なぜい弱性が見つかった。このうちワースト1位はクロスサイト・スクリプティングで56%,2位はSQLインジェクションで11%と,どちらもインジェクション(注入)系のぜい弱性。これらのぜい弱性を持った危険なサイトは依然として存在するのが実情である。 これらWebアプリケーションのぜい弱性があまりなくならない理由はいくつかあるが,以前は「ぜい

    はびこる「インジェクション系」のぜい弱性:ITpro
    t_43z
    t_43z 2007/04/03
    「入力時の検査は本質的ではない,最適解は出力時のエスケープ」
  • 第1回 悪意のJavaScriptで情報が漏えい:ITpro

    Web 2.0という言葉で総称される新たなインターネット時代。Webサイトやエンドユーザーに仕掛けられる攻撃もまた,2.0と呼ぶべき進化を遂げようとしている。攻撃者はWeb 2.0の中核技術であるJavaScriptを悪用してブラウザを狙う。従来の脅威対策は全く通用しない。今この瞬間にも,エンドユーザーは個人情報を盗まれる危険にさらされている。 ブログ/SNSなどユーザー発信型のサイト,Ajax,RSS──。華やかさがクローズアップされるWeb 2.0。ところがその裏側では,エンドユーザーに情報盗難などの危険が広がっている(図1)。インターネット・バンキングやEC(電子商取引)サイトのユーザーIDやパスワード,クレジットカード番号はもちろん,企業内のシステムにアクセスするためのパスワードや,パソコンに読み込んだ機密文書データなど,対象はあらゆる情報だ。 2006年12月末,米国のセキュリテ

    第1回 悪意のJavaScriptで情報が漏えい:ITpro
  • それ Unicode で

    UTF-7 を使ってスクリプトを記述 +ADw-SCRIPT+AD4-alert(\'XSS\');+ADw-+AC8-SCRIPT+AD4- IE は、文字エンコーディングが不明で UTF-7 っぽい文字列があれば、自動判別で UTF-7 となる。

  • マルチバイトの落とし穴 − @IT

    ブラインドSQLインジェクションも不必要情報の脆弱性も覚えた星野君。だけど覚えないといけないことはまだまだありそうです。今日も赤坂さんといっしょにお勉強。 「はい、これでクロスサイトスクリプティングやってみせて」赤坂さんがそういって見せてくれた勉強用のWebアプリケーション、あれ、見たところ完ぺきなんですが…… 高橋さん 「どうよ?」 星野君 「え……。どうって何がですか?」 高橋さんは唐突に会話を始めることが多い。大抵の場合、星野君には何の話か分からない。 高橋さん 「こないだ赤坂さんとWebアプリの検査したでしょ。どうかなって」 星野君 「どう……っていうか、なんか難しい感じでした。簡単なのはすぐに見つけられると思うんですけど……」 高橋さん 「ふーん……」 高橋さんはしばらく考え込んだ後、赤坂さんに声を掛けた。 高橋さん 「ねぇ、赤坂さん。いまって暇?暇だよねー?」 赤坂さん 「いや

    マルチバイトの落とし穴 − @IT
  • 1