タグ

sqliとSQLiに関するockeghemのブックマーク (95)

  • NLOG - FC2 BLOG パスワード認証

    ブログ パスワード認証 閲覧するには管理人が設定した パスワードの入力が必要です。 管理人からのメッセージ 閲覧パスワード Copyright © since 1999 FC2 inc. All Rights Reserved.

    ockeghem
    ockeghem 2009/06/25
    『sql文での変数は「'」シングルクオーテーションで必ず囲むのを習慣にしましょうね』<大垣メソッドがこのような形で普及し始めている。数値の場合はシングルクオートで囲むのではなく数値としての妥当性検証を
  • Webにまつわる危険をきちんと知っていますか? (1/2)

    ウィルスの拡散手段などとして、メールに対するセキュリティ対策が重要となっていたが、昨今ではWebが攻撃のターゲットとなる機会が増えている。その具体的な攻撃手段を解説しよう。 Webアプリの脆弱性 オンラインショッピングサイトやWebメール、さらにオンラインバンキングなど、Webを使ったサービスは社会インフラの重要な要素となっている。だが、重要であるがゆえに、サービスを破壊しようとする愉快犯や、経済的利益を不正に得ようとする犯罪組織のターゲットともなっている。こうしたWebサービスに対する犯罪に使われるケースが多いのがクロスサイトスクリプティング、SQLインジェクションといったWebアプリケーションの脆弱性を利用する攻撃だ。 クロスサイトスクリプティング(Cross Site Scripting:XSS)は、Webのフォームに入力した文字列を別のページに表示するサーバサイドスクリプトを使った

    Webにまつわる危険をきちんと知っていますか? (1/2)
    ockeghem
    ockeghem 2009/06/16
    色々微妙。サニタイズを連発していること。図1もこの手順で攻撃するのはまどろっこしい
  • 教えて!Ziddyちゃん - SQLインジェクション対策

    ockeghem
    ockeghem 2009/06/12
    『SQLインジェクション対策で mysql_real_escape_string を使うというのは間違えています。プリペアード・ステートメントを使いましょう』<間違いというのは言い過ぎだろうね
  • SQLインジェクションやXSSって何されるの? (1/2)

    Q.SQLインジェクションはどのような攻撃ですか? A.Webアプリケーションが持つ欠陥や仕様上の問題点を利用した攻撃です。 狙われるWebサイト 「SQLインジェクション」は、日では2005年ごろからWebサイトの攻撃手段として使用されはじめた。ワコールオンラインショップの個人情報漏えい(2005年11月)などのWebサイト攻撃事件にも使用され、情報セキュリティの専門家だけでなく、一般にも名前を知られるようになった。 SQLインジェクションを簡単に説明すると、Webアプリケーションの脆弱性を利用して、外部からデータベースの内容を不正に操作する攻撃である。具体的には、Webサイトにウイルスを埋め込んで閲覧したユーザーのPCに感染させたり、他のユーザーのクレジットカード番号といった個人情報を表示させて盗み出してしまう。 そして、2008年3月頃から世界中でこのSQLインジェクション攻撃によ

    SQLインジェクションやXSSって何されるの? (1/2)
    ockeghem
    ockeghem 2009/06/05
    SQLインジェクションの説明は色々間違っているし、サンプルはSQLインジェクション以前の問題。http://d.hatena.ne.jp/ockeghem/20090302/p1 参照
  • 第12回■主要言語別:入力値検証の具体例

    これまで2回にわたってWebアプリケーションにおける入力値検証とセキュリティ対策の関係を説明してきた。入力値検証はセキュリティ上の根的対策ではないが,保険的な対策として効果が期待でき,特に制御コードや不正な文字エンコーディングによる攻撃対策には有効であることを説明した。 今回は,Webアプリケーション開発によく使われる4種類の言語(PerlPHPJavaASP.NET)に関して,入力時処理の具体例を示す。ここで取り上げる「入力時処理」とは以下の内容を含んでいる。 文字エンコーディングの検証文字エンコーディングの変換入力値検証 Perlによる実装の方針 Perl言語はバージョン5.8から内部文字エンコーディングとしてUTF-8をサポートし,文字単位での日語処理が可能だ。文字エンコーディング処理にはEncodeモジュールを使用する。入力値検証には正規表現を用いるのが便利だ。 ■文字エ

    第12回■主要言語別:入力値検証の具体例
  • 自作検査ツール - SQLインジェクション編 - 2009-05-31 - T.Teradaの日記

    前回の日記からだいぶ日にちが空いてしまいました。 今日は、自作検査ツールのSQLインジェクション用シグネチャについて書きます。 SQLインジェクションの検査シグネチャとしては、以下の5種類を用意しています。 A. SQLエラー検出+簡易なBlind B. Blind 数値型・カラム名等 C. Blind 文字列型 D. 更新系クエリ E. 文字コード系 SQLインジェクションは、かなりの頻度で脆弱性が発見されること、また一般的に危険度の高い脆弱性であることから、シグネチャの種類を多くしています。 それぞれのシグネチャについて、以下で順番に見ていきます。 A. SQLエラー検出+簡易なBlind 最初に試すのはベーシックなパターンです。 イ:【元の値】'"\'"\ … SQLエラーになる ロ:【元の値】''""\\ … SQLエラーにならない ハ:【元の値】'"\'"\ … SQLエラーにな

    自作検査ツール - SQLインジェクション編 - 2009-05-31 - T.Teradaの日記
  • カリフォルニア大学バークレー校がハッキングの被害に--16万人に影響か : CNETニュース : ニュース : ネット&デジタル : YOMIURI ONLINE(読売新聞)

    カリフォルニア大学バークレー校(UCB)は、ハッカーが同校の医療サービスセンターにあるコンピュータに侵入し、16万人以上の在校生や卒業生の個人情報を盗み出した可能性があると、米国時間5月8日に発表した。 UCBの最高技術責任者(CTO)であるShelton Waggener氏が8日午後の記者会見で語ったところによると、個人情報盗難の被害にあった可能性が特に高いのは、ハッカー侵入時に社会保障番号がアクセスされた約9万7000人だが、ハッカーがそれらの社会保障番号と個人名を結びつけることができたかどうかは依然として不明だという。 攻撃者たちは公のウェブサイトにアクセスした後、同一のサーバ上にあるセキュリティ対策を施した複数のデータベースに侵入した。それらのデータベースには、社会保障番号や健康保険情報、さらに予防接種記録や患者が診察を受けた医師の名前など、治療そのものとは関係のない医療情報が

    ockeghem
    ockeghem 2009/05/12
    『Slavik Markovich氏は、状況から判断してSQLインジェクションが用いられた可能性が高い、と考えている』
  • PostgreSQLセミナー2009春〜セキュリティ事故のケーススタディ〜 | 水無月ばけらのえび日記

    公開: 2009年5月10日21時10分頃 セキュリティホールmemo (www.st.ryukoku.ac.jp)より、「PostgreSQLセミナー2009春〜セキュリティ事故のケーススタディ〜 (www.ipa.go.jp)」(PDF)。 良い資料だと思いますが、ちょっと思ったところをメモ。 p10.「ショッピングサイトの裏側」……なんでHTMLの構造が? ここで言う「裏側」ってそういう意味ではないと思うのですが、適切な画像がなかったのでしょうか……。 ※どうでも良いですが、こういう構造だと、お知らせの文言が増えたときや文字サイズ拡大時に、シンボルマークとロゴタイプ(なのか?)が泣き別れになりそうな気がしますね。いや、そこはつっこむところではありませんが。

    ockeghem
    ockeghem 2009/05/11
    言及ありがとうございます
  • </title> <meta name="Author" content=""> <meta name="Creator" content="PowerPoint 用 Acrobat PDFMaker 8.1"> <meta name="Producer" content="Acrobat Distiller 8.1.0 (Windows)"> <meta name="CreationDate" content=""> </head> <body> <pre> PostgreSQLセミナ�

    PostgreSQLセミナー 2009春 〜セキュリティ事故のケーススタディ〜 独立行政法人 情報処理推進機構(IPA) セキュリティセンター 相馬 基邦 Copyright © 2008 独立行政法人 情報処理推進機構 対象・ポイント • 対象 – 企業等のウェブサイト公開における安全性向上 について理解を深めたい方 • ポイント – 主に企業ウェブに関連したセキュリティ事故の ケーススタディによる脅威と対策の技術的解説 Copyright © 2008 独立行政法人 情報処理推進機構 2 講の内容 1. 2. 3. 4. SQL インジェクションとは? 事例:ショッピングサイトでウイルス感染? SQL インジェクションの対策 安全なウェブ開発のための資料 Copyright © 2008 独立行政法人 情報処理推進機構 3 1. SQL インジェクションとは?

    ockeghem
    ockeghem 2009/05/08
    P29『根本的解決/エスケープ処理/•バインド機構の利用/•バインド機構以外でのエスケープ』<IPAはバインド機構をエスケープの一種と説明しているがそれは誤り。参考: http://d.hatena.ne.jp/ockeghem/20090221/p1
  • 第24回 無くならないSQLインジェクション脆弱性 | gihyo.jp

    SQLMapを使ってみる 比較的メンテナンス状態が良いSQLMapを使ってみます。SQLMapPythonで記述されたプログラムです。Pythonが利用可能なコンピュータであれば利用できます。 SQLMapを利用するために以下の、まったく無防備なコードを用意しました。これをローカルホストのApache/PHPで実行しアクセスできるようにしました。 PHPコード <?php $conn = mysql_connect('localhost','root'); mysql_select_db('test', $conn); $sql = "SELECT * FROM user WHERE name = '".$_GET['name']."' AND pass = '".$_GET['pass']."'"; $result = mysql_query($sql, $conn); if (!$r

    第24回 無くならないSQLインジェクション脆弱性 | gihyo.jp
    ockeghem
    ockeghem 2009/04/30
    大垣メソッドの説明。『SQLインジェクション対策には次のような注意事項があります』<4項目のどれがandでどれがorか分からない
  • 文字列に変換してSQLインジェクションを100%防ぐ? | 水無月ばけらのえび日記

    公開: 2009年4月29日13時55分頃 「WEBマーケティング研究会: 第1回・SQLインジェクション (www.webdbm.jp)」。 この記述には度肝を抜かれました。 SQLインジェクションは、予期しない変数や命令文に対処できないアプリケーションの脆弱性です。根的な対策としては、アプリケーションに渡す変数をすべて文字列に変換すれば、SQLインジェクションを100%防ぐことができます。 文字列に変換すれば100%防げる!? SQLインジェクションはそもそも、「1 OR 1=1--」とか「foo' OR 1=1--」とかいった文字列を渡して攻撃するのです。文字列を文字列に変換しても何も起きないわけでして、全く意味のない話だと思うのですが……。よく見ると、続きにはこう書いてあったりします。

  • dfltweb1.onamae.com – このドメインはお名前.comで取得されています。

    このドメインは お名前.com から取得されました。 お名前.com は GMOインターネットグループ(株) が運営する国内シェアNo.1のドメイン登録サービスです。 ※表示価格は、全て税込です。 ※サービス品質維持のため、一時的に対象となる料金へ一定割合の「サービス維持調整費」を加算させていただきます。 ※1 「国内シェア」は、ICANN(インターネットのドメイン名などの資源を管理する非営利団体)の公表数値をもとに集計。gTLDが集計の対象。 日のドメイン登録業者(レジストラ)(「ICANNがレジストラとして認定した企業」一覧(InterNIC提供)内に「Japan」の記載があるもの)を対象。 レジストラ「GMO Internet Group, Inc. d/b/a Onamae.com」のシェア値を集計。 2023年5月時点の調査。

    ockeghem
    ockeghem 2009/04/24
    『データの形式に関係にかかわらず、すべての変数を文字列にエスケープすることで、SQLインジェクションは100%防ぐことができる。』<これは大垣メソッドのコピペでは? 参考 http://gihyo.jp/dev/serial/01/php-security/0005?page=2
  • http://kantan.nexp.jp/pat_pdf/A/2008/40/2008299540.pdf

  • 2製品が過剰検知なし,攻撃ツールはほぼ撃退

    一つは「union」「select」というSQLの予約語を二つ含む文字列で,BIG-IPとSecureSphereが過剰検知した。もう一つは「'」という特殊文字とSQLの予約語を一つずつ含む文字列。これはCitrixが過剰検知した。 過剰検知した3製品はどれもホワイトリスト重視型である。ホワイトリスト重視型の製品は,ホワイトリストの作成など,導入前にWebサイトの特性に合わせてチューニングすることで安全性の向上を図ることを推奨している。そうしたチューニングの過程で,過剰検知への配慮も必要になりそうなことが検証で分かった。クレームを減らすため,過剰検知は導入前にできるだけなくすべきである。 過剰検知が出なかった2製品は,ブラックリスト重視型の製品だった。どちらも導入前の設定作業を極力減らして,すぐに使えることを目指している。今回はあくまで二つの文字列を試しただけだが,導入時の手間は少なくなり

    2製品が過剰検知なし,攻撃ツールはほぼ撃退
    ockeghem
    ockeghem 2009/04/10
    最終回。注入工具対WAFの対決やいかに
  • 数値型攻撃が通る製品もあった

    前回に続き,入力フォームに数値を入れる場合を検証した。情報を盗む攻撃(3)と改竄する攻撃(4)の2種類である(図4)。合計4個の攻撃パターンを試すとCitrixが3個を遮断しなかった。 入力値として文字列を想定するWebアプリケーションを攻撃する(1)(2)の場合は,「'」などの特殊文字が必要なので,WAFは攻撃かどうかを判断しやすい。しかし数値の入力を想定しているアプリケーションの場合,ブラックリストで攻撃を検出するのは比較的難しくなる。SQL文の中で出てくることが多い「'」などの特殊文字を使わずに攻撃できるからだ。このため攻撃(3)(4)のような数値型の攻撃は,実際に多く用いられている。 実は事前のヒアリングにより,Citrixのブラックリストは,「'」などの特殊文字と,SQLの予約語(select,whereなど)の両方が入っているものを攻撃とみなす仕組みだと分かっていた。他社製品と

    数値型攻撃が通る製品もあった
  • 設定の甘さで検知漏れが発生

    文字列で情報を盗む攻撃(1)は4パターン試し,どのWAFもすべて遮断できた。情報を改竄する攻撃(2)を3パターン試すと,SecureSphereだけがどれも遮断しなかった。これをImperva Japanに確認すると,SecureSphereの設定が甘くなっていたことが分かった。 SecureSphereはホワイトリストを重視する製品だが,ブラックリストについても二つの機能を備えている。一つはシグネチャによる遮断で,出荷時の初期設定で機能する。これで情報を盗む攻撃(1)を遮断したと見られる。もう一つは,判断しにくい攻撃を複数の条件で診断する「相関ルール」という機能で,初期設定ではオフになっている。Imperva Japanによれば,ホワイトリストの作成時などのために相関ルールはオフの状態でユーザーに提供するが,実環境ではオンにするのが通常だという。実際にオンに切り替えたら攻撃を遮断できた。

    設定の甘さで検知漏れが発生
    ockeghem
    ockeghem 2009/04/08
    いよいよ核心に
  • SQLインジェクションに一定の効果

    Webサイトから個人情報が盗まれたり,Webページを改竄(かいざん)される事件が後を絶たない。2008年には,サウンドハウスやナチュラムなどのECサイトから個人情報が漏れたり,ゴルフダイジェスト・オンラインのWebサイトが改竄されたりした。いずれもWebアプリケーションの脆弱(ぜいじゃく)性を突く「SQLインジェクション」という攻撃が使われた。 これだけ事件が続くのは,Webアプリケーションの脆弱性を根絶することが極めて困難だからだ。常に機能を拡張したり,改良したりしているWebサイトでは,どうしても対応漏れが発生しやすい。そうしたWebアプリケーションの脆弱性を外側からふさいでくれるのが,WAF(Web Application Firewall)である。 今回,そのWAFが実際のSQLインジェクションの攻撃をどれだけ防げるのか,主要な5製品を使って徹底検証した。WAFが防いでくれる脆弱性

    SQLインジェクションに一定の効果
  • CakePHP 比較演算子インジェクションに注意

    @deprecated この情報はCakePHP1.2betaまでのものです。1.2RC1についてはこの方法は有効ではありません。詳しくはCakePHP 1.2RC1からは比較演算子をキーに書くをどうぞ。 CakePHPのモデルで検索条件を指定する場合は比較演算子に注意が必要です。 検索条件では↓な感じで条件値の他にSQLの比較演算子を入れることができます。 <?php class UserController extends AppController { funtion index($id) { $id = is_numeric($id) ? $id : 0; // $id より大きなidを持つレコードを取得 $list = $this->findAll(array('id' => '> ' . $id)); $this->set('list', $list); } } ?> これを見

  • 全パケットを記録・分析、INSIがSQLインジェクション対策システム開発

    セキュリティ専業のインターナショナル・ネットワーク・セキュリティ(INSI)はSQLインジェクションなどWebアプリケーションを狙う攻撃に備える対策システム「IIBS」を開発し、2009年4月から販売を開始する。監視対象ネットワーク上の全パケットを記録・分析することでWebアプリケーションへの攻撃を検出できるのが特徴だ。 IIBSは専用のネットワークキャプチャカードとRAIDカードを搭載したPCI Express接続対応カードと、パケット解析プログラムで構成される。監視対象のネットワーク上を流れるすべてのパケットを収集してRAIDストレージに保存し、後から通信を再現して送受信されたデータの内容を確認できる。保存したパケットは「PCAP」と呼ぶ形式でダウンロードしてPCAP対応のプロトコルアナライザで解析できる。 通信関連の情報を統計分析する機能を搭載。IPアドレスやポート番号などのログを一

    全パケットを記録・分析、INSIがSQLインジェクション対策システム開発
  • IPAの新版「セキュア・プログラミング講座」がイマイチだ

    補足 この記事は旧徳丸浩の日記からの転載です(元URL、アーカイブはてなブックマーク)。 備忘のため転載いたしますが、この記事は2009年3月27日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 2002年3月にIPAから公開されたセキュア・プログラミング講座は、その後2007年に新版が公開された。旧版は今から7年前のコンテンツがベースになっているので現在の目から見ると色々突っ込みどころがあるが、2002年という時期にこれだけのコンテンツを揃えたというのは立派な仕事だったと考えている。 一方、2007年の新版はどうか。部分的に見れば「開発工程と脆弱性対策」の関連について言及するなど意欲的な内容もあるが、全体としては物足りない。新版が出た当時も「例えば、PHPを避ける」という表現が話題になったくらいで、同じIPAから公開され