attach.inc.php プラグインで、存在しないページにファイルを添付できてしまう

メッセージ

plugin_attach_action()関数内の Authentication 部分で、 ページの存在チェックを行っていますよね。

ページが存在した場合は、参照権限の確認などを行っていますが、 ページが存在しなかった場合の対処コードが書かれていないため、 以下のように、存在しないページを故意に指定してファイルのアップロードができてしまいます。

~pukiwiki.php?plugin=attach&pcmd=upload&page=<存在しないページ名>

通常の使い方では、存在しないページにファイルを添付するような 使い方は考えられないと思いますので、次のように修正してはいかがでしょうか?

  // Authentication
  if (array_key_exists('refer',$vars)
      and is_pagename($vars['refer']))
  {
      $read_cmds = array('info','open','list');
      in_array($pcmd,$read_cmds) ? 
              check_readable($vars['refer']) : 
                  check_editable($vars['refer']);
  }
+ else {
+    return array('result'=>FALSE,'msg'=>$_attach_messages['err_noparm']);
+ }


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2004-08-15 (日) 08:15:00
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.287 sec.

OSDN