BugTrack/210
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*%00の含まれるGETリクエストによって引き起こされる問題 [#f...
-ページ: BugTrack
-投稿者: [[hirofummy]]
-優先順位: 緊急
-状態: 完了
-カテゴリー: 本体バグ
-投稿日: 2003-02-23 (日) 01:15:30
-バージョン:
**メッセージ [#a1eb7349]
GETリクエスト中に%00を含めることで本来出来ないはずのこと...
私が確認しただけで、凍結ページの編集(さらに編集後は凍結...
PukiWiki1.4でこの問題を確認しましたが、ソースを見る限り1....
**参考 [#ua3efa1e]
http://ns1.php.gr.jp/pipermail/php-users/2003-January/012...
**対策案 [#wa803846]
まず以下の関数をfunc.phpあたり((どのファイルに追加するの...
function sanitize_null_character($param)
{
if(is_array($param))
{
$result = array();
foreach($param as $key => $value)
{
$key = sanitize_null_character($key);
$result[$key] = sanitize_null_character($value);
}
}
else
{
$result = preg_replace('/\x00/','',$param);
}
return $result;
}
その上で1.4であれば152行目、1.3.3であれば45行目(magic_qu...
$get = sanitize_null_character($get);
$post = sanitize_null_character($post);
$cookie = sanitize_null_character($cookie);
さらに、1.4なら191行目、1.3.3なら58行目(上記の挿入を行っ...
$arg = preg_replace('/\x00/','',$arg);
以上で完了ですが、今後のサニタイズ漏れを防ぐ意味で、QUERY...
$arg = "";
if(sizeof($_GET)==1)
{
reset($get);
list($arg,) = each($get);
reset($get);
}
以上のように書き換える方が適切でしょう。
この書き換えを行った場合、$arg = preg_~の挿入は必要あり...
----
-POSTやCOOKIEを利用して同様の攻撃が可能かどうかは私はよく...
-cvsに投入しました。確認をお願いします。 -- [[ぱんだ]] SI...
-確認しました。preg_replace('/\x00/','',$arg)じゃなくてsa...
-「サニタイズ漏れ」を防ぐ、という意味では$HTTP_SERVER_VAR...
-この問題に対処した版を1.3.4 としてリリースしたりするんで...
-セキュリティに関係するfixなので、リリースしたほうがいい...
-[[開発日記/2003-02-23]]でリリース内容の検討中です。 -- [...
//#comment
終了行:
*%00の含まれるGETリクエストによって引き起こされる問題 [#f...
-ページ: BugTrack
-投稿者: [[hirofummy]]
-優先順位: 緊急
-状態: 完了
-カテゴリー: 本体バグ
-投稿日: 2003-02-23 (日) 01:15:30
-バージョン:
**メッセージ [#a1eb7349]
GETリクエスト中に%00を含めることで本来出来ないはずのこと...
私が確認しただけで、凍結ページの編集(さらに編集後は凍結...
PukiWiki1.4でこの問題を確認しましたが、ソースを見る限り1....
**参考 [#ua3efa1e]
http://ns1.php.gr.jp/pipermail/php-users/2003-January/012...
**対策案 [#wa803846]
まず以下の関数をfunc.phpあたり((どのファイルに追加するの...
function sanitize_null_character($param)
{
if(is_array($param))
{
$result = array();
foreach($param as $key => $value)
{
$key = sanitize_null_character($key);
$result[$key] = sanitize_null_character($value);
}
}
else
{
$result = preg_replace('/\x00/','',$param);
}
return $result;
}
その上で1.4であれば152行目、1.3.3であれば45行目(magic_qu...
$get = sanitize_null_character($get);
$post = sanitize_null_character($post);
$cookie = sanitize_null_character($cookie);
さらに、1.4なら191行目、1.3.3なら58行目(上記の挿入を行っ...
$arg = preg_replace('/\x00/','',$arg);
以上で完了ですが、今後のサニタイズ漏れを防ぐ意味で、QUERY...
$arg = "";
if(sizeof($_GET)==1)
{
reset($get);
list($arg,) = each($get);
reset($get);
}
以上のように書き換える方が適切でしょう。
この書き換えを行った場合、$arg = preg_~の挿入は必要あり...
----
-POSTやCOOKIEを利用して同様の攻撃が可能かどうかは私はよく...
-cvsに投入しました。確認をお願いします。 -- [[ぱんだ]] SI...
-確認しました。preg_replace('/\x00/','',$arg)じゃなくてsa...
-「サニタイズ漏れ」を防ぐ、という意味では$HTTP_SERVER_VAR...
-この問題に対処した版を1.3.4 としてリリースしたりするんで...
-セキュリティに関係するfixなので、リリースしたほうがいい...
-[[開発日記/2003-02-23]]でリリース内容の検討中です。 -- [...
//#comment
ページ名: