Ein neues Thema erstellen  Auf das Thema antworten  [ 48 Beiträge ]  Gehe zu Seite Vorherige 1 2 3 Nächste
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 21:12 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
das gut und schlecht sehe ich ein.

ich will/(wollte) aber mit dem Taskplaner erreichen, jegliches installiertes Plugin mit all seinen Befehlen und Parametern anzusprechen.
(hm...das ist grammatisch nicht so schön ausgedrückt :-))

das csay war jetzt nur ein Beispiel.
Es sollen z.B. 2 Csay kommen, dann ein vote, dann 2 RestartRound und am schluss wieder ein csay und ein speakall (aus dem Plugin speech) kommen.
Es kommt eben drauf an, was der User in das Textfile an Befehlen auflistet.

Ach egal. Die Taskplaner-Idee kam mir nur, weil Clanmod sowas hat. Braucht wahrscheinlich sowieso kein Mensch.

Aber das plugin_exec funktioniert im Code von dem Mr.Spoocy so nicht. Da muss man doch ein execclient benutzen.

Ach komm, ist egal. Mir fehlt zu sehr das Grundwissen....

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 22:42 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
ich will/(wollte) aber mit dem Taskplaner erreichen, jegliches installiertes Plugin mit all seinen Befehlen und Parametern anzusprechen.
Dann haben wir allerdings ein Problem. Ich muss ehrlich zugeben, dass mir die Idee, das Rechtesystem von AM einfach so umgehen zu koennen nicht zusagt. Das waere kein Problem, wenn die Skripter darauf achten wuerden und sich ueberlegen was sie machen. Aber das ist ja nun mal Utopie. Man muss sich ja nur die im Umlauf befindlichen Skripte ansehen.... Ich weiss noch nicht, wie eine zufriedenstellende Loesung aussehen soll. Was Du brauchst, ist ja tatsaechlich ein Weg, das Rechtesystem einfach zu umschiffen. Hmm, das kann ich so zwar nicht akzeptieren, aber mal sehen....
Zitat:
Aber das plugin_exec funktioniert im Code von dem Mr.Spoocy so nicht. Da muss man doch ein execclient benutzen.
Ach komm schon, SDal, execclient() hat damit genau gar nichts zu tun und bringt ueberhaupt nix. Das weisste doch, denk mal nach. :)

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 23:00 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
mist...klar ist execclient in dem Zusammenhang von der Befehlsstruktur unlogisch :-)

execclient(User,admin_gag User 2) :-)
Aber es funktioniert !
(Hm...ich habe nur listenserver....:-) )

Aber warum geht es bei mir nicht mit plugin_exec ?
Dein Code, den Du Mr.Spoocy gepostet hast, funktioniert so nicht und ist doch von Spoocy gar nicht so gewollt.

Meine Logs schreiben beim Ausführen des Plugins mit der Chateingabe von Lamer, "xy has no proper access".

Ich will doch auch gar nicht, dass xy den Befehl ausführt, sondern das der Befehl an xy angewandt wird.

Wir reden hier irgendwie aneinander vorbei. Oder haben wir verschiedene Adminmod Versionen oder andere include Dateien ?

Deine Intention mit dem plugin_exec ist auch voll verständlich. Aber wenn man Plugin-Befehle ausführen möchte, hinter denen kein User steht, muss man die Befehle komplett neuschreiben, da man kein plugin_exec benutzen kann. Bei csay ist es wirklich kein Problem. Aber bei anderen Befehlen ?

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Zuletzt geändert von Sir Drink a lot am 15.04.2002, 23:20, insgesamt 2-mal geändert.

Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 15.04.2002, 23:06 

Registriert: 12.01.2002, 20:24
Beiträge: 227
Wohnort: Giessen, Hessen, Germany
Jetzt wirds interessant!!!

_________________
Denn nur wer was zu sagen hat,
Der hat's, wenn es nicht unabdingbar ist

http://clan-ggg.de.vu/


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 16.04.2002, 10:48 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
execclient(User,admin_gag User 2) :-)
Aber es funktioniert !
(Hm...ich habe nur listenserver....:-) )

Aber warum geht es bei mir nicht mit plugin_exec ?
Das wundert mich nun allerdings. Ueberpruefe mal, ob das wirklich stimmt. Es gibt nur zwei Situationen. Entweder Du hast die Rechte, um von der Konsole admin_gag auszufuehren, oder nicht. Wenn ja, dann tut auch execclient(). Wenn nein, dann sollte auch execclient() nicht tun. Denn das laeuft ja auf dasselbe hinaus.

Und das ist daselbe fuer plugin_exec(). Das bewirkt in diesem Fall das gleiche wie execclient(), spart aber den Umweg ueber den Client.
Zitat:
Dein Code, den Du Mr.Spoocy gepostet hast, funktioniert so nicht und ist doch von Spoocy gar nicht so gewollt.
Ich weiss, aber ich kann ihm ja nun nicht jeden Scheiss vorbeten. Ich sag nur, dass ein exec("admin_command...") nicht tun wird. Wie er nun plugin_exec() richtig einsetzt, muss er halt nachschauen.
Zitat:
Meine Logs schreiben beim Ausführen des Plugins mit der Chateingabe von Lamer, "xy has no proper access".
Korrekt.
Zitat:
Ich will doch auch gar nicht, dass xy den Befehl ausführt, sondern das der Befehl an xy angewandt wird.
Nein, Du willst dass xy diesen Befehl (auf sich selber) anwendet. xy sagt was im Chat und daraufhin wird *von xy* eine AM Funktion aufgerufen. Wenn diese Funktion jetzt eine andere Funktion aufruft, dann ist immernoch xy der Aufrufer.
Zitat:
Oder haben wir verschiedene Adminmod Versionen oder andere include Dateien ?
Das mit Sicherheit. ;) Hat damit aber nix zu tun.
Zitat:
Aber wenn man Plugin-Befehle ausführen möchte, hinter denen kein User steht, muss man die Befehle komplett neuschreiben, da man kein plugin_exec benutzen kann. Bei csay ist es wirklich kein Problem. Aber bei anderen Befehlen ?
Es gibt keine Befehle, hinter denen kein User steht. Fuer jeden Befehl gibt es einen ausfuehrenden User. Auch fuer Befehle, die ueber admin_command ausgefuehrt werden gibt es einen ausfuehrenden User, naemlich die Serverkonsole. Nur ist die eben kenierlei Beschraenkungen unterworfen.
Das ist ja eben. Zusaetzlich dazu, dass mit exec() die Befehle ueber die Serverkonsole laufen und somit zu unerwuenschten Effekten fuehren koennen. Wie gesagt, wenn die Skripter aufpassen wuerden und sich der Gefahren bewusst waeren, dann wuerde auch weniger passieren. Aber so.... Die Verwednung von exec() wird auch nocht andersweitig eingeschraenkt, es geht ja nicht nur um admin_command. Das admin_command nicht mehr mit exec() erlaubt ist, ist zu einem nicht unwesentlichen Teil eine erzieherische Massnahme, damit die Leute das nicht mehr so gedankenlos fuer alles einsetzen. Du kannst z.B. keine Befehlsfolgen mehr mit exec() verwenden. Dass muessen dann schon zwei Aufrufe sein, etwo so:
statt exec("mp_timelimit 10; sv_restart1");
nun exec("mp_timelimit 10"); exec("sv_restart 1");

Aber Du hast mich da auf eine Idee gebracht. :)

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 18.04.2002, 22:54 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
Zitat:
Ich weiss, aber ich kann ihm ja nun nicht jeden Scheiss vorbeten. Ich sag nur, dass ein exec("admin_command...") nicht tun wird. Wie er nun plugin_exec() richtig einsetzt, muss er halt nachschauen.
also ich weis net bitte poste mal meinen code so das es geht.
genau das is es, mit exec(""); geht es , das script leuft seit 1 woche auf unserm server und hat mehrfach seinen erfolg gezeigt.

Beim versucht das mit dem neuen befel zu nutzen:

snprintf(Text, MAX_TEXT_LENGTH, "^"%s^" 5", User);
plugin_exec("admin_gag", Text);

ist esjdoch gescheitet ,also ich mag den neuen befehl nicht *grummel*


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 02:52 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
wenn man den Befehl plugin_exec jetzt ein wenig erweiter, dass man dem User xy vielleicht kurzfristig die Rechte erteilt und direkt danach wieder entzieht, wäre es vielleicht einfacher....

hm....graue Theorie und kann wahrscheinlich auch wieder missbraucht werden....

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 07:52 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
daRope, ich hab ihm mal unseren PM-Wechsel geschickt. Damit sollte seine Frage beantwortet sein.

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 12:40 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
ist angekommen....damit ist einiges geklärt. Ok. Ich habe es mir auch schon verher gedacht, was mich allerdings wirklich nicht so sehr zu frieden stimmt :-)

aber was kann man den schlimmstenfalls mit exec() zerstören oder missbrauchen ?

Ich habe mir leider wirklich wenig Gedanken zu dem exec() gemacht, da ich die Gefahr noch nicht erkannt habe.

Wenn die Antwort auf meine Frage zu heikel ist, um sie hier öffentlich zu diskutieren, bitte schreib eine PM oder wir können es ja im Internen diskutieren :-)

Meinen Taskplaner, der automatisch plugin Befehle nach einer gewissen Zeit aufruft, kann ich aber somit vergessen :-(

Gruß,
SDal

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 16:07 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
genau das is es, mit exec(""); geht es , das script leuft seit 1 woche auf unserm server und hat mehrfach seinen erfolg gezeigt.
Das bezweifel ich nicht. Ich sag nur, dass es mit der naechsten Version eben nicht mehr geht.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 16:08 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
wenn man den Befehl plugin_exec jetzt ein wenig erweiter, dass man dem User xy vielleicht kurzfristig die Rechte erteilt und direkt danach wieder entzieht, wäre es vielleicht einfacher....
Das ist weniger graue Theorie als nicht durchdacht.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 16:12 
AM.de Team
Benutzeravatar

Registriert: 22.10.2001, 01:00
Beiträge: 839
Zitat:
Meinen Taskplaner, der automatisch plugin Befehle nach einer gewissen Zeit aufruft, kann ich aber somit vergessen
Abwarten. Mir sind dazu ein paar Ideen gekommen. Momentan denke ich darueber nach, ob man Funktionen, die entweder als Resultat einer Abstimmung (fuer die Netzgeschaedigten: vote) oder aber in plugin_init() aufgerufen werden, grundsaetzlich mit Serverechten ausfuehren laesst. Das waeren Anwendungen, wo es vielleicht Sinn machen wuerde.

_________________
There are no stupid questions, only stupid people.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 17:23 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
das wäre gut. :-)

Den Taskplaner kann man ihm Spiel demnächst nur noch mit dem höchsten Recht "manuell" nutzen, damit man Zugriff auf alle Plugins hat und sie somit auch nutzen darf. Dann baue ich die Befehlabarbeitung mal mit plugin_exec...

Schaun wir mal...

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 17:27 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
dann sag mir doh bitte wie es mit der nästen geht , die du sicher bemerkt ahst haben auch adneren nicht kapiert wie das mit meinem befehl geht.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 18:52 
AM.de Team
Benutzeravatar

Registriert: 23.11.2001, 00:00
Beiträge: 3842
Wohnort: Vor König Arthus
OK,
vielleicht tut es mal Not zu erklären, warum das eine Sicherheitslücke ist. Am besten erkläre ich das anhand von Sir Drink a Lot's Taskplaner.
Wie die meisten wissen, kann man mit dem Taskplaner beliebige Befehle via einer task.cfg zu bestimmten Zeitpunkten auf dem Server ausführen lassen. Bislang hat er das bequem über exec("admin_command ...") gemacht. Nur das ist eine Sicherheitslücke.

Warum?
Nehmen wir einmal an, der Taskplaner würde einem bestimmten Userrecht zugesprochen (z.B. 256). Und nehmen wir an, ich hätte die Userrechte 65535 (also alles außer admin_rcon admin_execclient etc.). Ich habe damit auch keine Zugangsrechte auf admin_command. Aber ich darf den Taskplaner ausführen. Ich bin jetzt in der Lage über den Taskplaner via exec("admin_command admin_execclient") einen Befehl aufzurufen, zu dem ich eigentlich keinen Zugang haben darf, da mir das Recht 65536 fehlt.
Das könnte der Plugin-Programmierer zwar verhindern, in dem er die Rechte für das Plugin anpasst, aber was, wenn nicht? Viele laden sich nur die AMX-Datei runter. Und in Null Komma Nichts entpuppt sich ein tolles Plugin evtl. als Server-Trojaner! Und somit ist diese Entscheidung mehr als verständlich.

Was mache ich jetzt als Skripter?
Man verwendet plugin_exec(cmd, args). Diese Funktion überprüft, ob der Ausführende des Plugins auch das Recht für die auzuführende Funktion hat. In "cmd" braucht Ihr hier nur den Befehl einzutragen ohne admin_command und in args kommen die Argumente zum Befehl. Also Beispiel: "admin_map de_dust", "admin_map" ist cmd und "de_dust" gehört zu den args. Eigentlich ganz einfach.

Die exec-Funktion wird dann zu der Funktion, die sie schon immer sein sollte, nämlich das Setzen von Servervariablen.

Was aber wenn kein User das Plugin ausführt, sondern es nach einem Timer oder einem Event (LogD) aktiv wird?
Dann ist der User die Serverconsole und hat somit alle Rechte (131071). Das entspricht der admin_command Funktion, wenn sie direkt in der Serverconsole (für alle Gameserver-Providergeschädigten: Man kann direkt Befehle auf den Server schreiben) geschrieben wird (s. auch HLSW).

Somit bleibt eigentlich nur übrig, dass Pluginprogrammierer ein wenig mehr bei der Programmierung aufpassen sollten. Und ich begrüße diesen Schritt, da ich kein zweites Windows haben möchte. ;) Better save than sorry!

_________________
Der schwarze Ritter triumphiert immer...
WING-Clan


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 19.04.2002, 21:53 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
Hat sich mal einer überlegt das wenn jemand die "task.cfg" beareiten will auch zugang zum FTP haben muß ? Also wenn er zugang zum ftp hat kann er sich auch einfach die rechte geben , oder liegt die task.cfg auf dem rechner des users ? ich kenne das script nicht , daher meine verwunderung.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20.04.2002, 02:13 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
ja das stimmt schon. die task.cfg liegt auf dem Server und man muss Zugang über FTP oder sonstwas haben, um diese zu ändern.

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20.04.2002, 02:24 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
also dann versteh ich es absolut nicht. Wenn ich ftp zugriff hab dann geb ich mir halt adminrechte die ich will. Also erlich gesagt find ich es doof das der befehl abgeschaft wird, zu der aussage das viele nur die AMX datei saugen, naja ihr stellt die scripte doch online ? Und ich denk mal ihr prüft die auch, und wenn nicht könnte man sich einmal den aufwand machen, und dann ist es so das auf adminmod.de nur scripte sind die kein sicherheitslag darstellen. Und alle neuen scripte prüfen is ja dann nicht schwer. Man sollte mal einen vote starten, ob der befehl nicht bleiben soll und die user sich dem eigenen rieseko aussetzen das wenn sie scripte nur saugen eventuel eine sicherheitslücke darstellt. Wobei das doch auch sinlos is , weil jeder coder kann sich doch eh nee hintertür offen lassen, dann würde der user doch auch die amx datei saugen oder ? In so ferhn nützt nicht die abschaltung des befehles was sondern einfach jedes script durch zu gehen was bei adminmod.de online gestellt wird. Das ist meiner meinung nach das einzigste.


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20.04.2002, 03:05 
AM.de Team
Benutzeravatar

Registriert: 27.11.2001, 01:00
Beiträge: 3564
Wohnort: In der Nähe von Bonn
eigentlich auch wieder war.
Man muss sich als Coder eben Gedanken machen, welches Sicherheitsleck man eröffnet und es schliesst.

daRope ?

_________________
Fehleranalyse: Poste den Inhalt Deiner liblist.gam, (listen)server.cfg, adminmod.cfg, users.ini, vault.ini, plugin.ini von adminmod und plugins.ini von metamod. Benutze auch die Such-Funktion


Nach oben
   
 Betreff des Beitrags:
BeitragVerfasst: 20.04.2002, 03:11 

Registriert: 25.03.2002, 23:02
Beiträge: 131
Wohnort: Berlin
wie , du hast auf anhieb meinen text verstanden ? Hab ich endlich mal einen text so geschrieben das ihn andere verstehen ? *mich mal selbt lob :-)))*


Nach oben
   
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen  Auf das Thema antworten  [ 48 Beiträge ]  Gehe zu Seite Vorherige 1 2 3 Nächste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Powered by phpBB® Forum Software © phpBB Limited
Deutsche Übersetzung durch phpBB.de
Original Design von "[ Half-Life Admin Mod © Alfred Reynolds 2000-2003 ] - [ site design by Jägermeister ]"