タグ

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

タグの絞り込みを解除

cakephpとsecurityに関するaki77のブックマーク (5)

  • CakePHPのSecurityComponentの脆弱性で任意のPHPコードが実行できる仕組み - disり用。

    もはや懐かしい感じのあるCakePHPセキュリティトークンから任意のPHPを実行できる脆弱性ですが、なぜこれで任意のPHPコードが実行可能になってしまうのか心配で夜も眠れない方の為に、実行される仕組みを解説してみようと思います。詳細とアドバイザリ、PoCは以下のものを参照しています。 http://co3k.org/diary/12 http://malloc.im/CakePHP-unserialize.txt http://malloc.im/burnedcake.py CakePHPSecurityComponentが提供するCSRF対策のトークンは単一の識別子ではなく、':' でトークンと$lockedという謎の値が繋がれたものになっています。$lockedには配列をシリアライズしたものをROT13で変換したものが入っています。この$lockedに任意の値を入れることで任意のP

    CakePHPのSecurityComponentの脆弱性で任意のPHPコードが実行できる仕組み - disり用。
  • CakePHP の PHP コード実行の脆弱性を使って CakePHP を焦がす - co3k.org

    2010/11/13 に出たらしい http://bakery.cakephp.org/articles/markstory/2010/11/13/cakephp_1_3_6_and_1_2_9_released を読んでびっくりしたんですが、 Twitter を軽く検索した限りだと CakePHP ユーザでない僕が気づいているのに (日の) CakePHP ユーザさんたちがどうも気づいていないっぽいのでわかりやすくまとめてみることにしました! CakePHP には任意の PHP コードが実行できる致命的な脆弱性があります! 影響のあるサイト結構ありそうですが悪用厳禁です! ※通常リリースの告知のなかにこんな致命的な脆弱性に関する情報を思いっきりわかりにくく書いちゃうのはひどいなあと思うので、ユーザの方は CakePHP に文句を言うといいと思います。僕は CakePHP ユーザじゃない

  • へぼへぼCTO日記 - CakePHPのgetClientIPを使っていいのは小学生までだよねー

    PHPで開発をすることが多くなりPerlの良さを再確認している今日この頃ですが皆さんいかがお過ごしでしょうか。 さて、今日は今もっともナウいPHPのWebアプリケーションフレームワークであるCakePHPのお話を一つ。 CakePHPには組み込みコンポーネントとしてリクエストハンドラ(RequestHandler)が備わっています。 リクエストハンドリング :: 組み込みのコンポーネント :: マニュアル :: 1.2 Collection :: The Cookbook: このRequestHandlerのメソッドであるgetClientIPが小学生には危険そうだというお話。(あ、このエントリのタイトル逆w) まずはgetClientIPの実装コードを。(1.2を例にとっているが1.1もほぼ一緒である) https://trac.cakephp.org/browser/trunk/c

  • 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); } } ?> これを見

  • CakePHPでCSRF対策

    CakePHPでCSRF対策を行う方法です。 フレームワークに含まれているSecurityコンポーネントを使います。 Security#requestAuth()にアクションを記述しておくと、アクション実行前に正規リクエストかどうかをチェックします。チェックの方法はCSRF対策で一般的なワンタイムトークン方式です。 まずController#beforeFilter()にてチェックを行うアクションを指定します。 [app/controller/test_controller.php] < ?php class TestController extends AppController { var $name = 'Test'; var $components = array('Security'); function beforeFilter() { $this->Security->req

  • 1