タグ

securityとPHPに関するk-holyのブックマーク (65)

  • PHP-FPMに含まれるリモートコード実行に関する脆弱性(CVE-2019-11043)についての検証レポート | NTTデータ先端技術株式会社

    Tweet 2019/11/06 初版 2019/11/12 更新 2019/11/13 更新 2019/11/14 更新 2019/11/28 更新 松 拓也、上原 渓一郎、鈴木 涼太 2019年10月24日にThe PHP Groupが公表した、PHP-FPMに含まれるリモートから任意のコードを実行される脆弱性(CVE-2019-11043)についての検証を実施し、脆弱性の悪用が可能であることを確認しました。 1. 脆弱性の概要 「PHP-FPM」は、The PHP Groupによって提供されているFastCGI型のPHP実行環境です。 The PHP Groupにより、PHP-FPMにはWebサーバアプリケーションNginxPHP-FPMで構成される環境において、特定の設定値が設定されている場合にリモートからの任意コード実行が可能となる脆弱性(CVE-2019-11043)が存

    PHP-FPMに含まれるリモートコード実行に関する脆弱性(CVE-2019-11043)についての検証レポート | NTTデータ先端技術株式会社
  • Webアプリケーションの脆弱性ケーススタディ(WordPress編その2) - Qiita

    以前WordPressの脆弱性ケーススタディをご紹介しました。 Webアプリケーションの脆弱性ケーススタディ(WordPress編) 今回もWebアプリケーションのセキュリティを学ぶために、WordPressで実際にあった脆弱性をいくつかご紹介したいと思います。 XML External Entity (XXE) Processing CWE-611によると、XML External Entity (XXE) は以下のように記載されています。 XML documents optionally contain a Document Type Definition (DTD), which, among other features, enables the definition of XML entities. It is possible to define an entity by pr

    Webアプリケーションの脆弱性ケーススタディ(WordPress編その2) - Qiita
    k-holy
    k-holy 2019/02/14
    Slim3のコードで見つけた libxml_disable_entity_loader() なんぞこれって思ったら、こういう話か。CSVインジェクションはCSVというよりもExcelの問題だし、これ問題視されたら困るな。
  • PHPの脆弱性 CVE-2018-17082 によるキャッシュ汚染についての注意喚起

    エグゼクティブサマリ PHPの脆弱性CVE-2018-17082はXSSとして報告されているが、現実にはXSSとしての攻撃経路はない。一方、Apacheのmod_cacheによるキャッシュ機能を有効にしているサイトでは、キャッシュ汚染という攻撃を受ける可能性がある。 概要 PHPの現在サポート中のすべてのバージョンについて、XSS脆弱性CVE-2018-17082が修正されました。以下は対応バージョンであり、これより前のすべてのバージョンが影響を受けます。ただし、Apacheとの接続にApache2handlerを用いている場合に限ります。 PHP 5.6.38 PHP 7.0.32 PHP 7.1.22 PHP 7.2.10 PHP 5.5以前も対象であり、これらは脆弱性は修正されていません。 脆弱性を再現させてみる この脆弱性のPoCは、当問題のバグレポートにあります。 PHP ::

    PHPの脆弱性 CVE-2018-17082 によるキャッシュ汚染についての注意喚起
    k-holy
    k-holy 2018/09/25
    Apache2handler + mod_cache環境で攻撃を受ける可能性ありとのこと。
  • SIOS Tech. Lab - エンジニアのためになる技術トピックス

    2024-06-24 DomainObjectからValueObjectを自動生成するOSS作ってみた ~ ts-vo-generator~

    SIOS Tech. Lab - エンジニアのためになる技術トピックス
  • PHPMailerの脆弱性CVE-2016-10033について解析した

    エグゼクティブサマリ PHPMailerにリモートスクリプト実行の脆弱性CVE-2016-10033が公表された。攻撃が成功した場合、ウェブシェルが設置され、ウェブサーバーが乗っ取られる等非常に危険であるが、攻撃成功には下記の条件が必要であることがわかった PHPMailer 5.2.17以前を使っている Senderプロパティ(エンベロープFrom)を外部から設定できる 現在出回っているPoCはMTAとしてsendmailを想定しており、postfixを使っている環境では問題ない 対策版として公開されている PHPMailer 5.2.19も不完全であるので、回避策の導入を推奨する。 はじめに 12月24日にPHPMalerの脆弱性CVE-2016-10033が公表され、とんだクリスマスプレゼントだと話題になっています。 PHPからのメール送信に広く使われているライブラリの「PHPMai

  • PDOに複文実行を禁止するオプションが追加されていた

    エグゼクティブサマリ PHP 5.5.21、PHP 5.6.5 以降、PHPにPDO::MYSQL_ATTR_MULTI_STATEMENTSというオプションが追加され、PDO+MySQLの組み合わせで、SQLの複文を禁止できるようになった。この設定はSQLインジェクションの緩和策として有効である。 はじめに 2013年12月に公開した PHP+PDO+MySQLの組み合わせではSQLインジェクション攻撃で複文呼び出しが可能 にて、PDOとMySQLの組み合わせで、SQLインジェクションの文脈で複文呼び出しが可能であることを報告していましたが、その後のPHPのバージョンアップで、複文実行を禁止するオプションが追加されていましたので報告します。 対象のバージョンは以下の通りです。 PHP 5.5.21 以降 PHP 5.6.5 以降 全ての PHP 7.0、7.1 前述の記事を書いた後、3大

  • PHPの全バージョンの挙動をCGIモードで試す

    PHPの挙動を調べていると、マニュアルにも、ChangeLogにも載っていない変更にしばしば遭遇します。たとえば、PCRE系関数(preg_xxxx)の正規表現指定(第1引数)において、過去のPHPではNULLバイトを許容していましたが、最近のPHPでは、正規表現中のNULLバイトをエラーにしています。この変更は、マニュアルには載っておらず、ChangeLogには記載されているもののNULLバイトとは書いていないので、ちょっと気がつきにくいですね。 Fixed bug #55856 (preg_replace should fail on trailing garbage) このような場合、ソースコードの該当箇所を調べるか、適当にあたりをつけたバージョンのPHPをビルドして試すなどの手法がとられているかと思いますが、@hnwさんが phpall を発表されたことで、この種の調査が一挙に楽に

    PHPの全バージョンの挙動をCGIモードで試す
  • 【ワテ疑問】ノートンセキュリティはウイルス誤検出が多いのか?

    2013年8月から使っていた Norton Internet Security 3年版のライセンスがこの7月末で切れた。 クレジットカードで購入していたので、放っておくと勝手に自動更新される危険性があった。 先日この記事でも書いたように、ノートンは新規の購入では安く買えるのだが、更新版を買うと意外に高いのだ。 ワテもその事実に気づいたので、更新版の購入は中止して再び新規で3年版を買った。 ちなみにワテが3年前に買ったのは ノートンインターネットセキュリティ3年版 今回ワテが買ったのは ノートンセキュリティ3年版 だ。 ノートンインターネットセキュリティ(以下NIS)という製品は数年前に無くなってノートンセキュリティと言う製品に統合されたようだ。 同じくノートン360と言う製品も有ったが、ノートンセキュリティに統合されたようだ。 まあこれは分かり易いので良いと思う。 ワテの場合、NISを長く

    【ワテ疑問】ノートンセキュリティはウイルス誤検出が多いのか?
    k-holy
    k-holy 2016/09/29
    これうちでも出てたけどあまり騒がれてないな。WindowsでPHPユーザーのプログラマが少ないから?
  • PHPにおけるhttpoxyの対応 - Shin x Blog

    HTTP リクエストに任意の値をセットすることで、Web アプリケーションからの HTTP 通信を傍受したり、中間者攻撃(Man-in-the-Middle)を可能にする脆弱性が見つかっています。 専用サイト httpoxyという名前が付けられ、専用サイトが立ち上がっています。詳細は、このサイトが詳しいです。 httpoxy.org 攻撃内容 アプリケーションからHTTP通信を行う際に、環境変数HTTP_PROXYの値を、HTTPプロキシとして見るライブラリがある。 HTTPリクエストにProxyヘッダを付けられると、環境変数HTTP_PROXYにその値がセットされる。(これは、CGIの仕様) つまり、任意のプロキシを外部から指定できてしまうので、通信内容の傍受や偽装ができてしまう。 対象となる PHP アプリケーション HTTP リクエストを受けて動作する PHP アプリケーション アプ

    PHPにおけるhttpoxyの対応 - Shin x Blog
    k-holy
    k-holy 2016/07/20
    CentOSでhttpdの修正版が出てるとのこと
  • PHPに関するHTTPOXY脆弱性の問題と対応方法 - Code Day's Night

    外部から簡単にHTTP_PROXYという環境変数がセットでき、サーバ間通信や外部サイトと連携している場合に影響があるかもしれない脆弱性です。(HTTPoxy. CVE-2016-5385) PHPの場合はphp-fpm, mod_php, Guzzle4以上やいくつかのライブラリで影響あります。 対応方法は簡単です。 Apache側で対応する場合は、mod_headerを使える状況であれば、confファイルに下記の1行を追加。 RequestHeader unset Proxy FastCGIの場合は下記の1行を追加。 fastcgi_param HTTP_PROXY ""; Guzzleは6.2.1で対応されたようです。 Release 6.2.1 release · guzzle/guzzle · GitHub コミットログを見ると、CLIの時のみ、getenv('HTTP_PROXY

    PHPに関するHTTPOXY脆弱性の問題と対応方法 - Code Day's Night
  • PHPのJSON HashDosに関する注意喚起

    4年前にHashDos(Hash Collision Attack)に関する効率的な攻撃方法が28C3にて公開され、PHPを含む主要言語がこの攻撃の影響を受けるため対策を実施しました。しかし、PHP以外の言語が、ハッシュが衝突するデータを予測困難にする対策をとったのに対して、PHPは、GET/POST/COOKIE等の入力データの個数を制限するという対症療法を実施したため、PHPにはHashDosに対する攻撃経路がまだ残っているということは、一部の技術者には知られていました。例えば、以下の様なつぶやきにも見ることができます。 だって、 hashdos 脆弱性の時、 Python とかの言語が、外部入力をハッシュに入れるときに衝突を狙えないように対策したのに、phpだけPOST処理で対策したからね? json を受け取るような口もってるphpアプリのほとんどがhashdos残ってるんじゃない

    k-holy
    k-holy 2015/10/13
    unserialize()の脆弱性と同じく、json_decode()呼ぶような処理の前に認証と権限制御ちゃんとしていれば問題ないかな
  • PHPのunserialize関数に外部由来の値を処理させると脆弱性の原因になる

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

    k-holy
    k-holy 2015/07/16
    サーバ側キャッシュ用途くらいでしか使わないけど、cookieでの使用例が結構あるのね…JSONと違ってそのままバリデーションするのが難しいから厄介だと
  • 本当に PHP の DoS 脆弱性 (CVE-2015-4024) キツくない? - はちゅにっき

    hakaikosen.hateblo.jp 上記記事を「あら大変(棒読み)」とか思いながら読んでいたけれど、PHP の BTS の方を読んでみたら確かに原理から再現手順まで細かく記載されていて 「なんかこれまずそう」と思ったので、docker を使って検証してみることに。 PHP 入りの Docker コンテナは、Official のものを利用しました。registry.hub.docker.com 今回の脆弱性、POST しないページには関係ないのかな?と思ってましたが、よくよく見ると PHP さえ動くページであればなんでもいいらしい。 ということで以下のような PHP ファイルを用意し、ここにアクセス (攻撃) をします。 htdocs/index.php <!DOCTYPE html> <html> <head> <title>PHP Bugs #69364</title> </he

    本当に PHP の DoS 脆弱性 (CVE-2015-4024) キツくない? - はちゅにっき
    k-holy
    k-holy 2015/06/19
    自社管理で5.5以上に移行できてるところはバージョン上げるのも苦じゃないだろうけど…現実は…
  • Apacheの多重拡張子にご用心

    先日の日記『「10日でおぼえるPHP入門教室 第4版」はセキュリティ面で高評価』では、同書のアップロード機能のセキュリティ面を評価しつつ、「もうひと踏ん張り確認して欲しい内容がある」として、画像XSSの可能性について指摘しました。では、これを直せば完璧かというと、実はそうとも言えないという微妙な問題があります。それは、アップロード先の場所とファイル名の問題です。 ファイルをアップロードするディレクトリ: ドキュメントルート下の /php10/doc/ ファイル名: ブラウザから送信されたファイル名そのまま これらのうちファイル名の拡張子については、gif/jpg/jpeg/pngのみを許すという、いわゆるホワイトリスト検査がされていて、またgetimagesize()関数により、画像ファイルであることの簡易的なチェックをしています。しかし、この状態では、環境によってはアップロードしたファイ

    Apacheの多重拡張子にご用心
    k-holy
    k-holy 2015/04/30
    AddHandlerにそんな罠があったのね。前提を満たすことはなさそうだけど気を付けよう…
  • WordPressに仕込まれたマルウェアのコードが恐ろしすぎた

    Googleから「マルウェアに感染している」という警告が届いたので、調査して欲しい』という依頼を受けて、とあるサイトの調査をしたところ、どうやらWordPressにマルウェアが仕込まれている模様。 かなり時間を掛けて広範囲にヤラれていたので、マルウェアをすべて取り除くのに苦労したのですが、その際に見付けたマルウェアが中々恐しいものだったので、ここに書き残しておきたいと思います。 なお、真似してマルウェアを作られても困るので、ソースの一部を画像で載せることにします。 ## マルウェアのソースを人間に読めるようにしてみる では、早速マルウェアの中身を見てみましょう。 まず、いきなり始まるコメント行。そして、長くて一見ランダムに見える文字列。 そして2行目でランダムに見える文字列を base64_decode() し、eval() しています。base64_encode()しているのは、ソース

    WordPressに仕込まれたマルウェアのコードが恐ろしすぎた
  • PHPのmb_ereg関数群は不正な文字エンコーディングをチェックしない

    PHPのbasename関数には、マルチバイトに対応していないという誤解(実際にはロケールの設定をすればマルチバイトでも使える)があったり、不正な文字エンコーディングをチェックしないという課題があったりで、イマイチだなーと思っている方も多いと思います。 そういう方々が、preg_replace(u修飾子つき)やmb_ereg_replaceを用いて代替関数を作成している解説も見かけますが、それではこれら正規表現関数は不正な文字エンコーディングをチェックしているのだろうかという疑問が生じます。 ざっと調べたところ、以下の様な状況のようです。 preg_replace : 不正な文字エンコーディングをチェックしている mb_ereg_replcae : 不正な文字エンコーディングをチェックしていない ここでは、mb_ereg_replaceが不正な文字エンコーディングをチェックしない状況と、そ

    PHPのmb_ereg関数群は不正な文字エンコーディングをチェックしない
  • PHPのbasename関数は不正な文字エンコーディングをチェックしない

    昨日のエントリにて、PHPのbasename関数はマルチバイト文字を扱えることを説明しましたが、このブログの読者であれば、きっとbasename関数は不正な文字エンコーディングについてどの程度チェックするのかという疑問が生じたことでしょう(きっぱり)。実はbasename自体は、不正な文字エンコーディングをチェックせず、垂れ流してしまいます。その理由をbasenameのソースコードで確認してみましょう。以下は、basename関数の実装の一部です。 // ext/standard/string.c // php_basenmae() while (cnt > 0) { inc_len = (*c == '\0' ? 1: php_mblen(c, cnt)); switch (inc_len) { case -2: case -1: inc_len = 1; php_ignore_valu

  • bashにおける脆弱性「Shellshock」について

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

  • Re: [PHP-DEV] Cases Where Bash Shellshock Does Not Apply (mod_php, php-fpm )

    k-holy
    k-holy 2014/09/30
    “1) On many systems, /bin/sh is a symlink for bash 2) popen() uses /bin/sh 3) PHP uses popen() for its backticks, shell_exec, exec, system, passthru and proc_open functions.”
  • WordPressのPHPのXML処理の不備によりサービス妨害(DoS)攻撃が実行される脆弱性に関する検証レポート – (n)

    【概要】 WordPressに、リモートよりサービス妨害(DoS)攻撃が可能な脆弱性が発見されました。 この脆弱性は、WordPress内のPHPがXMLを処理する際の処理に不備が存在するため、リモートよりサービス妨害(DoS)攻撃を受ける問題が起こります。 これにより、攻撃者はリモートからサービス妨害(DoS)攻撃を行うことが可能になります。それにより、利用者がWebサービスに接続し難くすることが可能です。 今回、この脆弱性の再現性について検証を行いました。 【影響を受ける可能性があるシステム】 ■WordPressWordPress 3.5から3.9.2未満のバージョン 【対策案】 WordPress.orgより、この脆弱性を修正するプログラムがリリースされています。 当該脆弱性の修正を含む最新のバージョンを適用していただくことを推奨いたします。 WordPress > 日

    WordPressのPHPのXML処理の不備によりサービス妨害(DoS)攻撃が実行される脆弱性に関する検証レポート – (n)