Page 1 of 2

[SOLVED !] Hack für AdminX in phpwcms.php gesucht!

Posted: Fri 12. Sep 2008, 11:36
by kukki
Für eine individuelle Erweiterung einer gemeinnützigen Seite suche ich ein Hack, die hardcodiert sein kann.
Ein Admin soll alles an Rechten habe, wie bisher - ohne Einschränkungen.
Ein weiterer Admin soll keine Zugriffe auf die CSS, die Vorlagen und das Seitenlayout haben, alles andere wäre egal.
Die CSS könnte ich mit CMOD 444 sperren. Aber die Vorlagen sind ja in der Datenbank gespeichert.

Meine :idea: wäre in der /phpwcms.php den Aufbau der linken Spalte einfach abzuändern, dass diese Links nicht mehr enthalten sind.
Wenn man dann per Hand in der Datenbank den zweiten Admin auf AdminX umstellt, wäre dies schon eine einfach wirkungsvolle Möglichkeit für die CASEabfrage, die mir vollkommen reichen würde.

Kann mir da jemand weiterhelfen :?:

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Fri 12. Sep 2008, 12:19
by update
:lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol: :lol:
Ich schmeiss mich glatt weg - die User / Gruppen /FE-BE / Editorenverwaltung mit allen fundable Dingens kommt!
Obacht Leute - Kukki schafft, was alle anderen bisher nicht geschafft haben!
ROFLMAO

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Fri 12. Sep 2008, 12:39
by kukki
Nicht schön, was Du da schreibst.
Ich will keine User-FE-BE-verwaltung, ich will nur, dass einzig allein die angeführten Links im Backend für einen Webmaster nicht zu sehen sind, damit derjenige nicht auf den Dreh kommt, dass Layout unwiederruflich zu zerschießen. Das wird derjenige sowieso schon selber rauskriegen, weil ich ahne, dass er die Menüs umstellen will :twisted: Was ist an meiner hardcodierten Idee so abfällig? Hast Du eien andere bessere Idee oder habe ich eine neue User-BE-FE- Komplett-Verwaltung verpasst? :evil:
Deswegen werde ich denjenigen Mitgliedern des Vereins keine neue Seite mit einem anderen wCMS machen! :P

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Fri 12. Sep 2008, 13:01
by update
sorry, kukki, habe gerade (auch bezüglich dieses "hacks" (der mich an diverse Dinge erinnert hat) ziemlich schlechte Laune und Du bekommst es ab... :(

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Fri 12. Sep 2008, 14:40
by kukki
Siehe auch PN! :)

Ich habe es gerade probiert! Meine Idee würde sich durchsetzen lassen für diesen speziellen Fall meiner Einschränkungen. Ich habe gerade einige Menüunkte mit "//" ausgeschaltet. Und weg waren diese zur Bedienung durch einen UNBefugten :evil:

Jetzt wäre nur noch die Abfrage einzufügen, um eine Varibale für die Einschränkung des "adminXX" zu bekommen. (§do)

Hier reichen meine Kenntnisse nicht mehr für eine Umsetzung. Mein Sohn ist nicht da wegen seiner Immatrikulation und Studienstart. Wer kann mir hier ein wenig helfen!

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Sat 13. Sep 2008, 15:58
by Toflar
Hallo kukki!

Ich schaue mal was ich mit meinen php-Kenntnissen machen kann.
Aber wie du dir selbst denken kannst, muss bei jedem Update, der Hack wieder geschrieben werden.

Ist also nicht DIE Lösung :wink:

Du liest von mir...

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Sat 13. Sep 2008, 16:39
by Cipolla
Evtl. wäre es mit bordmitteln einfacher einen neuen user anzulegen und die Artikelbesitzer auf diesen benutzer umzustellen. Somit kann admin wie gewohnt alles bearbeiten, und der user halt "nur" in allen artikeln rumsauen.

Ok, am anfang wahrscheinlich ne menge arbeit wenn du sehr viele artikel hast, aber zumindest brauchst du keinen hack und das system bleibt wunderbar updatefähig.

Ggfs. kann man den "Besitzer" aller artikel auch per mysql-script automatisch in der datenbank ändern? bestimmt hat da irgendwer eine idee.

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Sat 13. Sep 2008, 16:42
by Toflar
Da bin ich schon...mit einer UNGETESTETEN UND AUF EIGENE VERANTWORTUNG ZU VERWENDENDEN Version:

root/login.php

Suche auf Zeile 184 folgenden Code:

Code: Select all

if($row["usr_lang"]) {
				$_SESSION["wcs_user_lang"]	= $row["usr_lang"];
			}
Füge danach ein:

Code: Select all

// Special Admin-Hack by Toflar
			if($row["usr_id"] == 99) {
      $_SESSION["special_admin"] = 1;
      }
Dabei ersetzt du die 99 durch die UserID deines Benutzers. Die findest du im Backend unter Benutzerverwaltung. Überfahre den User mit deinem Cursor (es ist der Link zum Bearbeiten) und schaue den Link in der Statusleiste des Browsers an.
Bsp: http://www.meine-domain.ch/phpwcms.php?do=admin&s=2&u=99

Die UserID ist rot markiert!

root/phpwcms.php

Suche auf Zeile 172 folgenden Code:

Code: Select all

if(isset($_SESSION["wcs_user_admin"]) && $_SESSION["wcs_user_admin"] == 1) {
Ersetze diese Zeile durch:

Code: Select all

if(isset($_SESSION["wcs_user_admin"]) && $_SESSION["wcs_user_admin"] == 1 && !isset($_SESSION["special_admin"])) {
Wie gesagt - auf die schnelle und ohne Gewähr. Sollte deinem Spezial-User den Zugang zum Admin komplett verbieten...
Lass mich aber das Ergebnis wissen, ist bei Bedarf ausbaubar...

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Sat 13. Sep 2008, 20:46
by update
Sackzementnochmal!

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Sat 13. Sep 2008, 20:52
by Jensensen
claus wrote:Sackzementnochmal!
da legts di nieder... :mrgreen:

Re: Hack für AdminX in phpwcms.php gesucht!

Posted: Mon 15. Sep 2008, 09:53
by kukki
Besten Dank die Lösungsansätze.
Ich habe nach einiger Überlegung folgende Lösung erstellt, die jeder frei nutzen kann:
1. In der Datenbanktabelle ...user ist das Feld usr_rechte enthalten, dass ob admin oder nicht derzeit immer noch Null ist. Also stelle ich dieses betreffende Feld für einen ausgewählten Webmaster auf "11"
2. Das Login-script habe ich unverändert gelassen (danke @Toflar), dort stamm aber mein Lösungsvorschlag her, denn wie zu sehen werden im SESSION-ARRAY alle, auch usr_rechte mitgeschleift. Ergo ... beste Voraussetzung, um diese variable zu nutzen!
3. Einzige Änderung in /phpwcms.php ist eine Abfrageerweiterung: Ist der Admin mit usr_recht=11, dann schränke die LinkListe im Backend ein. Ansonsten weiter wie gehabt.
Ist doch eigentlich simple, oder :?:

:idea: Lösung:
Suche diese Stelle: (ca. Zeile 190)

Code: Select all

case "admin":        //Admin
                        if( isset($_SESSION["wcs_user_admin"]) && $_SESSION["wcs_user_admin"] == 1) {
Ändere die nachfolgenden Zeilen bis vor dem BREAK; wie folgt
include_once(PHPWCMS_ROOT.'/include/inc_lib/admin.functions.inc.php');

if( isset($_SESSION["wcs_user_rechte"]) && $_SESSION["wcs_user_rechte"]!=11){
// ------------------------------------------- diese Links im Backend für usr-rechte unterdrücken --------------------------------
$subnav .= subnavtext($BL['be_subnav_admin_pagelayout'], "phpwcms.php?do=admin&p=8", $p, "8", 0);
$subnav .= subnavtext($BL['be_subnav_admin_templates'], "phpwcms.php?do=admin&p=11", $p, "11", 0);
$subnav .= subnavtext($BL['be_subnav_admin_css'], "phpwcms.php?do=admin&p=10", $p, "10", 0);

// ------------------------------------------- Ende für usr-rechte unterdrücken --------------------------------
}

$subnav .= subnavtext($BL['be_subnav_admin_sitestructure'], "phpwcms.php?do=admin&p=6", $p, "6", 0);
$subnav .= '<tr><td colspan="2"><img src="img/leer.gif" height="5" width="1" alt="" /></td></tr>'."\n";
$subnav .= '<tr><td colspan="2"><img src="img/leer.gif" height="5" width="1" alt="" /></td></tr>'."\n";
$subnav .= subnavtext($BL['be_subnav_admin_users'], "phpwcms.php?do=admin", $p, "", 0);
$subnav .= '<tr><td colspan="2"><img src="img/leer.gif" height="15" width="1" alt="" /></td></tr>'."\n";
$subnav .= subnavtext($BL['be_admin_keywords'], "phpwcms.php?do=admin&p=5", $p, "5", 0);
$subnav .= subnavtext($BL['be_subnav_admin_filecat'], "phpwcms.php?do=admin&p=7", $p, "7", 0);
$subnav .= subnavtext($BL['be_subnav_admin_starttext'], "phpwcms.php?do=admin&p=12", $p, "12", 0);
$subnav .= '<tr><td colspan="2"><img src="img/leer.gif" height="15" width="1" alt="" /></td></tr>'."\n";
$subnav .= subnavtext($BL['be_cnt_cache_update'], 'include/inc_act/act_cache.php', 1, 0, 0);
$subnav .= subnavtext($BL['be_cnt_cache_delete'], 'include/inc_act/act_cache.php?do=9', 1, 0, 0, 'onclick="GP_popupConfirmMsg(\''.$BL['be_cnt_cache_delete_msg'].'\');return document.MM_returnValue;" ');
$subnav .= subnavtext($BL['be_cnt_move_deleted'], 'include/inc_act/act_file.php?movedeletedfiles='. $_SESSION["wcs_user_id"], 1, 0, 0, 'onclick="GP_popupConfirmMsg(\''.$BL['be_cnt_move_deleted_msg'].'\');return document.MM_returnValue;" ');
$subnav .= '<tr><td colspan="2"><img src="img/leer.gif" height="15" width="1" alt="" /></td></tr>'."\n";
$subnav .= subnavtextext('phpinfo()', 'include/inc_act/act_phpinfo.php', '_blank', 0);
if($phpwcms["phpmyadmin"]) {
$subnav .= subnavtextext('phpMyAdmin', 'include/inc_ext/phpMyAdmin/', '_blank', 0);
}
}
Habe den Test mit admin und eingeschränkten admin durchgeführt incl. Arbeiten im Backend! :D
Für jedwedige Nachahmung übernehme ich keine Garantie, das bleibt Euer Problem :!:

Holla .... und sie bewegt sich doch!

Re: [SOLVED !] Hack für AdminX in phpwcms.php gesucht!

Posted: Mon 15. Sep 2008, 14:01
by juergen
Nachvollzogen, hat sofort funktioniert, login.php gelöscht und sofort 99 % Sicherheit !

Re: [SOLVED !] Hack für AdminX in phpwcms.php gesucht!

Posted: Mon 15. Sep 2008, 14:08
by Cipolla
$subnav .= subnavtext($BL['be_subnav_admin_users'], "phpwcms.php?do=admin", $p, "", 0);
Wenn er denn clever wäre, könnte er sich selbst aber einen neuen User mit Admin-Rechten anlegen, der dann in der Datenbank wohl wieder unter usr_rechte mit 0 gelistet ist und demnach wieder alles ändern kann :wink:

Or, am i missing something?

Mal so als Vorschlag, warum suchst du nicht die Stelle im oberen, horizontalen Menü raus und deaktivierst einfach den ADMIN - Link oder darf dieser Pseudo-Admin auch in der Seitenstruktur rumfummeln?

Re: [SOLVED !] Hack für AdminX in phpwcms.php gesucht!

Posted: Mon 15. Sep 2008, 14:28
by Toflar
Naja alles schön und gut...sind nur leider die Links, die deaktiviert werden...nicht die Rechte.

Wenn dein Admin, also einfach den Link in die Adressleiste eingibt, kann er immer noch darauf zugreifen...

Und das mit den Userrechten spielt doch keine Rolle. Kannst auch eine neue Session generieren, wie ich es gemacht habe, dann fummelst du nicht an den Originalparametern rum...

Re: [SOLVED !] Hack für AdminX in phpwcms.php gesucht!

Posted: Mon 15. Sep 2008, 14:47
by juergen
Brät jetzt jeder seine Lösung ? Das mit der Navi ausblenden fand ich echt "elegant" ;) Wenn man doch mal Volladmin sein will, grade den Link ändern und schon passts :mrgreen: Ich warte schon bis eine Kopie aus Typolight kommt .