タグ

ブックマーク / blog.ts5.me (8)

  • JavaScriptの文字列リテラルでXSS - T.Teradaの日記

    たまに以下のようにJavaScriptの文字列リテラルに値が入るアプリを見ることがあります。 <script> var foo="●"; ... </script> 値は「●」の箇所にHTMLエスケープされて出力されます(下の方の例も同じ)。 こんなケースでどうXSSするか?という話です。 簡単にXSSできるケース 以下のパターンだとXSSするのは簡単です。 <script> var foo="●"; var bar="●"; ... </script> ?foo=\&bar=-alert(123)//のような値を与えるだけです。 難しいケース 次はこんなパターンを考えます。 <script> var foo="●"; var bar="●"; ... </script> こうなると難易度はぐっと上がります。というよりも、ほとんどの場合はXSSできません。 しかし、状況次第ではXSSできる

    JavaScriptの文字列リテラルでXSS - T.Teradaの日記
  • JavaScriptの文字列リテラルでXSS - T.Teradaの日記

    HTML Purifierの4.1.1がリリースされました。今回のリリースには1件のSecurity Fixが含まれています。今日はその内容について少し書きます。 IEのCSSのurl()の扱い 以下のようなstyle属性があったとき、ブラウザはどのように解釈するでしょうか? <span style="background: url('http://host/aaa\'\);color:red;')">111</span> Firefox、Opera、Safariでは、「http://host/aaa');color:red;」というURIをもつbackgroundプロパティと解釈します。したがってcolorプロパティが有効になることはありません。これはCSSの仕様から見ても至極妥当な挙動です。 ところがIEだけが違う解釈をします。IEで上記のHTMLを表示させると、backgroundプ

    JavaScriptの文字列リテラルでXSS - T.Teradaの日記
  • 2008-08-06 - T.Teradaの日記 - HTTP用のページにHTTPSでアクセスする

    同一ホスト上にHTTPとHTTPSのページが同居しているサイトをしばしばみます。 そんなサイトでは、来はHTTPのページに、HTTPSでもアクセスできるようになっていることがあります。そういう場合、HTMLの中身によってはセキュリティ上の問題が出ますよという話です。 問題があるページ http://www.example.jp/index.html というURLのページがあるとします。 問題となるのは、そのページの中身に以下のようなHTMLがベタ書きされている場合です。 <script src="http://www2.example.jp/foo.js"></script> このページ(index.html)はHTTPでのアクセスを想定して作られているため、JSファイルをHTTPで読み込んでいます。 ここで、このページが実はHTTPSでもアクセス可能だとします。もしHTTPSでアクセス

    2008-08-06 - T.Teradaの日記 - HTTP用のページにHTTPSでアクセスする
  • ローカルProxyツール - T.Teradaの日記

    久々にはてなの自分の日記を見てみたら、なぞの星マークが表示されていました。 はてなが新しい機能を追加したんですね。 はてなスターはじめてガイド - お問い合わせ - はてな まだイマイチ判ってませんが、私も使ってみようと思います。 6/19の日記の続きで、ローカルProxyツールについて、少し書きます。 Burp Proxy JRE上で動くツールです。 Web Application Security, Testing, & Scanning | PortSwigger v1.01をインストールして、何度か使ってみました。 全体的には、コンパクト・シンプルであり、比較的細かい設定も柔軟にできるツールだという感じを受けました。 ただ、困ったのは、Burp上でレスポンスを表示する際に、上の画面キャプチャのようにShift_JIS以外(EUC-JPやUTF-8)のページが文字化けしてしまうという

    ローカルProxyツール - T.Teradaの日記
    mainyaa
    mainyaa 2008/01/08
    Burp Proxy、Fiddler、WebScarab
  • SQL Injectionツール - teracc’s blog

    ここのところ、いくつかのSQL Injectionツールについて調べていました。今日はその結果を日記に書いてみようと思います。 はじめに SQL Injectionツールとは SQL Injection脆弱性の発見と、発見した脆弱性を突いてのDB内情報の取得を行なうためのツールです。 ただし、多くのツールでは「脆弱性の発見」はおまけで、後者のDB内情報の取得に主眼を置いています。一般的には、汎用のWeb脆弱性スキャナなどで脆弱性を見つけて、その脆弱性に対してこの日記に書いているようなツールを使って情報を取得するという使い方をすることが多いでしょう。 SQL Injectionツールは、いわゆるHackingツールです。脆弱性検査を行なう者か、さもなければCrackingを行なう犯罪者が使うくらいで、一般のWeb開発者やユーザの人が使う必要に迫られることは無いでしょう。 ツールの使用に際して

    SQL Injectionツール - teracc’s blog
    mainyaa
    mainyaa 2008/01/07
    SQL Injectionツールまとめ
  • AntiSamyをためす - teracc’s blog

    OWASPがAntiSamyというオープンソースのソフトウェアをリリースしました。 Category:OWASP AntiSamy Project - OWASP ツールの名前は、有名なMySpaceのJavaScript Wormからきています(多分)。 HTML断片から、JavaScript要素を除去するためのソフトで、現行版はJavaで作られています。プロジェクトのホームページによると、将来的にPHPや.NET環境にも移植される予定とのことです。 V1.0をダウンロードしてちょこっと触ってみました。 以下、メモ&感想です。 ParserとしてNekoHTMLを使用している。 XMLのポリシーファイルと、ポリシーファイルに基づいてHTMLを処理するエンジンで構成されている。 ポリシーファイルには、許可するHTMLタグ・属性名・属性値、CSSプロパティ名・値などのパターンを、正規表現をつ

    AntiSamyをためす - teracc’s blog
    mainyaa
    mainyaa 2008/01/07
    ユーザーが入力したHTMLからポリシーファイルにしたがってJavaScriptや特定のタグを除去できるっぽい。
  • Oracleでのエスケープ - 2007-12-30 - T.Teradaの日記

    今日の日記では、OracleでのSQLインジェクション対策について書きます。 以下のようなコード(PHP)があるとします。 <?php ... $foo_escape = str_replace("'", "''", $foo); $sql = "SELECT * FROM table1 WHERE foo='$foo_escape'"; $stmt = OCIParse($dbh, $sql); ... 「'」を「''」にエスケープしてSQL文に埋め込み、Oracleで実行(Parse)しています。 割とよくあるコードかもしれませんが、これだとSQLインジェクション攻撃に脆弱な場合があります。 不正な文字列 DBサーバとのコネクションにEUC-JP(JA16EUCTILDE)を使用しているとします。 ここで、$fooに「[0xA1]' OR 1=1--」のような、EUC-JPとして不正な

    Oracleでのエスケープ - 2007-12-30 - T.Teradaの日記
    mainyaa
    mainyaa 2008/01/07
    対策は、自作のエスケープ+文字列結合ではなく、DBMSが正規に提供するAPIを利用してSQL文を生成することです。
  • T.Teradaの日記 - SessionSafe: Implementing XSS Immune Session Handling

    SessionSafeは、ハンブルグ大学のMartin Johnsさんが書いたWeb APの方式案です。 もしWeb APにXSS脆弱性があって、これが攻撃されたとしても、 セッションIDが盗まれない 当該ページ以外の情報が窃取・改竄されない ことを目指しています。 面白いなーと思ったので、内容について少し書きます。 なお、元記事を高速斜め読みしたので、この日記の内容には間違いが含まれているかもしれません。興味のある方は原を見てください。 セッションIDが盗まれない 以下の二つのドメインがあるとします。 www.example.com secure.example.com セッションIDのCookieは、secureサブドメインに発行します。 Webページを表示する際はwww.example.comのURLにアクセスします。そこで返すHTMLに色々と仕掛けを施します。 HTMLの仕掛け

    T.Teradaの日記 - SessionSafe: Implementing XSS Immune Session Handling
    mainyaa
    mainyaa 2008/01/07
    もしWeb APにXSS脆弱性があって、これが攻撃されたとしても「セッションIDが盗まれない 、当該ページ以外の情報が窃取・改竄されない」ことを目指しています。
  • 1