2009-01-01から1年間の記事一覧

pg_sleepを使った検査

徳丸さんの日記(pg_sleepをSQLインジェクション検査に応用する - ockeghem's blog)を読みました。こういう検査のマニアックな話は大好きです。このあたりのシグネチャは、私も自作ツール(参考)の検討をしていた際に相当いろいろ悩んで調べましたので、今…

htmlspecialchars()/htmlentities()について

id:t_komuraさんの、最新の PHP スナップショットでの htmlspecialchars()/htmlentities() の修正内容についてを読みました。見ていて気になったことが1つあります。 2. EUC-JP …(省略)… (2) \x80 - \x8d, \x90 - \xa0, \xff については、そのまま出力さ…

Anti-XSS Library v3.1を試す

Anti-XSSライブラリのV3.1から、GetSafeHtml()やGetSafeHtmlFragment()といったスタティックメソッドが用意されました。これらのメソッドは、入力として与えられたHTMLやHTML断片から、JavaScriptを除去するためのものです。(参考)HTML Sanitization in An…

勉強会参加

わんくまっちゃ445同盟 featuring Silverlight Square本日は、Silverlight関連の話が2/3、セキュリティ関連が1/3くらいでした。Silverlight関連で特に印象に残っているのは「AMF Messaging with Silverlight」「クライアントでもサーバーでもC#!」「Silv…

SQL Injection Toolの作成

検査ツール作成の一環として、SQL Injection脆弱性を利用してデータを抜き出すツールを作成しました。 使い方 この手のツールを使ったことがある人は、見れば何となく分かると思いますが、簡単に説明します。まずは、検査対象のリクエストとパラメータを指定…

パソコンが届いた

おととい(22日)、DELLのノートPCが届きました。注文したのが12日なので、10日くらいで届いたことになります。ただいまセットアップ中です。これまでに以下のソフトを入れました。 Becky! メールクライアント IE8/Firefox ブラウザ xyzzy テキストエディタ …

括弧なしのXSS

hoshikuzuさんの日記から。詰めXSS回答第弐回(分割方式)これ、SCRIPTタグの内側に挿入できるけれども、括弧など殆どの記号がはじかれてしまうアプリがあって、仕事で1回だけ使ったことがあります。とはいっても、hoshikuzuさんの記事の後半に書いてあるよ…

XMLをParseするアプリのセキュリティ(補足編)

以前の日記では、外部からのXMLをサーバサイドでParseするアプリへの攻撃の概要について書きました。今日の日記では、何点か補足する事項について書きます。 ファイルの内容を盗み出す他の方法 前の日記の中で、サーバ上のファイルの内容を外部から盗み出す…

パソコン壊れた

自宅でメインで使っているノートパソコンが壊れました。ハードディスクからゴリゴリ異音がして、データを読み込めません。もうだめでしょう。過去のメールやら写真やら、いろいろなVMイメージ(検証環境)やらを含めて、多くのデータがおじゃんになりました…

SQLのlike演算子でエスケープが必要な文字

まとめると以下のようになると思います。 Oracle % _ %(全角)_(全角) DB2 % _ %(全角)_(全角) MS SQL Server % _ [ MySQL % _ PostgreSQL % _ 注意点は以下のとおり。 DB2、Oracleは、「%」「_」(全角)もワイルドカードとして解釈する SQL Server…

MySQLのエラーメッセージ

MySQL環境において、BlindではないSQLインジェクションがあるときに(SQLエラーメッセージが応答に含まれるときに)、欲しいデータをエラーメッセージから得る方法。 mysql> select extractvalue('<a/>',concat('/$',version())); ERROR 1105 (HY000): XPATH syn</a/>…

IE8のXSSフィルタが裏目に出る例

IE8のXSSフィルタは、WebアプリにXSS脆弱性があったとしても、それが発動する可能性を減らしてくれるものです。しかし、そのXSSフィルタが裏目に出るようなこともあります。例えば、以下のような静的なHTMLファイル(test.html)を作ってWebサーバにおきます…

IE8のtoStaticHTML関数

以前の日記で、IE8β2のtoStaticHTML関数にバグがあると書きました。そのバグについては、発見したときにMSに報告しました。その後、特に「直した」という連絡はありませんが、IE8の正式版では修正されていました。β2にあったバグのPOCは、以下のようなもので…

XMLをparseするアプリのセキュリティ

「XML」「セキュリティ」という単語でWeb検索すると、多くヒットするのはXMLデジタル署名やXML暗号などを説明したWebページです。本日の日記では、それとはちょっと違うテーマ(XXEと呼ばれる攻撃)について書きます。 脆弱なコードと攻撃方法 さっそく脆弱…

DB2の文字列→数値変換

だいぶ前に徳丸さんが、文字列から数値への暗黙の型変換についてまとめています。数値リテラルをシングルクォートで囲むことの是非 - ockeghem's blog徳丸さんの日記には、Oracle, MS SQL Server, MySQL, PostgreSQLの4つのDBMSを対象に、暗黙の型変換が起こ…

CSSのexpression

はせがわさんの記事です。[柔軟すぎる]IEのCSS解釈で起こるXSS (1/3):教科書に載らないWebアプリケーションセキュリティ(3) - @IT記事中では、(5) 全角文字、(6) 特定のUnicode文字、の2つは、Windows XP SP3のIE6では動作しなくなっていると書かれて…

VBScriptエスケープ法

VBScriptエスケープ法についてP.4のVBEscape関数には微妙なバグがありますね。 入力: aaa & " & bbb 期待する出力: aaa & "" & bbb 実際の出力: aaa & bbb

自作検査ツール - SQLインジェクション編

前回の日記からだいぶ日にちが空いてしまいました。今日は、自作検査ツールのSQLインジェクション用シグネチャについて書きます。SQLインジェクションの検査シグネチャとしては、以下の5種類を用意しています。 A. SQLエラー検出+簡易なBlind B. Blind 数値…

システム監査技術者試験

去年はCISSPを受けました。今年はシステム監査技術者試験を受けようかと思ってます。既にオンラインで試験の申込もして、参考書・問題集を読んでますが、システム監査なんて経験が無いもので非常に苦痛です。特に午後IIの論文とか。今のところ、合格しそうな…

like演算子のエスケープ

SQLのlike演算子では、ワイルドカードとして解釈させたくない「%」や「_」をエスケープする必要があります。じゃあエスケープ文字として何を使えばいいんだろうか?という話になりますが、それに関して昔自分がやった失敗を思い出しました。自分がやった失敗…

自作検査ツール - XSS編

ちょっと時間があいてしまいましたが、自作ツールのXSS検査について書きます。 XSSシグネチャ 検査文字列は基本的には2種類のみです。 □タイプA XXXXXX【元の値】'"<9 :&(;\qYYYYYY □タイプB XXXXXX【元の値】'":&(;\qYYYYYY ※ XXXXXX、YYYYYYはランダムな英…