リリース日: 2002-04-3
脆弱性カテゴリ: PHP、リモート WEB インターフェイス、サービス拒否
bugtraq ID 4432、4434
問題のあるバージョン:
phpBB 1.44、以前のバージョンおよび phpBB 2.0 はテストされていません。
説明:
phpBB は、広く使用されている PHP ベースのフォーラムです。 BBcodeの「ソースコード」クラスの参照処理に抜け穴があり、特殊な形式でエスケープ文字列を送信することでデータベースにダメージを与え、サーバー上のCPUやメモリリソースを大量に消費する可能性があることが判明した。 。
詳細:
phpBB は、主にネストされたタグ
をサポートしていることが原因で、「ソース コード」クラスへの参照を不適切に処理します。問題のコードは、functions.php の bbencode_code 関数です。
次のような投稿を送信すると:
データベースに保存される実際のデータは次のようになります:
[1code]
[/code]
データは 49 バイトしかありませんが、リソースの使用量は非常に多くなります:
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND
25741 nothing 14 0 11828 9996 416 R 99.9 7.8 2:38 httpd
数秒後、大量のデータが生成され、大量のメモリが消費されます:
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME COMMAND 3 root 10 0 0 0 0 SW 2.5 0.0 4 :13 kswa pd
25742Everyone 17 0 265M 90M 52104 R 25.1 73.0 1:45 httpd
そのようなネストされた投稿はデータベースに保存されませんが、ネストが増加するにつれて、リソースの使用量は幾何級数的に増加します。より多くのデータを一度に送信したり、連続的に送信したりすると、大量のシステム リソースが占有され、最終的にはサービスが拒否される可能性があります。
実験環境: linux 2.4.10 Apache/1.3.23 PHP 4.12
解決策:
1. BBcode を一時的に無効にします。
2. Alert7 は、ネストされたタグのサポートを一時的に無効にする次の変更メソッドを function.php に提供します:
773 行目から始まる bbencode_code 関数を次のように変更します:
function bbencode_code($message, $is_html_disabled)
{
$message = preg_replace("/[code](.*?)[/code]/si", "
\1gt;gt;
| gt;gt; return $message; } // bbencode_code() 通常削除できない投稿については、手動でデータベースに接続する必要があります削除するには 。このような投稿があるとします: http://host/forums/viewtopic.php?topic=1162&forum=1&0 $ mysql -uuser -ppasswd mysql> use databasename; mysql> from topic_id = 1162; //post_id = 6280 の投稿から削除 mysql> : WSS (Whitecell Security Systems) は、非営利の民間テクノロジー組織であり、さまざまなシステム セキュリティ テクノロジーの研究に専念しています。伝統的なハッカー精神を堅持し、テクノロジーの純粋性を追求します。 WSS ホームページ: http://www.whitecell.org/ WSS フォーラム: http://www.whitecell.org/forum/ 追加: その後のテストで、Based を含むかなりの数の BBS に同様の問題があることが判明しました。 PHP、CGI、ASP に関しては、皆さんも自分のフォーラムをテストしてみてください。問題がある場合は、この記事を参照して解決してください。 http://www.bkjia.com/PHPjc/314380.html www.bkjia.com true 声明: この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。 |