デブサミ2012【16-D-7】「iOS, Android, Windows Phoneアプリを同時開発せよ!!!」(後半)
文字コード指定の無いUTF-8のコンテンツでは、ブラウザ側の文字コード自動認識でシフトJISと誤認させることで、HTMLの特殊文字を一切使わずにXSSが成立する場合があります。 原理 UTF-8 では1文字が3バイトマッピングされる場合があります。 そこで、これをShift_JISと誤認させると、3バイト目と次の1バイトをセットで1文字と誤認させることができます。これにより、HTMLの区切り文字の効力を失わせてスクリプトを注入することが可能です。 例:"あ" = E3 81 82 なので、シフトJISと誤認すると "縺" (E381) +余分な先行バイトの 0x82 具体例 例えば、動的なコンテンツ(UTF-8で応答を生成) <html> <head> <title>abcde</title> </head> <body> <form> <input type=text value="ユー
Caution: The documentation you are viewing is for an older version of Zend Framework. You can find the documentation of the current version at: https://docs.zendframework.com/zend-escaper/ Escaping Javascript — Zend Framework 2 2.1.5 documentation Zend\Escaper Escaping Javascript¶ Javascript string literals in HTML are subject to significant restrictions particularly due to the potential for unquo
“This is a great product for gaining complete control over Javascript vulnerabilities. BCDetect provides smart application analysis and it really helps us to agile test the software before going live to production. We discovered really nasty Javascript bugs by using it; tech support is also fantastic and for good reason – you will most likely need them.” - Kevin M -CISO at a Large Entertainment Co
The web's security model is based on a same-origin policy. For example, code from https://mybank.com must have access to only https://mybank.com's data, and https://evil.example.com must never be allowed access. Each origin is, in theory, kept isolated from the rest of the web, giving developers a safe sandbox to build in. In practice, however, attackers have found several ways to subvert the syst
jquery1.8 beta 1が出ました - ぽりぴぃすらいとを書いたところ、mentionがたどれなくなってしまったのですがtwitterで「fixとはどういう状態ですか?」と聞かれたのでコメントを見てみました。 そもそもの状態 まず、チケットの9521ですが、malaさんの指摘部分を含んではいますが、大枠(validなものとして)入力を受け付ける、ということとしてfixし、11617に渡しています。 そこで、 #11617 (Define a $.parseHTML method for creating HTML fragments) – jQuery Core - Bug Trackerこのように「いやいや、解決してないよ!?」と投げ込んだんですが、そこでは Use case: rich editor in an iframe/div with contentEditable e
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
UTF-16をContent Security Policy(以下CSP)の迂回に使ってみようという記事です。ほとんどの場合で問題になりませんが場合によってはこうもできるかもしれないよね、ということを示すために書きます。真面目に読まないでください。 シンプルな迂回方法 やろうとしていることを理解しやすくするために、先にシンプルな迂回方法を示します。 CSPで選択的に外部ドメインのJavaScriptの読み込みを許可しているような場合、読み込みを許可したドメインにscriptタグのsrcとしてエラーのないように悪意のあるスクリプトを書けてしまう箇所があれば、当然XSSがあった時にCSPを迂回して攻撃することができてしまいます。 僕が攻撃しようと思ったら真っ先に狙いに行くのはJSONPのcallback関数名です。具体的に例を示すと、 CSPを導入したサイトで、外部サイトのcsp.exampl
この何年かでWebアプリケーションは、サーバ上のみでプログラムが動作するものから、多くのJavaScriptコードがWebブラウザで動作し、背後でサーバと連携して、リッチかつスムーズな操作感を提供するものへと進化してきた。このことは、Webブラウザ上に悪意のスクリプトを送り込む「スクリプト注入(XSS)」攻撃を、より防止しづらく、悪用の懸念がより大きなものに変化させた。本稿は、WebアプリケーションにAjax等の進化をもたらした技術について振り返るとともに、スクリプト注入対策を考慮すべき新たな文脈について論じるものである。 Ajax(Asynchronous JavaScript and XML)[1]は、必要となるデータを非同期でWebサーバから取り寄せつつ、Webブラウザの画面上でなめらかな操作性を提供する形態のJavaScriptプログラムのことである。かつてのブラウザにおいてはこの
Ajaxなアプリケーションにおいて、サーバからJSONを返す場合に、JSON自体はvalidであるにも関わらず、(IEの都合で)エスケープが不足していて脆弱性につながってる場合があるので、書いておきます。 発生するかもしれない脆弱性 JSONのエスケープが不足している場合に発生する可能性のある脆弱性は以下の通りです。 JSON内に含まれる機密情報の漏えい XSS それぞれの詳細については後述します。 開発側でやるべきこと 文字列中のUnicode文字は "\uXXXX" な形式にエスケープするとともに、ASCIIな範囲であっても「/」「<」「>」「+」も同様にエスケープすることにより、前述の脆弱性を防ぐことができます。 Perlであれば、以下のような感じになります。JSON->ascii(1) に続けて、JSON文字列を正規表現で置換しているあたりがキモになります。 use utf8; u
続きです。Firefoxにおいては、注入するスクリプト断片に「()」を含まないようにしながら関数の実行が可能です。まず簡単のために、詰めXSS出題時に比べて制限をゆるめてみます。とりあえずalert(1)をしてみようとするものです。 <script> a setter = alert a = 1 </script> 上記でalert(1)が実行されます。この記法は、Firefoxの初期の実装でして、setter や getter の古い書き方です。また、既に廃止予定の記述方法です。近い将来無効になるかもしれません。 さて、さらに、location.hashがスクリプト注入時のペイロードになっているケースを想定してみましょう。Firefox3.0.11 で確認済みです。 <script> u setter = unescape e setter = eval e = u = location
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く