ZitatOriginal von Shorty
Ja das ist doch der Code für das XHTML Valide den habe ich drinne.
wird der Text über die Datenbank geladen?
ZitatOriginal von Shorty
Ja das ist doch der Code für das XHTML Valide den habe ich drinne.
wird der Text über die Datenbank geladen?
ZitatOriginal von Fire
so die installierung ging jetzt aber ich hab schon das nächste problem bei mir kommt immer das gleiche fenster http://img438.imageshack.us/img438/3755/unbenannthw5.jpg egal ob ich Administration,Kundendatenbank usw klicke an was liegt das?
Siehe: es tut sich nix
das ist der Gruppenimport. Hast du vielleicht dort einmal was händisch irgendetwas bei den Gruppenrechten in der Datenbank gemacht?
wenn du willst können wir das morgen am Nachmittag gerne per ICQ besprechen. Meine Nummer findest du im Profil.
<?php
eval("print(\"".$hm_boxhead_tpl."\");");
$filename = 'box_who_last.php';
$tops = mysql_query("SELECT * FROM bb1_users ORDER BY lastactivity DESC LIMIT 0 , 5");
$lastbit = '';
$tbl = 'a';
//Ausgabeschleife
while($row = mysql_fetch_object($tops))
{
// Datum umwandeln \\
$m = date("m", $row->lastactivity); // Monat
$d = date("d", $row->lastactivity); // Tag
$y = date("y", $row->lastactivity); // Jahr
$h = date("g", $row->lastactivity); // Stunden
$i = date("i", $row->lastactivity); // Minuten
$pa = date("a", $row->lastactivity); // AM/PM
$datum = "$d.$m.$y";
if($pa=='pm' && $h<12) { $h = $h +12; }
if($pa=='am' && $h==12) { $h = 0; }
$zeit = "$h:$i";
if($tbl=='a')
{
$c = '{tablecolora}';
$cid = 'tablea';
$tbl = 'b';
}
else
{
$c = '{tablecolorb}';
$cid = 'tableb';
$tbl = 'a';
}
$lastbit = $lastbit . "<tr><td id=\"$cid\" bgcolor=\"$c\" align=\"left\"><smallfont><a href=\"profile.php?userid=$row->userid\">$row->username</a></td><td id=\"$cid\" bgcolor=\"$c\" align=\"right\"><smallfont>($datum, $zeit)</td></tr>";
$i++;
}
eval("\$tpl->output(\"".$tpl->get("box_who_last")."\");");
eval("print(\"".$hm_boxtail_tpl."\");");
?>
Alles anzeigen
ZitatOriginal von mixit
Wenn ich die Datei in den acp Ordner lege, und manuell aufrufe, dann wird nach den Logdaten für´s ACP verlangt. Liegt es vielleicht daran ?
geanu das ist das Problem! Du hast den Fehler gefunden.. ich habe leider keine Zeit das zu verändern... werd schauen, ob ich das vielleciht einmal in einer freien minute hinbekommen
gib die beiden Dateien einmal ins ACP-Verzeichnis... da müsste es klappen!
ZitatOriginal von mixit
Hmm, mache ich da was falsch ?Habe die erste Datei board_off.php genannt (die zum schließen), und die zweite board_on.php
Dann habe ich beide Dateien ins Rootverzeichnis gelegt, und unter Cronjobs
http://www.meinedomain.de/wbb/board_off.php angegeben bzw. board_on.phpWird auch angelegt und als ausgeführt angezeigt.
Nur wird das Board weder in den Wartungsmodus noch zurück geschaltet.
gibt die Datei eine Fehlermeldung, wenn du Sie manuell aufrufst?
Datei zum Schließen:
require("./global.php");
$db->unbuffered_query("UPDATE bb".$n."_options SET value='1' WHERE varname='offline'");
$db->unbuffered_query("UPDATE bb".$n."_options SET value='OFFLINETEXT' WHERE varname='offlinemessage'");
$option = new options("lib");
$option->write();
Datei zum Öffnen:
natürlich geht das.. man müsste nur zwei Dateien erstellen und diese die Konfiguration verändern lassen...
Über den Kundenbereich wäre es möglich Passwörter bzw. die Kundendatenbank auszulesen. Durch eine geschickte SQL-Injektion ist dies möglich. Folgender Bugfix behebt diese Sicherheitslücken!
suchen Sie in der customer.php nach folgender Codestelle:
if($_POST[send] == "forgot_password") {
if($_POST[customerid] != "") {
if($query) $query .= " AND customerid = '".$_POST[customerid]."'";
else $query = "WHERE customerid = '".$_POST[customerid]."'";
$options += 1;
}
if($_POST[company] != "") {
if($query) $query .= " AND company = '".$_POST[company]."'";
else $query = "WHERE company = '".$_POST[company]."'";
$options += 1;
}
if($_POST[firstname] != "") {
if($query) $query .= " AND firstname = '".$_POST[firstname]."'";
else $query = "WHERE firstname = '".$_POST[firstname]."'";
$options += 1;
}
if($_POST[name] != "") {
if($query) $query .= " AND name = '".$_POST[name]."'";
else $query = "WHERE name = '".$_POST[name]."'";
$options += 1;
}
if($_POST[email] != "") {
if($query) $query .= " AND email = '".$_POST[email]."'";
else $query = "WHERE email = '".$_POST[email]."'";
$options += 1;
}
if($_POST[address] != "") {
if($query) $query .= " AND address = '".$_POST[address]."'";
else $query = "WHERE address = '".$_POST[address]."'";
$options += 1;
}
if($_POST[zipcode] != "") {
if($query) $query .= " AND zipcode = '".$_POST[zipcode]."'";
else $query = "WHERE zipcode = '".$_POST[zipcode]."'";
$options += 1;
}
if($_POST[city] != "") {
if($query) $query .= " AND city = '".$_POST[city]."'";
else $query = "WHERE city = '".$_POST[city]."'";
$options += 1;
}
Alles anzeigen
und ersetzen Sie diese mit folgender
if($_POST['send'] == "forgot_password") { /* Bugfix 17/09/2006 | possible SQL-INJECTION */
$query = "";
if($_POST['customerid'] != "") {
if($query) $query .= " AND customerid = '".intval($_POST['customerid'])."'";
else $query = "WHERE customerid = '".intval($_POST['customerid'])."'";
$options += 1;
}
if($_POST['company'] != "") {
if($query) $query .= " AND company = '".addslashes($_POST['company'])."'";
else $query = "WHERE company = '".addslashes($_POST['company'])."'";
$options += 1;
}
if($_POST['firstname'] != "") {
if($query) $query .= " AND firstname = '".addslashes($_POST['firstname'])."'";
else $query = "WHERE firstname = '".addslashes($_POST['firstname'])."'";
$options += 1;
}
if($_POST['name'] != "") {
if($query) $query .= " AND name = '".addslashes($_POST['name'])."'";
else $query = "WHERE name = '".addslashes($_POST['name'])."'";
$options += 1;
}
if($_POST['email'] != "") {
if($query) $query .= " AND email = '".addslashes($_POST['email'])."'";
else $query = "WHERE email = '".addslashes($_POST['email'])."'";
$options += 1;
}
if($_POST['address'] != "") {
if($query) $query .= " AND address = '".addslashes($_POST['address'])."'";
else $query = "WHERE address = '".addslashes($_POST['address'])."'";
$options += 1;
}
if($_POST['zipcode'] != "") {
if($query) $query .= " AND zipcode = '".addslashes($_POST['zipcode'])."'";
else $query = "WHERE zipcode = '".addslashes($_POST['zipcode'])."'";
$options += 1;
}
if($_POST['city'] != "") {
if($query) $query .= " AND city = '".addslashes($_POST['city'])."'";
else $query = "WHERE city = '".addslashes($_POST['city'])."'";
$options += 1;
}
Alles anzeigen
suchen Sie weiters folgende Codestelle (2 mal!):
$row = $db->query_first("SELECT password FROM bb".$n."_customer WHERE customerid = '".$_POST[customerid]."' AND password = '".$password."'");
und ersetzen Sie diesen mit folgenden:
$row = $db->query_first("SELECT password FROM bb".$n."_customer WHERE customerid = '".intval($_POST['customerid'])."' AND password = '".$password."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */
suchen sie weiters folgende Codestelle:
if($_POST[send] == "submitorder") {
$row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".$_POST[productid]."'");
$db->query("INSERT INTO bb".$n."_customer_rechnungen (customerid, email, productid, preis, status, time, make_update, installservice, firstname, name, address, zipcode, city, country, company, multilicense, paypal, userid)
VALUES ('".$_POST[customerid]."','".$_POST[email]."','".$_POST[productid]."','".$_POST[preis]."',0,'".time()."','".$_POST[update]."','".$_POST[install]."','".$_POST[firstname]."','".$_POST[fname]."','".$_POST[address]."','".$_POST[zipcode]."','".$_POST[city]."','".$_POST[country]."','".$_POST[company]."','".$row['multilicense']."','".$_POST['payment']."','".$wbbuserdata['userid']."')");
und ersetzen Sie diese mit folgender:
$row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".intval($_POST['productid'])."'");
$db->query("INSERT INTO bb".$n."_customer_rechnungen (customerid, email, productid, preis, status, time, make_update, installservice, firstname, name, address, zipcode, city, country, company, multilicense, paypal, userid)
VALUES ('".intval($_POST['customerid'])."','".addslashes($_POST['email'])."','".intval($_POST['productid'])."','".intval($_POST['preis'])."',0,'".time()."','".intval($_POST['update'])."','".intval($_POST['install'])."','".addslashes($_POST['firstname'])."','".addslashes($_POST['fname'])."','".addslashes($_POST['address'])."','".addslashes($_POST['zipcode'])."','".addslashes($_POST['city'])."','".addslashes($_POST['country'])."','".addslashes($_POST['company'])."','".addslashes($row['multilicense'])."','".addslashes($_POST['payment'])."','".$wbbuserdata['userid']."')");
suchen Sie weiters nach folgender Codestelle:
und ersetzen Sie diese mit folgender:
$row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".intval($id)."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */
suchen Sie weiters nach folgender Codestelle:
und ersetzen Sie diese mit folgender:
$row = $db->query_first("SELECT * FROM bb".$n."_customer_products WHERE id = '".intval($id)."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */
suchen Sie weiters nach folgender Codestelle:
und ersetze Sie diese mit folgender:
$filedata = $db->query_first("SELECT * FROM bb".$n."_customer_versions WHERE id = '".intval($id)."'"); /* Bugfix 17/09/2006 | possible SQL-Injection */
Suchen Sie in der Datei products.php nach folgender Codestelle
und ersetzen Sie diese mit folgender:
ich muss noch andere Dinge vorher erledigen, daher dauert das leider noch. genauere Informationen zu XSS findest du unter: http://de.wikipedia.org/wiki/XSS
du musst diese Rechtegruppe (ANNOUNCE) vorher definieren bzw. hinzufügen.
es geht hier um die übertragungsmethode.. eine zeile nützt da wenig!
was ist $posts? wird das über ein Formular definiert oder was ist das?
also mit register_globals = on wird die Variable $theadid automatisch erstellt. Andernfalls musst du es mit meinem Code erstellen.
Du kannst ja Variablen per $_GET übertragen. z.b.: addreply.php?threadid=704. Mit register_global wird automatisch die $threadid erstellt und mit dem Inhalt 704 gefüllt. Unter register_global = off musst du das selber machen.
z.B.:
Bei diesem Beispiel wäre es sinnvoll nur Integer Werte (Zahlen) zuzulassen. Also z.B.:
ist mir noch nicht aufgefallen. Ich werd schauen...