タグ

関連タグで絞り込む (1)

タグの絞り込みを解除

securityとphpに関するTokyoIncidentsのブックマーク (27)

  • PHPMailerのリモートコード実行脆弱性(CVE-2016-10033)の影響範囲 - Qiita

    今回の脆弱性 CVE-2016-10033 CVE-2016-10045 CVE-2016-10074(Swift Mailer) 追記 2016/12/28 14:15 Postfixを使っていて、sendmailコマンドの代わりにPostfixのsendmailコマンドを使っている場合は、Postfixのsendmailコマンドが -X オプションを無視するようですので大きな影響を受けないと思います。ただ、別のオプションで違う脆弱性が発生する可能性もあるので、PHPMailerはアップデートしたほうが良いですね。 2016/12/28 15:35 PHPMailer5.2.18の修正を回避する新しい攻撃が見つかり、 CVE-2016-10045として登録されその攻撃方法も公開されてます。こちらはPHPMailer5.2.21で対応されています。 この攻撃は、PHPMailer5.2.1

    PHPMailerのリモートコード実行脆弱性(CVE-2016-10033)の影響範囲 - Qiita
  • Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)

    2. アジェンダ • Webサイトへの侵入経路とは • 怒涛のWordPressサイトへの侵入デモ6連発 – パスワードクラック – PHPの脆弱性に対する攻撃 – プラグイン脆弱性に対する攻撃 – シンボリックリンク攻撃 – SQLインジェクション攻撃 – JSON HashDos • 対策の考え方 2 Copyright © 2012-2015 HASH Consulting Corp. 3. 徳丸浩の自己紹介 • 経歴 – 1985年 京セラ株式会社入社 – 1995年 京セラコミュニケーションシステム株式会社(KCCS)に出向・転籍 – 2008年 KCCS退職、HASHコンサルティング株式会社設立 • 経験したこと – 京セラ入社当時はCAD、計算幾何学、数値シミュレーションなどを担当 – その後、企業向けパッケージソフトの企画・開発・事業化を担当 – 1999年から、携帯電話向

    Webサイトをめぐるセキュリティ状況と効果的な防御方法(WordPress編)
  • PHP入門書のSQLインジェクションとXSS対策をあらためて調べてみた

    継続的にPHP入門書のセキュリティ問題を確認していますが、今回は「やさしいPHP 第3版」を取り上げ、今どきのPHP入門書のセキュリティ状況を報告したいと思います。 やさしいPHP やさしいシリーズ 単行 – 2008/2/29 やさしいPHP 第2版 (やさしいシリーズ) 単行 – 2010/8/28 やさしいPHP 第3版 (「やさしい」シリーズ) 大型 – 2014/9/26 上記のように、2008年に初版が出版された後2回の改版がありました。 第2版ではクロスサイトスクリプティング(XSS)の説明が追加され、第3版ではXSSに加えSQLインジェクションの説明が追加されました。つまり、初版ではこれらの説明はなかったということです。 第3版におけるSQLインジェクションの対策方法はプレースホルダによるもので、結果として書にSQLインジェクション脆弱性は見当たりません(パチパチパ

    PHP入門書のSQLインジェクションとXSS対策をあらためて調べてみた
  • 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 副読本:お助け電子BOOKへの寄稿の顛末

    谷藤賢一さんの著書『気づけばプロ並みPHP~ショッピングカート作りにチャレンジ! 』に、発売1周年の謝恩キャンペーンとして『副読:お助け電子BOOK』が公開されました(*1)。私はこの副読の中で、『第2章 【徳丸 浩氏 スペシャル寄稿】安全なWebアプリケーションのために』を寄稿しています。このエントリでは、寄稿の顛末を報告したいと思います。 動機 私が書『気づけばプロ並みPHP』を購入したのは昨年の10月29日ですから、書が出版されてまもなく、今から約1年前です。私は書を一読して、セキュリティ上の多数の問題があることに気がつきました。 以前は、セキュリティ上の問題が多い書評をブログ記事として書くことも多かったのですが、この際は書評という形にするのはためらいがありました。その理由は以下の様なものです。 私のブログの読者層はセキュリティに関心の高い方たちであり、書の読者とは重

  • PHPにおけるオブジェクトインジェクション脆弱性について — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    SQLインジェクションはかなり有名になりましたが、オブジェクトインジェクションはまだあまり聞かないので、まとめておきます。 Dependency Injection(DI)とは関係ありません。 オブジェクトインジェクション脆弱性とは? SQLインジェクションが外部からSQL文を注入する攻撃であるのと同じように、オブジェクトインジェクションとは外部からオブジェクトを注入する攻撃です。 外部からオブジェクトを注入できれば、そのオブジェクトの機能によりさまざまな攻撃ができる可能性があります。最悪の場合、任意のコードを実行できる脆弱性になります。 PHPの場合、この攻撃が可能なのは、unserialize()関数を悪用できる場合です。 攻撃の方法 unserialize()関数に外部から任意のデータを渡すコードがあった場合、攻撃者は自由にシリアライズされたデータを送信することで、生成されるオブジェ

  • よくわかるPHPの教科書 PHP5.5対応版のクロスサイト・スクリプティング

    たにぐちまことさんの よくわかるPHPの教科書がこのたび改版されて、よくわかるPHPの教科書 【PHP5.5対応版】として出版されました。旧版はmysql関数を使ってSQL呼び出ししていましたが、mysql関数がPHP5.5にて非推奨となったための緊急対処的な内容となっているようです。つまり、従来mysql関数を呼び出していた箇所をmysqliの呼び出しに変更したというのが、主な変更点のようで、これ以外はあまり変更点は見あたりません。 既に、Amazonでは、熱烈な読者の方からの詳細のレビューが届いています。 神御降臨! 言わずと知れたPHPプログラミング書籍のロングセラー。 2010年9月に発売された前作の改訂版。 PHPのバージョンも最新の5.5に対応、内容は前作と殆ど同じ。 少し前に前作を購入した方も書を購入した方がいいでしょう。 【中略】 それにしても、帯の「3万人に読まれた定

  • 書籍「気づけばプロ並みPHP」にリモートスクリプト実行の脆弱性

    書籍「気づけばプロ並みPHP」のサンプルスクリプトにリモートスクリプト実行の脆弱性があるので報告します。 はじめに Yahoo!知恵袋の質問を読んでいたら、以下の質問がありました。 気づけばプロ並みPHP (著)谷藤賢一 (発行)リックテレコムP112の画像をアップロードする機能でエラーがでます。 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11119835496 より引用 質問に対しては回答が既についてクローズされていましたが、引用されているソースを見て任意のファイルを任意のファイル名で、Web公開ディレクトリにアップロードできることに気づきました(下記)。 <?php // 略 $pro_gazou=$_FILES['gazou']; // 略 if($pro_gazou['size']>0) { if ($pro_

  • PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    ことの始まり PHP の srand 関数について調べていて、ひょんな拍子にsrandのseedに文字列(numericである必要はあるけど)を渡せることを知った。 では、ここに long を超えるものを放り込むとどうなるのか。 では結果をごらんください。 「!?!?」 なぜこうなるのか 秘密は PHP 処理系の zend_parse_arg_impl 関数にあります。 zend_parse_arg_impl はphpの関数に渡された引数をパースする部分で、longを要求する関数にstringな値が渡された時の処理はこの部分ですね。 https://github.com/php/php-src/blob/master/Zend/zend_API.c#L335 さて、読み進めていくと「ん!?!?」ってなる行があるはずです。 この行ですね https://github.com/php/php-

    PHP はいつもわたしに新鮮な驚きを与えてくれる - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • CGI版PHPに対する魔法少女アパッチマギカ攻撃を観測しました

    昨夜に、魔法少女アパッチ☆マギカ攻撃を観測しました。魔法少女アパッチ☆マギカとは、PoCのソースコードに Apache Magica by Kingcope とコメントされていることに由来しています(というか、私がそう訳しましたw)。 これは10月29日にPoCが発表されたPHP-CGI攻撃(CVE-2012-1823)の変種です。従来のPHP-CGI攻撃は、CGI版PHPが動作する環境で、PHPスクリプト(中身はなんでもよい)に対する攻撃でしたが、魔法少女アパッチマギカの方は、/cgi-bin/に置かれたPHP処理系(php-cgiなど)に直接攻撃するものです。 CGI版PHPを設置する方法は複数ありますが、よく使われる方法としてApacheのリダイレクトによりPHPスクリプトをPHP処理系に実行させる方法があります。この場合、/cgi-bin/php-cgiなどとしてPHP処理系を公開

  • A further update on php.net

    The PHP development team announces the immediate availability of PHP 5.4.23. About 10 bugs were fixed, including a security issue in OpenSSL module (CVE-2013-6420). All PHP 5.4 users are encouraged to upgrade to this version. For source downloads of PHP 5.4.23 please visit our downloads page, Windows binaries can be found on windows.php.net/download/. The list of changes is recorded in the ChangeL

    A further update on php.net
  • 『よくわかるPHPの教科書』のSQLインジェクション脆弱性 - ockeghem's blog

    このエントリでは、数値型の列に対するSQLインジェクションについて説明します。 以前のエントリで、たにぐちまことさんの書かれた『よくわかるPHPの教科書』の脆弱性について指摘しました。その際に、『私が見た範囲ではSQLインジェクション脆弱性はありませんでした』と書きましたが、その後PHPカンファレンス2011の講演準備をしている際に、同書を見ていてSQLインジェクション脆弱性があることに気がつきました。 脆弱性の説明 問題の箇所は同書P272のdelete.phpです。要点のみを示します。 $id = $_REQUEST['id']; // $id : 投稿ID $sql = sprintf('SELECT * FROM posts WHERE id=%d', mysql_real_escape_string($id) $record = mysql_query($sql) or die(

    『よくわかるPHPの教科書』のSQLインジェクション脆弱性 - ockeghem's blog
  • ブラインドSQLインジェクションのスクリプトをPHPで書いたよ #phpadvent2012

    この記事はPHP Advent Calendar 2012の20日目です。昨日はTakayuki Miwaさんの「ComposerとHerokuではじめる!PHPクラウド生活」でした。 以前、「『よくわかるPHPの教科書』のSQLインジェクション脆弱性」というタイトルで、同書のSQLインジェクション脆弱性について説明しましたが、SQLインジェクション脆弱性のあるSQL文がDELETE FROMだったので、先のエントリでは、脆弱性の悪用方法としてはデータ(ミニブログの記事)の削除を説明しました。簡単に「全ての記事を削除できる」ので重大な脆弱性ではありますが、個人情報などが漏洩する例ではありませんでした。 このエントリでは、ブラインドSQLインジェクションという技法により、DELETE FROM文の脆弱性から、個人情報を得る手法を説明します。 脆弱性のおさらい ここで、脆弱性のおさらいをしまし

    ブラインドSQLインジェクションのスクリプトをPHPで書いたよ #phpadvent2012
  • 書式文字列によるSQLインジェクション攻撃例

    以下のようなコードがあり、nameは画面入力なのでSQLインジェクションが起こるのでは? と作成者に確認したところ、"%s"してあるから大丈夫との返事をもらいました。 ネット調べるとmysql_real_escape_stringでエスケープしてから"%s"で変換すれば大丈夫といった内容は見つけたのですが、mysql_real_escape_stringなど不要との返事をもらいました。 なぜ?と聞くとそういうものだとしか回答がありません。 ひどいですね。これは質問者が正しく、sprintfの%sで受けただけでは、SQLインジェクション脆弱性となります。 しかし、どうしてこのような間違った知識が出てきたのかと考えるに、数値を%dで受ける場合と混乱したのではないかと憶測しました。数値の場合、書式%dで受けていれば、仮に攻撃コードが入力されたとしても、%dで整数に強制変換されるので、SQLインジ

    書式文字列によるSQLインジェクション攻撃例
  • セッションアダプションがなくてもセッションフィクセイション攻撃は可能

    大垣(@yohgaki)さんと、セッションアダプション脆弱性が「重大な脅威」か否かで論争を続けています。 大垣さん:第25回 PHPのアキレス腱 ── セッション管理徳丸:PHPSession Adoptionは重大な脅威ではない大垣さん:PHPのセッションアダプション脆弱性は修正して当然の脆弱性議論がかみ合わないので、twitterで「ブログ読みました。サンプルも動かしました。問題は分かるのですが、セッションアダプションがないPHPだと、何が改善されるのかが分かりません。教えて下さい」とツイートしたところ、大垣さんがブログで返信下さいました。 大垣さん: セッションアダプション脆弱性がないセッション管理が必要な理由これを読んでかみ合わない理由が分かりました。大垣さん、ありがとうございます。以下大垣さんのブログの末尾を引用します。 脱線しましたが、何が改善されるのか?結論は ログイン時に

    セッションアダプションがなくてもセッションフィクセイション攻撃は可能
  • CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823)

    CGI環境でPHPを動作させているサイトには、リモートからスクリプト実行を許してしまう脆弱性があります。php.netから提供されている修正リリース(PHP 5.3.12 / PHP 5.4.2)は不完全なため、該当するサイトは至急回避策を導入することを推奨します。 概要 CGIの仕様として、クエリ文字列に等号を含めない場合は、クエリ文字列がCGIスクリプトのコマンドライン引数として指定されます。 例えば、http://example.jp/test.cgi?foo+bar+bazという呼び出しに対しては、test.cgiは以下のコマンドラインで呼び出されます。 test.cgi foo bar baz この仕様を悪用して、CGI版のPHPにコマンドライン引数としてPHPのオプションを指定できます。例えば、http://example.jp/test.php?-s というリクエストは、-s

    CGI版PHPにリモートからスクリプト実行を許す脆弱性(CVE-2012-1823)
  • PHPのescapeshellcmdを巡る冒険

    以前、ブログ記事「PHPのescapeshellcmdの危険性」にて、escapeshellcmd関数の「余計なお世話」によって危険性が生まれていることを指摘しましたが、その後大垣さんによって修正案が提示され、結局「それはマニュアルの間違い」ということで決着が着いたようです。ところが、この議論とは別のところで、escapeshellcmdはPHP5.4.0で挙動が少し変わっていることが分かりました。 経緯 2011/1/1 徳丸が「PHPのescapeshellcmdの危険性」を書いて、クォート文字がペアになっている場合にエスケープしないという仕様が余計なお世話であり、危険性が生じていることを指摘 2011/1/7 大垣さんがブログエントリ「phpのescapeshellcmdの余計なお世話を無くすパッチ」にて修正案を提示 2011/10/23 廣川さんが、大垣さんのパッチ案を少し修正して

  • PHP5.4のhtmlspecialcharsに非互換問題

    第3引数を指定していない場合の影響前述のように、htmlspecialchars関数の第3引数を指定していない場合、PHP5.3までは、文字エンコーディングがISO-8859-1が指定されたとみなされます。この場合、入力内容にかかわらず不正な文字エンコーディングと判定されることはありません。したがって、文字エンコーディングのチェックが働かない代わりに、エラーになることもありませんでした。 これに対して、PHP5.4の仕様により文字エンコーディングがUTF-8とみなされた場合に、Shift_JISやEUC-JPの2バイト文字が入力されると、高い確率で「UTF-8として不正」というエラーになり、htmlspecialchars関数の出力は空になります。つまり、プログラムが正常に動作しません。 htmlspecialchars関数の第3引数を指定しておらず、内部文字エンコーディングがShift_

  • PHP 5.4におけるhtmlspecialchars()の問題 - Opensource days

    PHP 5.4 beta 2が出ているところですが、ソースコード(html.c)を見ていて、XSS対策で使用される htmlspecialchars()の文字コード指定がPHP 5.3とは異なる動作をすることに気が付きました。 内部文字コード(mbstring.internal_encoding)が使用される以下のようなシチュエーションです。 <?php // test.php echo htmlspecialchars("foo",ENT_QUOTES,""); mbstring.internal_encoding="SJIS-win"と指定することにします。(推奨はできませんが、)外字対応(絵文字対応)でCP932を使用したい場合を想定しています。 PHP 5.3で実行 php53/sapi/cli/php -d mbstring.internal_encoding="SJIS-win

    PHP 5.4におけるhtmlspecialchars()の問題 - Opensource days
  • 9月10日PHPカンファレンス2011で講演しました

    ► 2020 (4) ► 9月 (1) ► 7月 (1) ► 6月 (1) ► 1月 (1) ► 2019 (3) ► 5月 (1) ► 3月 (1) ► 2月 (1) ► 2017 (4) ► 11月 (1) ► 9月 (1) ► 5月 (1) ► 4月 (1) ► 2016 (5) ► 11月 (1) ► 10月 (1) ► 9月 (1) ► 7月 (1) ► 3月 (1) ► 2015 (2) ► 10月 (1) ► 7月 (1) ► 2014 (1) ► 8月 (1) ► 2013 (2) ► 12月 (1) ► 8月 (1) ► 2012 (11) ► 12月 (2) ► 10月 (1) ► 6月 (2) ► 5月 (1) ► 4月 (3) ► 3月 (1) ► 1月 (1) ▼ 2011 (2) ► 10月 (1) ▼ 9月 (1) 9月10日PHPカンファレンス2011で講演