タグ

ブックマーク / www.tokumaru.org (13)

  • 徳丸浩の日記 - iモードブラウザ2.0のXMLHttpRequestでPOSTデータの扱いが困難になった

    _iモードブラウザ2.0のXMLHttpRequestでPOSTデータの扱いが困難になった このエントリでは、iモードブラウザ2.0の制限により、XMLHttpRequestでPOSTメソッドの利用が困難になっていることを確認したので報告する。 iモードブラウザ2.0のJavaScriptを試していて、POSTメソッドでデータが渡せていないことに気がついた。以下のようなプログラムで検証してみた。 【post.html】 <html> <head> <script> function test() { try { var requester = new XMLHttpRequest(); requester.open('POST', '/dumppost.php', true); requester.onreadystatechange = function() { if (requeste

    TAKESAKO
    TAKESAKO 2010/01/28
    iモードブラウザ2.0のXMLHttpRequestでPOSTデータの扱いが困難になった
  • PHP以外では: 既にあたり前になりつつある文字エンコーディングバリデーション - 徳丸浩の日記(2009-09-14)

    _既にあたり前になりつつある文字エンコーディングバリデーション 大垣靖男さんの日記「何故かあたり前にならない文字エンコーディングバリデーション」に端を発して、入力データなどの文字エンコーディングの妥当性チェックをどう行うかが議論になっています。チェック自体が必要であることは皆さん同意のようですが、 チェック担当はアプリケーションか、基盤ソフト(言語、フレームワークなど)か 入力・処理・出力のどこでチェックするのか という点で、さまざまな意見が寄せられています。大垣さん自身は、アプリケーションが入力時点でチェックすべきと主張されています。これに対して、いや基盤ソフトでチェックすべきだとか、文字列を「使うとき」にチェックすべきだという意見が出ています。 たとえば、id:ikepyonの日記「[セキュリティ]何故かあたり前にならない文字エンコーディングバリデーション」では、このチェックは基盤ソフ

  • 文字コードのセキュリティ問題はどう対策すべきか: U+00A5を用いたXSSの可能性 - 徳丸浩の日記(2009-03-11)

    _U+00A5を用いたXSSの可能性 前回の日記では、昨年のBlack Hat Japanにおける長谷川陽介氏の講演に「趣味と実益の文字コード攻撃(講演資料)」に刺激される形で、Unicodeの円記号U+00A5によるSQLインジェクションの可能性について指摘した。 はせがわ氏の元資料ではパストラバーサルの可能性を指摘しておられるので、残る脆弱性パターンとしてクロスサイト・スクリプティング(XSS)の可能性があるかどうかがずっと気になっていた。独自の調査により、XSS攻撃の起点となる「<」や「"」、「'」などについて「多対一の変換」がされる文字を探してきたが、現実的なWebアプリケーションで出現しそうな組み合わせは見つけられていない。 一方、U+00A5が処理系によっては0x5C「\」に変換されることに起因してXSSが発生する可能性はある。JavaScriptがからむ場合がそれだ。しかし、

  • 書籍「はじめてのPHPプログラミング基本編5.3対応」にSQLインジェクション脆弱性 - 徳丸浩の日記(2008-10-29)

    id:hasegawayosuke氏にそそのかされるような格好で、「はじめてのPHPプログラミング基編5.3対応」という書籍を購入した。 書は、ウノウ株式会社の下岡秀幸氏、中村悟氏の共著なので、現役バリバリのPHP開発者が執筆しているということ、下記のようにセキュリティのことも少しは記述されているらしいという期待から購入したものだ。 目次から抜粋引用 07-07 Webアプリケーションのセキュリティ [セキュリティ] 08-04 データベースのセキュリティ [SQLインジェクション] 09-13 セキュリティ対策 [セキュリティ] 書をざっと眺めた印象は、「ゆるいなぁ」というものであるが、その「ゆるさ」のゆえんはおいおい報告するとして、その経過で致命的な脆弱性を発見したので報告する。 問題の報告 それは、書P280に登場する「SQLインジェクション対策用の関数(dbescape)」

  • XSS: 今こそXSS対策についてまとめよう - 徳丸浩の日記(2008-08-22)

    _今こそXSS対策についてまとめよう 沢出水(さわ いずみ)さんからトラックバックを頂戴した。 元々はホワイトリスト方式の優位は神話というエントリでホワイトリストはどう作る?を引用(批判)した事が発端の模様です。 一見真っ向対決しているようなので興味深く読ませていただいたのですが、正直、両者の主張の違いがわかりません。 どちらもXSS等インジェクション系の対策としてはアプリケーションで入力値が正しい形式の範囲内かチェックし、出力時に必要なエスケープ処理を行う、という結論に思えるんですけど… [ホワイトリストとブラックリストより引用] ご指摘の通りで、XSS対策は入り口でのバリデーションと表示(HTML組み立て)時のエスケープだ。しかし、元ブログの主題はホワイトリストとブラックリストの比較なので、「ただ、表面的に文章を追っただけでは『何をホワイトリストと呼ぶのか』という部分がだいぶ違う印象を

  • 複文が利用できるデータベースの調査: SQL Serverが狙われるには理由がある - 徳丸浩の日記(2008-05-02)

    _SQL Serverが狙われるには理由がある SQLインジェクションを利用したWebサイトの改ざん事件が頻発している。標的となったサイトの多くがIIS(ASP)とSQL Serverの組み合わせを利用していることから、今回の攻撃がIISやSQL Serverの脆弱性を利用したものだと言う報道があるらしい。 これに対して、マイクロソフトが反論している。 「SQLインジェクション攻撃とIISは無関係」とMicrosoft しかしMicrosoftセキュリティ対策センター(MSRC)のブログで、今回のWebサーバ攻撃では「未知の脆弱性や新しい脆弱性は悪用されていないことが当社の調査で分かった」と説明。攻撃はIISやSQL Serverの脆弱性を突いたものではなく、アドバイザリー951306の脆弱性とも無関係だとした。 これはまぁ、もっともな内容だと思う。しかし、疑問は残る。なぜ、IISとSQ

  • イメージコピー版イメージファイト: うまく動いてないようですが - 徳丸浩の日記(2007-12-06)

    _うまく動いてないようですが cybertさんのブログから IE仕様?をついた画像ファイルを使用したXSSというのがあります。なかなか決定的な対策がなく、私も困っています。画像の再コンバートとか、画像のファイルヘッダを確認するのも。コメントとかカラーパレットとかで、決定的なものがありません。 が、ちょっと作ってみたのが、 1.空の画像を作って 2.ユーザのアップロードしてきた画像を空の画像にコピーする これだといけそうな気がしたので作っていました。 [PHPで画像XSSの一味変わった対策より引用] えーっと、さっそく試してみましたが、意図通りに動いていないようです。パレットにJavaScriptを仕込んだ画像をわせると、出力された画像にもJavaScriptが残っていました。 「JavaScriptを埋め込んだ画像を作ってみました」で紹介した画像だとJavaScriptが消えるのですが、

    TAKESAKO
    TAKESAKO 2007/12/07
    コメント欄に神降臨
  • 変数に型のない言語におけるSQLインジェクション対策に対する考察(5): 数値項目に対するSQLインジェクション対策のまとめ - 徳丸浩の日記(2007-09-24)

    _数値項目に対するSQLインジェクション対策のまとめ 一連の議論では、以下の条件におけるSQLインジェクション対策について議論している。 SQLインジェクション対策において、バインド機構が利用できない(したくない) 変数に型のない言語(PerlPHPRubyなど)を使用している 数値型の列の場合 この場合の対策としては、以下の二種類が機能する。 SQL文組み立ての前に、数値としての妥当性検証を行う 数値項目もシングルクォートで囲み(クォートし)、文字列リテラルと同様のエスケープを行う 数値項目もクォートする方法 このうち、後者の積極的な推進者として大垣靖男氏がおられる。例えば、以下のような記事 すべての変数をエスケープする対策 この方法はすべてのデータベースに利用できる対策です。文字列,整数などデータ型に関わらず変数すべてを文字列としてエスケープすることにより,SQLインジェクションを

  • 入力値検証について(2): アプリケーションの先頭で行う入力値検証は業務要件により行うべし - 徳丸浩の日記(2007-09-09)

    _ アプリケーションの先頭で行う入力値検証は業務要件により行うべし 前回のエントリ徳丸浩の日記 - そろそろ入力値検証に関して一言いっとくか - Webアプリケーション脆弱性対策としての入力値検証についての内容をもう少し突っ込んでみたい。 このエントリは、幸いにも何人かの人たちの建設的なコメントをいただくことができた。それにより、私自身の考えを整理し、深めることができたように思う。 T.Teradaの日記 - 2007-09-08 "週"記(2007-09-07) 今回は、入力値検証の中でも、特にアプリケーションの先頭で行う入力値検証として何をすべきかということに焦点を絞って議論を進めたいと思う。 その前に、まずHTTPの復習から。 HTTPリクエストは申請書にたとえると理解しやすい この日記の読者の多くは先刻ご存知だと思うが、HTTPは非常にシンプルなプロトコルである。WebサーバはHT

  • そろそろ入力値検証に関して一言いっとくか: Webアプリケーション脆弱性対策としての入力値検証について - 徳丸浩の日記(2007-09-05)

    _ Webアプリケーション脆弱性対策としての入力値検証について Webアプリケーションのセキュリティ対策としての「入力値検証」について色々言われている。セキュアコーディングの基は入力値検証だといわれたり、さほど重要でないと言われたりしている。当のところはどうなのだろうか。以下、バイナリデータを扱う場合の多いミドルウェア(Webサーバーなど)と対比しながら、この問題を掘り下げたい。 バイナリデータの場合(≒ミドルウェアの場合) バイナリデータでは、入力検証が重要である。少し前にmod_imagefightを取り上げた(画像版サニタイズ言うな(2))ので、ビットマップ画像を例に説明しよう。 その際に使用したBMP形式の説明を再掲する。 0000:MARK(2) ='BM' 0002:ファイルサイズ(4) * 0006:予約1(2) =0 0008:予約2(2) =0 000A:ビットマップ

  • アンチ「サニタイびんぷ」: 画像版サニタイズ言うな(2) - 徳丸浩の日記(2007-08-21)

    _ 画像版サニタイズ言うな(2) 前回のエントリーの後、mod_imagefightのコマンドライン版を作ったりして、検証してみました。まだ検証途中ですが、今回はBMP形式についてのアンチmod_imagefightについて紹介します。 まず、BMP形式のヘッダは以下のようになります(カッコ内はバイト数)。 0000:MARK(2) ='BM' 0002:ファイルサイズ(4) 0006:予約1(2) =0 0008:予約2(2) =0 000A:ビットマップ開始位置(4) 000E:ヘッダサイズ(4) =0x28 0012:イメージ横幅(4) 0016:イメージ高さ(4) 001A:プレーン数(2) =1 001C:ピクセルあたりのビット数(2) 1,4,8,24 001E:圧縮形式(4) =0,1 0022:圧縮後のイメージサイズ 0026:水平解像度(4) 002A:垂直解像度(4)

    TAKESAKO
    TAKESAKO 2007/08/22
    おおお、早速ありがとうございます。ゼロじゃない別の文字でパディングする方法も検討してみます。 / 2007.08.28 更新しました http://wafful.org/mod_imagefight/ (次のβ版では256byte境界にあわせた洗練したコードにする予定です)
  • 徳丸浩の日記 - mod_imagefight考 - 画像版サニタイズ言うな

    SQLインジェクション対策はおすみですか? 開発開始時点からのコンサルティングから、公開済みWebサイトの脆弱性検査、 脆弱性発見後の適切な対策まで ● 画像版サニタイズ言うな しばらく前から、竹迫さんのイメージファイト(mod_imagefight)が、第10回セキュリティもみじセミナーなとで発表され話題になっていましたが、LL魂で発表されたプレゼン資料が公開されましたので、私もようやく内容を見させていただきました。 先日、PHPの攻撃コードが隠された画像ファイルが、大手ホスティングサイトで発見されたとの報道がなされました。GIF,PNG,JPEG,BMP形式の画像ファイルには、PHPのRFI攻撃で使用されるコードやJavaScriptのソースなどを埋め込むことができます。画像に埋め込まれた攻撃コードと戦う5つの方法について解説し、安全な画像アップローダの実装について考察します。

    TAKESAKO
    TAKESAKO 2007/08/08
    防御コードの中にstyleの閉じタグがなかったので、そもそもplaintextの防御が効いていませんでした(汗)。こちらのミス。早速修正しました。余計な手間を掛けさせてしまってすみませんでした。(><)
  • 書評のお稽古: 書評 - ウェブアプリケーションセキュリティ - 徳丸浩の日記(2007-07-24)

    _ 書評 - ウェブアプリケーションセキュリティ 金床氏の話題の新作「ウェブアプリケーションセキュリティ」が届いたので、ざっと目を通した。まだあまり紹介などが出ていないようなので、早い者勝ちで書評してみようと思う。 を手にとって最初に思うことは、その大部さである。いまどき、箱入り、ハードカバーで494ページもあり、ずしりとした手ごたえを感じる。日常のリファレンスや満員電車のお供にするのであれば、もっと軽薄短小であって欲しいと思うところだが、書の場合そうではない。その理由は後述する。 まず、書の想定読者はどのような人だろうか。ウェプアプリケーションセキュリティの初心者でないことは確かだ。書は内容にムラが多い。XSSや、CSRF、SQLインジェクション、セッション管理などについてはやたら詳しい代わりに、ディレクトリトラバーサル、コマンドインジェクション、ヘッダインジェクションについては

  • 1