タグ

PHPとWebAppSecに関するno_riのブックマーク (16)

  • PHPのSession Adoptionは重大な脅威ではない - ockeghem's blog

    なぜPHPアプリにセキュリティホールが多いのか?:第25回 PHPのアキレス腱にて、大垣靖男氏がPHPSession Adoption問題について取り上げている。大垣氏は度々この問題を取り上げているが、今のところ氏の主張に同調する人を見かけない。それもそのはずで、大垣氏の主張は間違っていると私は思う。 以下、大垣氏の主張を実際に試してみる形で、順に説明しよう。 大垣氏の主張 大垣氏の主張は、PHPにはSession Adoption脆弱性があるために、標準的なSession Fixation対策であるsession_regenerate_id()を施しても、その対策は有効ではないというものだ。 しかし,実際には現在に至るまでPHPのセッションモジュールのセッションアダプション脆弱性は修正されないままになっています。このために,来はsession_regenerate_id関数をログイン

    PHPのSession Adoptionは重大な脅威ではない - ockeghem's blog
  • preg_replaceによるコード実行 - T.Teradaの日記

    最近少し調べていたのが、PHPの任意コード実行系の脆弱性です。中でも、preg_replace関数(Perl互換の正規表現による置換を行なうための関数)を不適切な方法で使った場合に発生する脆弱性について調べていました。 せっかくなので、日記にまとめてみます。 3種類の脆弱性 preg_replace関数を使ったPHPコード実行系の脆弱性には、大きく分けて3つの種類があります。 第一引数への挿入を許す e修飾子付き・第二引数への挿入を許す e修飾子付き・第三引数への挿入を許す 以下でそれぞれについて見ていきます。 タイプ1:第一引数への挿入 以下のコードに、任意のPHPコードが実行可能な脆弱性があります。 $m = preg_replace("/([^<]*)$kw([^>]*)/i", "\\1<font color=red>$kw</font>\\2", $m); $kwと$mは外部から

    preg_replaceによるコード実行 - T.Teradaの日記
  • Ruby on Rials – Session Fixation脆弱性の攻撃方法

    (Last Updated On: 2008年2月3日)前回に引き続きWeb関係のセキュリティ脆弱性がどのように攻撃されるのか解説した記事がThinkITに掲載されています。 今回はRuby on Railsの脆弱性が対象です。Ruby on Railsにもいくつかのセキュリティ脆弱性が報告されていますが、URLベースのセッションがいかに脆弱であるか解説しています。 解説対象の脆弱性 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-5380 http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6077 Railsのセッション管理機構にはSession Adoption脆弱性は無いのに何故攻撃できるのか?と思った方は読んでみてください。記事を読んで頂くと脆弱性を実際の攻撃に

    Ruby on Rials – Session Fixation脆弱性の攻撃方法
  • PHPのhtmlspecialcharsにはENT_QUOTESを付ける:phpspot開発日誌

    htmlspecialchars ( ) でセキュリティ対策( ENT_QUOTES もね!) PHPhtmlspecialcharsにはENT_QUOTESを付ける。 htmlspecialchars でXSS対策をしていたと思ったら、デフォルトでは シングルクオートをエスケープしてくれない(マニュアル参照) htmlspecialchars($str, ENT_QUOTES); ENT_QUOTES を指定することで、シングルクオートも &#039; にエスケープ出来ます。 ZAPAブロ〜グのZAPAさんの指摘するh関数を定義してフレームワークなどに組み込んでおくのがスマートなのかもしれませんね→htmlspecialchars関数を簡単にする 意外に知られていないかもしれないので、念をのため紹介しておきます。(知っている人はごめんなさい) その危険な例をしめしてみます。 例えば、h

  • http://htmlpurifier.org/

    no_ri
    no_ri 2008/01/02
    HTMLタグ属性をホワイトリスト形式で通せるライブラリ
  • 連載:なぜPHPアプリにセキュリティホールが多いのか?|gihyo.jp

    第42回PostgreSQL 9.0に見るSQLインジェクション対策 大垣靖男 2011-05-19

    連載:なぜPHPアプリにセキュリティホールが多いのか?|gihyo.jp
  • PHPで画像XSSの一味変わった対策。 - cybertのセキュリティ日記

    IE仕様?をついた画像ファイルを使用したXSSというのがあります。なかなか決定的な対策がなく、私も困っています。画像の再コンバートとか、画像のファイルヘッダを確認するのも。コメントとかカラーパレットとかで、決定的なものがありません。 が、ちょっと作ってみたのが、 1.空の画像を作って 2.ユーザのアップロードしてきた画像を空の画像にコピーする これだといけそうな気がしたので作っていました。 PHPのimagecopyを使って画像XSSをやっつける。どうぞHACKしてください。 http://tepppei.com/hackme/img.php 画像XSSの詳しくは有名な方々のブログの方にお任せ。 <html> 画像XSSの対策をしました。<br> 任意の画像ファイルをアップロードしてください。<br> 完了したら対策した画像のリンクが出ます。<br> XSSが動いたらおめでとうですね。連絡

    PHPで画像XSSの一味変わった対策。 - cybertのセキュリティ日記
  • フォームの2重送信の防止…

    (Last Updated On: 2013年12月3日)ちょっと気になったので… 記事はコラム形式だったので書いていないだけだと思いますが2つ問題があります。 1. 識別可能なフォームの数に限りがある セッション変数を利用しているため変数名でフォームを識別する必要があり、ユーザが複数のフォームを利用した場合、正しく動作しない。この制限をなくす事もできますが、その場合セッション変数が大きくなりすぎた状態に対処するようにしないとならくなります。(ガーベッジコレクションの実装が必要) 2. レースコンディションによる2重投稿の可能性がある コードを見て分かる通り if (isset($_POST['submit_button'], $_SESSION['ticket'], $_POST['ticket']) && $_SESSION['ticket'] === $_POST['ticket']

    フォームの2重送信の防止…
  • 2007-08-28

    しっかり寝てるはずなのに・・・ http://blog.goo.ne.jp/t_iwano/e/b555f483f742dc6044722dc10a24741a で書かれていることと、私の考えはほぼ同じです。 どんな言語(Webアプリの開発者がそれこそ書くことはあまりないだろうけど、アセンブラとかCとか)であっても、安全なアプリを作ることは可能だと思います。しかし、安全なアプリを作るための労力が言語の特性によって大きく変わると思う。 例えば、いまどきCでWebアプリなんて組むことはほぼないと思うけど、書くことになったら、文字列処理に気をつけなければ、BoFというスクリプト言語ではほぼ発生しないといっていいくらいの脆弱性が生まれてしまうし、Perl単体でショッピングカートなんて作ろうとしたら、セッション管理の作りこみが大変になってしまう。 といった具合に、それぞれの言語で向き不向きってのが必

    2007-08-28
  • PHP と Web アプリケーションのセキュリティについてのメモ

    このページについての説明・注意など PHP は、Apache モジュールや、CGI、コマンドラインとして使用できるスクリプト言語です。このページでは、主に PHP における、Web アプリケーションのセキュリティ問題についてまとめています。 Web アプリケーションのセキュリティ問題としては、以下の問題についてよく取り挙げられていると思いますが、これらのセキュリティ問題について調べたことや、これら以外でも、PHP に関連しているセキュリティ問題について知っていることについてメモしておきます。 クロスサイトスクリプティング SQL インジェクション パス・トラバーサル(ディレクトリ・トラバーサル) セッションハイジャック コマンドインジェクション また、PHP マニュアル : セキュリティや、PHP Security Guide (PHP Security Consortium) には、PH

  • Takayuki Nakamura's blog: PHPIDS リリース

  • リモート・ファイル・インクルード攻撃

    当社のセキュリティオペレーションセンターでは,日々,Webサイトへの攻撃が確認されている。今回は,Webサイトに対してどのような攻撃が多く仕掛けられていて,どのような対策が必要かを解説する。 攻撃者がWebサイトを狙う理由は主に三つある。Webサイトからの重要情報取得,詐欺のためのサイト乗っ取り,Webページ改ざんによる政治・思想誘導である。このうち最も多いと見られているのが,重要情報の不正入手である。攻撃者は,Webアプリケーションのぜい弱性を突いてバックエンドのデータベースを不正に操作し,個人情報などを盗み出す。 Webサイトから不正に情報を盗み出す場合,よく使われる攻撃手法は二つある。一つはSQLインジェクション。もう一つはリモート・ファイル・インクルードである。SQLインジェクションはメディアでも頻繁に取り上げられるが,リモート・ファイル・インクルードは意外に紹介されていない。しか

    リモート・ファイル・インクルード攻撃
  • Return 0

    return0.infoに移転。昔の日記はまんま残してるので読みたい人はどうぞ。 世界樹の迷宮関係のコンテンツは移行が面倒なのでこっちに残すことにした。 世界樹の迷宮プレイ記録 世界樹の迷宮IIプレイ記録 世界樹の迷宮IIIプレイ記録

  • PHPの安全性確保に役立つ情報

    PHP開発者のStefan Esser氏が,3月にPHPのバグを公表し続けた活動「Month of PHP Bugs(PHPバグ月間)」をご記憶だろうか。PHPバグ月間によって公開されたバグの総数は41件だった。この活動を監視していた米SPI Dynamicsの上級研究開発エンジニアであるJeff Forristal氏が,バグ月間の総括と分析を提示している(関連記事:Month of PHP Bugs: Mid-month analysis(英語))。 Forristal氏の記事には,執筆時点で公開されていたバグの潜在的な影響について,興味深い情報が書かれている。なかでも注目に値するのは,自身のサーバー上で,他者(サード・パーティ)がPHPベースのスクリプトをアップロードして実行することを許可しているユーザーに,サーバー・セキュリティ上の深刻な問題をもたらす可能性がある2つのバグだ。For

    PHPの安全性確保に役立つ情報
  • T.Teradaの日記 - [セキュリティ][PHP]htmlspecialcharsと不正な文字の話

    PHPでは、HTMLエスケープ用の関数としてhtmlspecialcharsが用意されています。 今日の日記では、htmlspecialcharsについて書きます。これと近い働きをするhtmlentitiesについても触れます。 htmlspecialcharsの基 こんな感じで使います。 <?php echo htmlspecialchars($string, ENT_QUOTES, "UTF-8"); ?> 関数の引数は3つあります。 引数省略概要 第一引数不可エスケープ対象の文字列 第二引数可クォート文字の扱い(後述) 第三引数可文字コード(後述) 第二引数は、以下の3つの値のいずれかを指定可能です。 値エスケープ対象文字 ENT_NOQUOTES< > & ENT_COMPAT< > & " ENT_QUOTES< > & " ' 第二引数を指定しない場合のデフォルトは、ENT_

    T.Teradaの日記 - [セキュリティ][PHP]htmlspecialcharsと不正な文字の話
  • 19. マルチバイト文字とXSS脆弱性

    比較的新しい攻撃方法に、不完全なマルチバイト文字列を送信することでHTMLに 記述されているクォートを無効化する方法があります。この攻撃はHTML エス ケープのみでは防げない事に注意が必要です。では、どのように対策をすれば良 いのでしょうか? まずは、不完全なマルチバイト文字を利用してクォート(")を無効化できるこ とを確認しましょう。次のスクリプトをブラウザから実行して下さい(最後の ダブルクォテーションとPHPタグの間にスペースを入れないで下さい)。 <?php $str = urldecode('%81'); header('Content-Type: text/html; charset=SJIS'); ?> <?php echo htmlentities($str, ENT_QUOTES, 'SJIS') ?>" コードが分かりづらいので注意してください。PHPタグを2つに大別

    19. マルチバイト文字とXSS脆弱性
  • 1