yoo..hast ne pn
ich hab aber die pro version
yoo..hast ne pn
ich hab aber die pro version
ZitatOriginal von DodCom
yoo..hast ne pnich hab aber die pro version
So wie es aussieht, ist dieser Fehler auch in der Pro-Version.
ja, scheint aber mit gewissen einstellungen zusammen zu hängen,
weil bei euch kommt sowieso jede Referer adresse ohne block durch?! oder nur weil ich eingelogged bin (trusted user?!)
ka, wie gesagt, ich spreche für die / von der basic...
mfG
Zagon
weil dodcom freundlich nach einer lösung gebeten hat, hab ich ihm eine "NOTlösung" geschickt, die klappt...
(es ist somit auch ein fix für die $bedingung die bisher ohne weitere maßnahmen in die datenbank gesandt wurde. (addslashes udgl...))
es ist in der security.php des boardroots zu suchen:
$request = $_REQUEST;
foreach ($request as $key => $temp) {
if (isset($_REQUEST[$key])) $$key = $_REQUEST[$key];
}
und ausnahmslos durch das zu ersetzen:
$_disabled = array('_POST', '_GET', '_SERVER', '_COOKIE', '_REQUEST', '_FILE', 'securityconfig', 'bedingung');
foreach ($_REQUEST as $key => $temp) {
if (isset($_REQUEST[$key]) AND !in_array($key, $_disabled)) $$key = $_REQUEST[$key];
}
diesen programmierstiel gewöhnt man sich eher ab.
mfG
Zagon
PS: geht mit der basic 2.0.0 und der jetzt aktuellen pro. (2.0.1 ??)
ja...läuft auch auf der 2.0.1
wurde auch getestet...erfolgreich
ich persönlich kann dazu nur sagen.......arbeitet mehr zusammen.....das gilt auch mal für earlyhost
ich denke hier meint es einer gut......auch wenns für den coder nicht so rüberkommt
teamwork ist das a und o
earlyhost wird schon auf Leute eingehen, die ihm kompetent erscheinen und mit ihm zusammen arbeiten können.
Da dies kein Fix von uns ist, gewähre ich keine Sicherheit, dass er funktioniert. Laut DodCom sollte er aber problemlos funktionieren.
>>gewähre ich keine Sicherheit
die gewähre ich bei den standard systemen auch nicht (nicht mehr, nachdem was ich sehe)
... wo ich trotz ip sperre in dodcoms forum surfen konnte durch diese lücke.
>>earlyhost wird schon auf Leute eingehen, die ihm kompetent erscheinen
keine sorge, ich erwarte mir nichts. zeitmangel etc.
aber wenn ein tool schon security heißt, soll es die auch bieten. wenn mir was auffällt, werd ichs doch posten dürfen, oder wollt ihr das nicht. kanns auch einstellen
mfG
Zagon
also ich fand es nicht toll das zagon mit meinem nick im forum herumgesurft ist
da bin ich froh....das er nur ne lücke aufgedeckt hat :]
ZitatOriginal von DodCom
also ich fand es nicht toll das zagon mit meinem nick im forum herumgesurft istda bin ich froh....das er nur ne lücke aufgedeckt hat :]
das war nicht dein nick.
dazu hätte ich deinen password hash gebraucht.
um das gings auch nicht, sondern darum, mit fremden scripten am forum zu spielen (flooden, regflooding etc..., im ungepatchten forum per script nach dem admin pwt hash zu suchen etc...).
mal wertefrei, der programmierstil erinnert an einen anfänger (hm, ne net so arg) eher leicht fortgeschrittenen, da dachte ich, ein paar tipps kommen schon nicht in die falsche kehle... ich will um gottes willen niemanden beleidigen oder schulmeistern!!!
grüße
Zagon
Wie soll ich das in keine Falsche Kehle kriegen.... Mich als Codingnoob zu bezeichnen ist nicht gerade nett (nett ausgedürckt). Klar jeder macht Fehler und du bist auch nciht gerade perfekt!
Ich möchte was zu deiner durchaus guten Zeile sagen:
$_disabled = array('_POST', '_GET', '_SERVER', '_COOKIE', '_REQUEST', '_FILE', 'securityconfig', 'bedingung');
foreach ($_REQUEST as $key => $temp) {
if (isset($_REQUEST[$key]) AND !in_array($key, $_disabled)) $$key = $_REQUEST[$key];
}
Was ist aber, wenn die $_POST gewollt ist? Dann wird sie nicht definiert außer in den Zeilen von Woltlab.. Es gibt ja andere Variablen.. Wenn das sperrst, macht das keinen Sinn?!
na...er schrieb es ist eine notlösung die noch verbessert werden muss
nicht das dies endgültig die lösung ist
earlyhost,
>>ist nicht gerade nett (nett ausgedürckt)
ja das dacht ich mir, aber nochmal, es ist absolut nicht böse gemeint!
zu den Variabeln.
ich übergebe bei einem Link im query eine variabel...
URL.de/index.php?_POST[conf]=2
zB...
nun, dieses _POST ist so wie jedes query als _REQUEST (ein array) index (array-key) zu finden.
$_REQUEST[_POST][conf] = 2 sollte es heißen.
nun, wenn du durch dieses request läufst - bei dir mittels foreach - und dann jeden array index als variabelnamen anlegst... dann hast du quasi eine "junk" $_POST variabel angelegt.
und da beginnt der fehler.
foreach($_REQUEST as $key => $val)
{
if (isSet ($_REQUEST[$key])) $$key = $_REQUEST[$key];
// wenn hier nun der erste key _POST ist...
// dann gilt:
// if (isSet ($_REQUEST[_POST])) $_POST = $_REQUEST[_POST][conf];
// -> unfeine geschichte, weil wir jetzt ohne per POST datenübertragung eine POST superglobale angelegt haben.
}
wie du nun siehst, hat dieses _POST nichts mit einem per zB Formular mit method="POST" übergeben zu tun... ist aber dann später im PHP durch das script doch das gleiche.
hier 2 testscripts:
das erste zeigt die art und weise, wie du es im script hattest...
also das zerlegen der _REQUEST Superglobal und das anlegen der einzelnen keys als variabel...
http://www.zagon.at/test/globals2_.php
und hier nun das script mit dem gefilterten _REQUEST.
http://www.zagon.at/test/globals_.php
siehst du was ich meine? die normale $_POST variabel geht durch den filter, eh klar.
wieso meinst du stellt man sich die register_globals auf off?
du machst mit den paar zeilen aus einem server mit register_globals off, einen mit on.
deswegen besteht auch die möglichkeit, $securityconfig[scriptblocker] zu erstellen, weil du die $securityconfig noch vor der foreach schleife in der global.php aus der Datenbank ausliest und erstellt.
ich überschreibs dann einfach per URL-Query...
also, sry, ich wollte dich nicht beleidigen! ich hab dir schon etwa 4 mal geschrieben, dass ich deine arbeit bewundere, weil du als firmenfremde person für die sicherheit einer software beitragen möchtest.
mfG
Zagon
PS:
>>Klar jeder macht Fehler und du bist auch nciht gerade perfekt!
um gottes willen, ich will auch nicht perfekt sein und bins auch nicht - zum glück, denn auch ich bin ein mensch.
ich hab doch hier heute einen beitrag gepostet...
inhalt:
no comment?
mfG
Zagon
ZitatAlles anzeigenOriginal von zagon
weil dodcom freundlich nach einer lösung gebeten hat, hab ich ihm eine "NOTlösung" geschickt, die klappt...
(es ist somit auch ein fix für die $bedingung die bisher ohne weitere maßnahmen in die datenbank gesandt wurde. (addslashes udgl...))es ist in der security.php des boardroots zu suchen:
PHP$request = $_REQUEST; foreach ($request as $key => $temp) { if (isset($_REQUEST[$key])) $$key = $_REQUEST[$key]; }
und ausnahmslos durch das zu ersetzen:
PHP$_disabled = array('_POST', '_GET', '_SERVER', '_COOKIE', '_REQUEST', '_FILE', 'securityconfig', 'bedingung'); foreach ($_REQUEST as $key => $temp) { if (isset($_REQUEST[$key]) AND !in_array($key, $_disabled)) $$key = $_REQUEST[$key]; }
diesen programmierstiel gewöhnt man sich eher ab.
mfG
Zagon
PS: geht mit der basic 2.0.0 und der jetzt aktuellen pro. (2.0.1 ??)
also ich hatte das eingebaut... bekomme dann aber mit dem arcadehack von webdynamic probleme, da überträgts die highscores nicht mehr.
gibts auch ne lösung, wo das dann noch funktioniert?
hab die änderung erstmal wieder rückgängig gemacht...