YourWBB


yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB Lite 1.0.x » [WBB Lite 1.0.x] Allg. Fragen und Probleme » Diverse Bugfix/Sicherheitsupdates für das WBBLite » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag 21.803 Views | | Thema zu Favoriten hinzufügen

Neues Thema erstellen Antwort erstellen

Dieses Thema wurde als unerledigt markiert. Thread unerledigt

Zum Ende der Seite springen Diverse Bugfix/Sicherheitsupdates für das WBBLite 11 Bewertungen - Durchschnitt: 8,8211 Bewertungen - Durchschnitt: 8,8211 Bewertungen - Durchschnitt: 8,8211 Bewertungen - Durchschnitt: 8,82
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
MrMind MrMind ist männlich
Sklave des Supportes


images/avatars/avatar-2822.gif

Dabei seit: 19.01.04
Beiträge: 3.349
Herkunft: Darmstadt/Odw.

Achtung Diverse Bugfix/Sicherheitsupdates für das WBBLite Antworten Zitieren Editieren Melden       UP

Moin Leutz,

hier poste ich die Bugfix hinein die ich behoben habe. Wenn ihr noch welche finden solltet, dann sagt bitte bescheid.

Smilies und BBCodes an Coursorposition setzen

öffne die Datei bbcode.js

Suche nach:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
function AddText(NewCode,theform) {

 if (theform.message.createTextRange && theform.message.caretPos) {

  var caretPos = theform.message.caretPos;

  caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;

 } else theform.message.value+=NewCode

 AddTxt = "";

 setfocus(theform);

}


Ersetze durch:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
function AddText(NewCode,theform) {

 if (theform.message.createTextRange && theform.message.caretPos) {

  var caretPos = theform.message.caretPos;

  caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;

 } else
 {
    theform.message.focus();
    messagestart=theform.message.selectionStart;

    messageend=theform.message.textLength;

    textend=theform.message.value.substring(theform.message.selectionEnd,messageend);

    textstart=theform.message.value.substring(0,messagestart);

    theform.message.value=textstart + NewCode + textend;

    theform.message.selectionStart=messagestart + NewCode.length;

    theform.message.selectionEnd=messagestart + NewCode.length;
 }

 AddTxt = "";

 setfocus(theform);

}



Bugfix eines unbedeutsamen JS-Fehlers

Dieser Fehler fällt nur auf, wenn man über das Antwort erstellen oder neues Thema erstellen die JavaScript-Konsole offen hat

öffne die bbcode.js

Suche nach:

code:
1:
document.getSelection();


Ersetze durch:

code:
1:
window.getSelection();



Mfg
MrMind

__________________
Selbst ist der Coder
Coder under Linux

Ubuntu 5.10 Nutzer.

Meine Hacks

29.06.05 21:31 MrMind ist offline E-Mail Finden Als Freund hinzufügen
MrMind MrMind ist männlich
Sklave des Supportes


images/avatars/avatar-2822.gif

Dabei seit: 19.01.04
Beiträge: 3.349
Herkunft: Darmstadt/Odw.

Themenstarter Thema begonnen von MrMind
Antworten Zitieren Editieren Melden       UP

Habe auf Wunsch den JS-Code für die Smilies geändert, da der Coursor nach dem einfügen des Smilies ans Ende vom Text gesprungen ist.

Nun bleibt er solange an der Position, bis der Benutzer ihn an das Ende setzt und hängt sich automatisch ans Ende vom Smiliecode.

Für alle die den Bugfixx davor hatten und nun das auch ändern möchten befolgt einfach das hier:

öffne die Datei bbcode.js

Suche nach:

code:
1:
theform.message.value=textstart + NewCode + textend;


Darunter einfügen:

code:
1:
2:
 theform.message.selectionStart=messagestart + NewCode.length;
 theform.message.selectionEnd=messagestart + NewCode.length;



Desweiteren habe ich eine Info bekommen, das die Smilies im PopUp Fenster (wenn man auf den Button mehr drückt) unabhängig davon sind.

Hierfür dieser Bugfixx:

Smilies im PopUp an Coursorposition setzen

Öffne die Datei /templates/popup_smilies.tpl

Suche nach:

code:
1:
2:
 opener.document.bbform.message.value +=  smilietext+" ";
 opener.document.bbform.message.focus();


Ersetze durch:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
 opener.document.bbform.message.focus()
 start = opener.document.bbform.message.selectionStart;
 end = opener.document.bbform.message.textLength;
 textstart = opener.document.bbform.message.value.substring(0,start);
 textend = opener.document.bbform.message.value.substring(opener.document.bbform.message.selectionEnd,end);

 opener.document.bbform.message.value = textstart + smilietext + textend;
 
 opener.document.bbform.message.selectionStart = start + smilietext.length;
 opener.document.bbform.message.selectionEnd = start + smilietext.length;

 opener.document.bbform.message.focus();



Mfg
MrMind

__________________
Selbst ist der Coder
Coder under Linux

Ubuntu 5.10 Nutzer.

Meine Hacks

11.07.05 09:27 MrMind ist offline E-Mail Finden Als Freund hinzufügen
SessionX SessionX ist männlich
vBulletin Junky


Dabei seit: 31.05.04
Beiträge: 2.895
Fähigkeiten: WBB3 Anfänger; WBB Lite 2 Fortgeschritten; WBB Lite 1 Fortgeschritten
Herkunft: Wolfsburg
Forenversion: 3.0

Achtung {cssfile} im Header entfernen! Antworten Zitieren Editieren Melden       UP

Beim bearbeiten von Styles kommt es zu einem {cssfile} oben im Header!
Um es zu entfernen, muss Du folgendes machen:

» 1. Möglichkeit:

Öffne die Datei templates/headerinclude.tpl

Suche nach: {cssfile}
Entferne es!

-------------------------------------------------------

» 2. Möglichkeit:

Gehe in dein ACP
Wähle dort: Designpack bearbeiten

Suche dein Style aus und klicke auf bearbeiten.
Trage bei URL zu einer CSS Datei folgendes ein: bug.css

__________________
31.05.2004 - 31.05.2008 = 4 Jahre y******
geschockt
und immer noch in den Top10 der y****** Spammer.
fröhlich
iPhone 3G Rocker

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Izzmoo: 15.06.06 13:02.

30.09.05 12:07 SessionX ist offline E-Mail WWW Finden Als Freund hinzufügen Füge SessionX in deine Kontaktliste ein
SessionX SessionX ist männlich
vBulletin Junky


Dabei seit: 31.05.04
Beiträge: 2.895
Fähigkeiten: WBB3 Anfänger; WBB Lite 2 Fortgeschritten; WBB Lite 1 Fortgeschritten
Herkunft: Wolfsburg
Forenversion: 3.0

Achtung {cssfile} im Header entfernen! Antworten Zitieren Editieren Melden       UP

Beim bearbeiten von Styles kommt es zu einem {cssfile} oben im Header!
Um es zu entfernen, muss Du folgendes machen:

» 1. Möglichkeit:

Öffne die Datei templates/headerinclude.tpl

Suche nach: {cssfile}
Entferne es!

-------------------------------------------------------

» 2. Möglichkeit:

Gehe in dein ACP
Wähle dort: Designpack bearbeiten

Suche dein Style aus und klicke auf bearbeiten.
Trage bei URL zu einer CSS Datei folgendes ein: bug.css

__________________
31.05.2004 - 31.05.2008 = 4 Jahre y******
geschockt
und immer noch in den Top10 der y****** Spammer.
fröhlich
iPhone 3G Rocker

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Izzmoo: 15.06.06 13:02.

30.09.05 12:07 SessionX ist offline E-Mail WWW Finden Als Freund hinzufügen Füge SessionX in deine Kontaktliste ein
yourWBB-Team
TEAM


images/avatars/avatar-1086.gif

Dabei seit: 16.01.04
Beiträge: 82

Achtung SQL-Fehler auf Teamseite Antworten Zitieren Editieren Melden       UP

Mit neuen Versionen von Mysql hat das Lite Probleme in der Team-Ansicht.
Es kommt die Fehlermeldung:

code:
1:
2:
3:
4:
5:
6:
7:
8:
SQL-DATABASE ERROR

Database error in WoltLab Burning Board: Invalid SQL: SELECT u.userid, u.username, u.invisible, u.receivepm, u.lastactivity, uf.* FROM bb1_users u, bb1_groups g LEFT JOIN bb1_userfields uf ON (u.userid=uf.userid) WHERE u.groupid = g.groupid AND g.ismod=1 ORDER BY u.username ASC
mysql error: Unknown column 'u.userid' in 'on clause'
mysql error number: 1054
Date: 12.04.2006 @ 20:21
Script: /Foren/wbblite/team.php?sid=
Referer: http://localhost/Foren/wbblite/index.php 


Um den Fehler zu beheben muss Du folgendes machen:

Öffne die Datei Team.php!
Suche nach:
code:
1:
FROM bb".$n."_users u, bb".$n."_groups g

Ersetze durch:
code:
1:
FROM bb".$n."_groups g, bb".$n."_users u
30.09.05 12:07 yourWBB-Team ist offline Finden Als Freund hinzufügen
Izzmoo
unregistriert
Antworten Zitieren Editieren Melden       UP

Mit neuen Versionen von Mysql hat das Lite Probleme in der Team-Ansicht.
Es kommt die Fehlermeldung:

code:
1:
2:
3:
4:
5:
6:
7:
8:
SQL-DATABASE ERROR

Database error in WoltLab Burning Board: Invalid SQL: SELECT u.userid, u.username, u.invisible, u.receivepm, u.lastactivity, uf.* FROM bb1_users u, bb1_groups g LEFT JOIN bb1_userfields uf ON (u.userid=uf.userid) WHERE u.groupid = g.groupid AND g.ismod=1 ORDER BY u.username ASC
mysql error: Unknown column 'u.userid' in 'on clause'
mysql error number: 1054
Date: 12.04.2006 @ 20:21
Script: /Foren/wbblite/team.php?sid=
Referer: http://localhost/Foren/wbblite/index.php 


Um den Fehler zu beheben muss Du folgendes machen:

Öffne die Datei Team.php!
Suche nach:
code:
1:
FROM bb".$n."_users u, bb".$n."_groups g

Ersetze durch:
code:
1:
FROM bb".$n."_groups g, bb".$n."_users u
12.04.06 20:23
Bräke
Mitglied


Dabei seit: 01.01.04
Beiträge: 8.189

Antworten Zitieren Editieren Melden       UP

Im UserCP unter Favoriten, sowie in den Suchergebnissen werden die Ordnersymbole / Themenicons nicht korrekt gezeigt. Zur Verdeutlichung ein Screen:
Dateianhang:
jpg bug_b.jpg (85,33 KB, 3.591 mal heruntergeladen)


suche in search.php:
code:
1:
2:
3:
4:
5:
   if($threads['pollid']!=0) $foldericon="poll";
   else $foldericon=ifelse($threads[userid],"dot").ifelse($wbbuserdata['lastvisit']<$threads['lastposttime'] && $threadvisit[$threads['threadid']]<$threads['lastposttime'] && $boardvisit[$threads['boardid']]<$threads['lastposttime'],"new").ifelse($threads[replycount]>=$threads[hotthread_reply] || $threads[views]>=$threads[hotthread_view],"hot").ifelse($threads[closed]!=0,"lock")."folder";
   if($wbbuserdata[lastvisit]<$threads[lastposttime] && $threadvisit[$threads[threadid]]<$threads[lastposttime]) eval ("\$firstnew = \"".$tpl->get("board_threadbit_firstnew")."\";");
   if($threads[iconid]) $threadicon="<img src=\"$threads[iconpath]\" alt=\"$threads[icontitle]\">";
   else $threadicon="&nbsp;";

ersetze mit:
code:
1:
2:
3:
4:
5:
6:
7:
   if($threads['important']==2) $foldericon="announce";
   else $foldericon=ifelse($threads[userid],"dot").ifelse($wbbuserdata['lastvisit']<$threads['lastposttime'] && $threadvisit[$threads['threadid']]<$threads['lastposttime'] && $boardvisit[$threads['boardid']]<$threads['lastposttime'],"new").ifelse($threads[replycount]>=$threads[hotthread_reply] || $threads[views]>=$threads[hotthread_view],"hot").ifelse($threads[closed]!=0,"lock")."folder";
   if($wbbuserdata[lastvisit]<$threads[lastposttime] && $threadvisit[$threads[threadid]]<$threads[lastposttime]) eval ("\$firstnew = \"".$tpl->get("board_threadbit_firstnew")."\";");

   if($threads['pollid']!=0) $threadicon=makeimgtag("{imagefolder}/poll.gif","");
   elseif($threads[iconid]) $threadicon="<img src=\"$threads[iconpath]\" alt=\"$threads[icontitle]\">";
   else $threadicon="&nbsp;";


-------------------------------------------------------

suche in usercp.php:
code:
1:
2:
3:
4:
5:
  if($threads['pollid']!=0) $foldericon="poll";
  else $foldericon=ifelse($threads['userid'],"dot").ifelse($wbbuserdata['lastvisit']<$threads['lastposttime'] && $threadvisit[$threads['threadid']]<$threads['lastposttime'],"new").ifelse($threads['replycount']>=$board['hotthread_reply'] || $threads['views']>=$board['hotthread_view'],"hot").ifelse($threads['closed']!=0,"lock")."folder";
  if($wbbuserdata['lastvisit']<$threads['lastposttime'] && $threadvisit[$threads['threadid']]<$threads['lastposttime']) eval ("\$firstnew = \"".$tpl->get("board_threadbit_firstnew")."\";");
  if($threads['iconid']) $threadicon=makeimgtag($threads['iconpath'],$threads['icontitle']);
  else $threadicon="&nbsp;";

ersetze mit:
code:
1:
2:
3:
4:
5:
6:
7:
  if($threads['important']==2) $foldericon="announce";
  else $foldericon=ifelse($threads['userid'],"dot").ifelse($wbbuserdata['lastvisit']<$threads['lastposttime'] && $threadvisit[$threads['threadid']]<$threads['lastposttime'],"new").ifelse($threads['replycount']>=$board['hotthread_reply'] || $threads['views']>=$board['hotthread_view'],"hot").ifelse($threads['closed']!=0,"lock")."folder";
  if($wbbuserdata['lastvisit']<$threads['lastposttime'] && $threadvisit[$threads['threadid']]<$threads['lastposttime']) eval ("\$firstnew = \"".$tpl->get("board_threadbit_firstnew")."\";");

  if($threads['pollid']!=0) $threadicon=makeimgtag("{imagefolder}/poll.gif","");
  elseif($threads['iconid']) $threadicon=makeimgtag($threads['iconpath'],$threads['icontitle']);
  else $threadicon="&nbsp;";


##############################################

Dabei kann man gleich die Anzeige der Wörter "Ankündigung, Wichtig, Umfrage" korrigieren, so das diese dort auch gezeigt werden.

suche in search.php:
code:
1:
   if($threads['pollid']!=0) eval ("\$prefix .= \"".$tpl->get("board_thread_poll")."\";");
füge dadrüber:
code:
1:
2:
   if($threads['important']==2) eval ("\$prefix .= \"".$tpl->get("board_thread_announce")."\";");
   if($threads['important']==1) eval ("\$prefix .= \"".$tpl->get("board_thread_important")."\";");


suche in templates/search_threadbit.tpl:
code:
1:
$firstnew<normalfont>
füge dahinter:
code:
1:
$prefix


-------------------------------------------------------

suche in usercp.php:
code:
1:
  if($threads['pollid']!=0) eval ("\$prefix .= \"".$tpl->get("board_thread_poll")."\";");
füge dadrüber:
code:
1:
2:
  if($threads['important']==2) eval ("\$prefix .= \"".$tpl->get("board_thread_announce")."\";");
  if($threads['important']==1) eval ("\$prefix .= \"".$tpl->get("board_thread_important")."\";");
17.08.09 13:38 Bräke ist offline Finden Als Freund hinzufügen
Bräke
Mitglied


Dabei seit: 01.01.04
Beiträge: 8.189

Antworten Zitieren Editieren Melden       UP

Über einen Umweg ist das Abstimmen bei Umfragen ohne Berechtigung möglich. Die Ergebnisse der Umfrage können dadurch manipuliert werden. Die ACP-Gruppen-Option "Kann an Umfragen teilnehmen?" wird dabei nicht berücksichtigt.
Meldung und Bugfix von Beckebans für das WBBLite.


suche in pollvote.php:
code:
1:
$db->query("INSERT INTO bb".$n."_votes (id,votemode,userid,ipaddress) VALUES ('$pollid','1','$wbbuserdata[userid]','$REMOTE_ADDR')");
füge darüber:
code:
1:
if($wbbuserdata['canvotepoll']) {


suche in pollvote.php:
code:
1:
?>
füge darüber:
code:
1:
} else eval("error(\"".$tpl->get("error_login")."\");");
12.09.10 16:59 Bräke ist offline Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Achtung Installations-Bugfix Antworten Zitieren Editieren Melden       UP

Hallo,

Da mywbb nun Offline gegangen ist und dieses Problem anscheinend hier noch nicht angesprochen wurde, möchte ich dies nun hier neu erwähnen.

Sollte jemand das wbblite 1.0.x unter MySQL 5 versuchen zu installieren, kann folgende Fehlermeldung erscheinen:

php:
1:
You have an error in your SQL syntaxcheck the manual that corresponds to your MySQL server version for the right syntax to use near 'TYPE=HEAP'


Dieser Fehler entsteht, weil die Abwärtskompatibilität für "TYPE" nicht mehr vorhanden ist.
Meines Wissens nach wurde jene mit der MySQL-Version 5.5 abgeschafft.
Sollte dieser Fehler, oder ein ähnlicher mit "TYPE" zusammenhängender Fehler auftreten, empfiehlt es sich "TYPE" mit "ENGINE" zu ersetzen.
Dies sollte, wenn möglich, vor der Installation des wbblites durchgeführt werden, da es sonst zu Problemen kommen kann.

Speziell gilt für die Installation des wbblites:

Suche in acp/lib/structure.sql nach:
php:
1:
TYPE=HEAP;
ersetze gegen:
php:
1:
ENGINE=HEAP;
Damit sollte die Installation des wbblites ohne Probleme funktioneren.

Der Fehler kann jedoch auch bei der Installation eines Hacks auftreten.
Darum gilt generell:
"TYPE" mit "ENGINE" zu ersetzen, sofern eine ähnliche Fehlermeldung in Verbindung mit "TYPE" auftritt.
22.08.11 19:04 Schrimm ist offline Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

 Logout-Bugfix(einfach) Antworten Zitieren Editieren Melden       UP

Hallo,

Einige kennen sicher das Problem, dass neue Beiträge, trotz Ausloggens, nach dem Einloggen weiterhin als neu makiert bleiben.

Eine Lösung gab es dazu, von mir, auf mywbb.info.
Da jene Seite nicht mehr existiert und hier nur auf dortigen Beitrag verlinkt wird, möchte ich nun diese "Lösung" hier veröffentlichen.

Suche in /logout.php nach:
php:
1:
$db->query("UPDATE bb".$n."_sessions SET userid = '0' WHERE hash = '$sid'");
füge darunter ein:
php:
1:
$db->query("UPDATE bb".$n."_users SET lastvisit = '$wbbuserdata[lastactivity]' WHERE userid = '$wbbuserdata[userid]'");

Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Schrimm: 22.08.11 20:47.

22.08.11 20:46 Schrimm ist offline Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

 {cssfile}-Lösung Antworten Zitieren Editieren Melden       UP

Hallo,

Hier wieder ein Thread, den es auf mywbb gab und auf yourwbb nicht.
Die Lösung ist jedoch nützlich und hilft neben dem {cssfile}-Problem auch bei "Formatproblemen" und in gewissen Fällen auch bei der "Sonstigen/Hauptseite/Startseite"-Problem des Wer ist Wo-Hacks.

Die Lösung stammt von Shr522, der damals auf mywbb aktiv war.

Suche in acp/lib/class_tpl_file.php nach:
php:
1:
&& $row['substitute']
lösche es!
Suche weiter nach:
php:
1:
2:
default:
$template str_replace($row['variable'],$row['substitute'],$template);
ersetze gegen:
php:
1:
2:
default:
if(trim($row['substitute'])) $template str_replace($row['variable'],$row['substitute'],$template);


Von der Lösung das "{cssfile}" in der headerinclude.tpl zu entfernen ist strengstens abzuraten!

Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Schrimm: 01.09.11 23:00.

01.09.11 22:56 Schrimm ist offline Finden Als Freund hinzufügen
Schrimm
Banned


Dabei seit: 21.08.11
Beiträge: 700

Antworten Zitieren Editieren Melden       UP

Hallo,
Die Änderung sind, pro Datei, in der Reihenfolge durchzuführen, wie sie beschrieben sind!

Es besteht die Möglichkeit der SQL-Injection in der acp/avatar.php:
Lösung:
suche in acp/avatar.php:
php:
1:
'".$_POST['groupid']."''".$_POST['needposts']."'

ersetze gegen:
php:
1:
'".intval($_POST['groupid'])."''".intval($_POST['needposts'])."'

suche:
php:
1:
$db->query("UPDATE bb".$n."_avatars SET groupid = '".$_POST['groupid']."', needposts = '".$_POST['needposts']."' WHERE avatarid = '".$_POST['avatarid']."'");

ersetze gegen:
php:
1:
$db->query("UPDATE bb".$n."_avatars SET groupid = '".intval($_POST['groupid'])."', needposts = '".intval($_POST['needposts'])."' WHERE avatarid = '".intval($_POST['avatarid'])."'");

suche ALLE:
php:
1:
avatarid '".$_REQUEST['avatarid']."'

ersetze ALLE gegen:
php:
1:
avatarid '".intval($_REQUEST['avatarid'])."'

suche ALLE:
php:
1:
avatarid '".$_POST['avatarid']."'

ersetze ALLE gegen:
php:
1:
avatarid '".intval($_POST['avatarid'])."'

suche:
php:
1:
,'".$_POST['groupid']."''".$_POST['needposts']."')");

ersetze gegen:
php:
1:
,'".intval($_POST['groupid'])."''".intval($_POST['needposts'])."')");


Es besteht die Möglichkeit der SQL-Injection in der acp/board.php:
Lösung:
suche in acp/board.php
php:
1:
boardorder='$val' WHERE boardid '$key'

ersetze gegen:
php:
1:
boardorder='".intval($val)."' WHERE boardid '".intval($key)."'

suche:
php:
1:
boardid '$parentid'

ersetze gegen:
php:
1:
boardid '".intval($parentid)."'

suche:
php:
1:
$parentlist $result['parentlist'].",".$parentid;

ersetze gegen:
php:
1:
$parentlist $result['parentlist'].",".intval($parentid);

suche:
php:
1:
parentid '$parentid'

ersetze gegen:
php:
1:
parentid '".intval($parentid)."'

suche:
php:
1:
'$style_set','$parentid'

ersetze gegen:
php:
1:
'".intval($style_set)."','".intval($parentid)."'

suche:
php:
1:
,'$allowbbcode','$allowimages','$allowhtml','$allowsmilies','$allowicons','$daysprune'

ersetze gegen:
php:
1:
,'".intval($allowbbcode)."','".intval($allowimages)."','".intval($allowhtml)."','".intval($allowsmilies)."','".intval($allowicons)."','".intval($daysprune)."'

suche:
php:
1:
,'$postorder'

ersetze gegen:
php:
1:
,'".intval($postorder)."'

suche:
php:
1:
,'$closed','$isboard','$invisible'

ersetze gegen:
php:
1:
,'".intval($closed)."','".intval($isboard)."','".intval($invisible)."'

suche:
php:
1:
boardid='$parentid'

ersetze gegen:
php:
1:
boardid='".intval($parentid)."'

suche:
php:
1:
$parentlist.=",$parentid";

ersetze gegen:
php:
1:
$parentlist.=",'".intval($parentid)."'";

suche:
php:
1:
$parentchange=" parentid='$parentid', parentlist='$parentlist',";

ersetze gegen:
php:
1:
$parentchange=" parentid='".intval($parentid)."', parentlist='$parentlist',";

suche:
php:
1:
styleid='$style_set'

ersetze gegen:
php:
1:
styleid='".intval($style_set)."'

suche:
php:
1:
allowbbcode='$allowbbcode'allowimages='$allowimages'allowhtml='$allowhtml'allowsmilies='$allowsmilies'allowicons='$allowicons'daysprune='$daysprune'

ersetze gegen:
php:
1:
allowbbcode='".intval($allowbbcode)."'allowimages='".intval($allowimages)."'allowhtml='".intval($allowhtml)."'allowsmilies='".intval($allowsmilies)."'allowicons='".intval($allowicons)."'daysprune='".intval($daysprune)."'

suche:
php:
1:
postorder='$postorder'

ersetze gegen:
php:
1:
postorder='".intval($postorder)."'

suche:
php:
1:
closed='$closed'isboard='$isboard'invisible='$invisible'

ersetze gegen:
php:
1:
closed='".intval($closed)."'isboard='".intval($isboard)."'invisible='".intval($invisible)."'

suche:
php:
1:
childlist='0' WHERE boardid='$parentid'

ersetze gegen:
php:
1:
childlist='0' WHERE boardid='".intval($parentid)."'

suche:
php:
1:
'0$childlist' WHERE boardid='$parentid'

ersetze gegen:
php:
1:
'0$childlist' WHERE boardid='".intval($parentid)."'


Es besteht die Möglichkeit der SQL-Injection in der acp/group.php:
Lösung:
suche in acp/group.php:
php:
1:
'$canviewboard'

ersetze gegen:
php:
1:
'".intval($canviewboard)."'

suche:
php:
1:
'$canviewoffboard'

ersetze gegen:
php:
1:
'".intval($canviewoffboard)."'

suche:
php:
1:
'$canusesearch'

ersetze gegen:
php:
1:
'".intval($canusesearch)."'

suche:
php:
1:
'$canusepms'

ersetze gegen:
php:
1:
'".intval($canusepms)."'

suche:
php:
1:
'$canstarttopic'

ersetze gegen:
php:
1:
'".intval($canstarttopic)."'

suche:
php:
1:
'$canreplyowntopic'

ersetze gegen:
php:
1:
'".intval($canreplyowntopic)."'

suche:
php:
1:
'$canreplytopic'

ersetze gegen:
php:
1:
'".intval($canreplytopic)."'

suche:
php:
1:
'$canpostwithoutmoderation'

ersetze gegen:
php:
1:
'".intval($canpostwithoutmoderation)."'

suche:
php:
1:
'$caneditownpost'

ersetze gegen:
php:
1:
'".intval($caneditownpost)."'

suche:
php:
1:
'$candelownpost'

ersetze gegen:
php:
1:
'".intval($candelownpost)."'

suche:
php:
1:
'$cancloseowntopic'

ersetze gegen:
php:
1:
'".intval($cancloseowntopic)."'

suche:
php:
1:
'$candelowntopic'

ersetze gegen:
php:
1:
'".intval($candelowntopic)."'

suche:
php:
1:
'$caneditowntopic'

ersetze gegen:
php:
1:
'".intval($caneditowntopic)."'

suche:
php:
1:
'$canpostpoll'

ersetze gegen:
php:
1:
'".intval($canpostpoll)."'

suche:
php:
1:
'$canvotepoll'

ersetze gegen:
php:
1:
'".intval($canvotepoll)."'

suche:
php:
1:
'$canuseavatar'

ersetze gegen:
php:
1:
'".intval($canuseavatar)."'

suche:
php:
1:
'$canuploadavatar'

ersetze gegen:
php:
1:
'".intval($canuploadavatar)."'

suche:
php:
1:
'$canratethread'

ersetze gegen:
php:
1:
'".intval($canratethread)."'

suche:
php:
1:
'$canviewmblist'

ersetze gegen:
php:
1:
'".intval($canviewmblist)."'

suche:
php:
1:
'$appendeditnote'

ersetze gegen:
php:
1:
'".intval($appendeditnote)."'

suche:
php:
1:
'$avoidfc'

ersetze gegen:
php:
1:
'".intval($avoidfc)."'

suche:
php:
1:
'$ismod'

ersetze gegen:
php:
1:
'".intval($ismod)."'

suche:
php:
1:
'$issupermod'

ersetze gegen:
php:
1:
'".intval($issupermod)."'

suche:
php:
1:
'$canuseacp'

ersetze gegen:
php:
1:
'".intval($canuseacp)."'

suche:
php:
1:
'$canviewprofile'

ersetze gegen:
php:
1:
'".intval($canviewprofile)."'

suche:
php:
1:
'$canviewcalender'

ersetze gegen:
php:
1:
'".intval($canviewcalender)."'

suche:
php:
1:
'$canprivateevent'

ersetze gegen:
php:
1:
'".intval($canprivateevent)."'

suche:
php:
1:
'$canpublicevent'

ersetze gegen:
php:
1:
'".intval($canpublicevent)."'

suche:
php:
1:
'$canrateusers'

ersetze gegen:
php:
1:
'".intval($canrateusers)."'

suche:
php:
1:
canviewboard='$canviewboard'

ersetze gegen:
php:
1:
canviewboard='".intval($canviewboard)."'

suche:
php:
1:
canviewoffboard='$canviewoffboard'

ersetze gegen:
php:
1:
canviewoffboard='".intval($canviewoffboard)."'

suche:
php:
1:
canusesearch='$canusesearch'

ersetze gegen:
php:
1:
canusesearch='".intval($canusesearch)."'

suche:
php:
1:
canusepms='$canusepms'

ersetze gegen:
php:
1:
canusepms='".intval($canusepms)."'

suche:
php:
1:
canstarttopic='$canstarttopic'

ersetze gegen:
php:
1:
canstarttopic='".intval($canstarttopic)."'

suche:
php:
1:
canreplyowntopic='$canreplyowntopic'

ersetze gegen:
php:
1:
canreplyowntopic='".intval($canreplyowntopic)."'

suche:
php:
1:
canreplytopic='$canreplytopic'

ersetze gegen:
php:
1:
canreplytopic='".intval($canreplytopic)."'

suche:
php:
1:
canpostwithoutmoderation='$canpostwithoutmoderation'

ersetze gegen:
php:
1:
canpostwithoutmoderation='".intval($canpostwithoutmoderation)."'

suche:
php:
1:
caneditownpost='$caneditownpost'

ersetze gegen:
php:
1:
caneditownpost='".intval($caneditownpost)."'

suche:
php:
1:
candelownpost='$candelownpost'

ersetze gegen:
php:
1:
candelownpost='".intval($candelownpost)."'

suche:
php:
1:
cancloseowntopic='$cancloseowntopic'

ersetze gegen:
php:
1:
cancloseowntopic='".intval($cancloseowntopic)."'

suche:
php:
1:
candelowntopic='$candelowntopic'

ersetze gegen:
php:
1:
candelowntopic='".intval($candelowntopic)."'

suche:
php:
1:
caneditowntopic='$caneditowntopic'

ersetze gegen:
php:
1:
caneditowntopic='".intval($caneditowntopic)."'

suche:
php:
1:
canpostpoll='$canpostpoll'

ersetze gegen:
php:
1:
canpostpoll='".intval($canpostpoll)."'

suche:
php:
1:
canvotepoll='$canvotepoll'

ersetze gegen:
php:
1:
canvotepoll='".intval($canvotepoll)."'

suche:
php:
1:
canuseavatar='$canuseavatar'

ersetze gegen:
php:
1:
canuseavatar='".intval($canuseavatar)."'

suche:
php:
1:
canuploadavatar='$canuploadavatar'

ersetze gegen:
php:
1:
canuploadavatar='".intval($canuploadavatar)."'

suche:
php:
1:
canratethread='$canratethread'

ersetze gegen:
php:
1:
canratethread='".intval($canratethread)."'

suche:
php:
1:
appendeditnote='$appendeditnote'

ersetze gegen:
php:
1:
appendeditnote='".intval($appendeditnote)."'

suche:
php:
1:
avoidfc='$avoidfc'

ersetze gegen:
php:
1:
avoidfc='".intval($avoidfc)."'

suche:
php:
1:
ismod='$ismod'

ersetze gegen:
php:
1:
ismod='".intval($ismod)."'

suche:
php:
1:
issupermod='$issupermod'

ersetze gegen:
php:
1:
issupermod='".intval($issupermod)."'

suche:
php:
1:
canuseacp='$canuseacp'

ersetze gegen:
php:
1:
canuseacp='".intval($canuseacp)."'

suche:
php:
1:
canviewprofile='$canviewprofile'

ersetze gegen:
php:
1:
canviewprofile='".intval($canviewprofile)."'

suche:
php:
1:
canviewcalender='$canviewcalender'

ersetze gegen:
php:
1:
canviewcalender='".intval($canviewcalender)."'

suche:
php:
1:
canprivateevent='$canprivateevent'

ersetze gegen:
php:
1:
canprivateevent='".intval($canprivateevent)."'

suche:
php:
1:
canpublicevent='$canpublicevent'

ersetze gegen:
php:
1:
canpublicevent='".intval($canpublicevent)."'

suche:
php:
1:
canrateusers='$canrateusers'

ersetze gegen:
php:
1:
canrateusers='".intval($canrateusers)."'

suche:
php:
1:
canviewmblist='$canviewmblist'

ersetze gegen:
php:
1:
canviewmblist='".intval($canviewmblist)."'



Es besteht die Möglichkeit der SQL-Injection in der acp/icon.php:
Lösung:
suche ALLE in acp/icon.php:
php:
1:
WHERE iconid '".$_POST['iconid']."'

ersetze ALLE gegen:
php:
1:
WHERE iconid '".intval($_POST['iconid'])."'

suche ALLE:
php:
1:
WHERE iconid '".$_REQUEST['iconid']."'

ersetze ALLE gegen:
php:
1:
WHERE iconid '".intval($_REQUEST['iconid'])."'


Es besteht die Möglichkeit der SQL-Injection in der acp/ranks.php:
Lösung:
suche in acp/ranks.php:
php:
1:
,'".$_POST['group']."','".$_POST['gender']."'

ersetze gegen:
php:
1:
,'".intval($_POST['group'])."','".intval($_POST['gender'])."'

suche:
php:
1:
groupid '".$_POST['group']."'gender '".$_POST['gender']."'

ersetze gegen:
php:
1:
groupid '".intval($_POST['group'])."'gender '".intval($_POST['gender'])."'


Die Funktionen betreffend der avatar.php, board.php, group.php, icon.php und ranks.php sollten, nach den Änderungen, auf ihre funktionalität geprüft werden.
Es ist nicht ausgeschlossen, dass eine der beschriebenen Änderungen fehlerhaft sein könnte.

Dieser Beitrag wurde 13 mal editiert, zum letzten Mal von Schrimm: 21.07.12 18:53.

04.03.12 13:37 Schrimm ist offline Finden Als Freund hinzufügen
Beckebans Beckebans ist männlich
Alternativ Mitglied


images/avatars/avatar-5856.jpg

Dabei seit: 10.07.05
Beiträge: 439
Fähigkeiten: WBB Lite 1 Fortgeschritten
Herkunft: Paderborn
Forenversion: Lite 1.0

Antworten Zitieren Editieren Melden       UP

Mir ist aufgefallen, dass Ankündigungen in der Themenübersicht auch angezeigt werden, wenn der User kein Leserecht für das Unterforum, in dem die Ankündigung erstellt wurde, hat. Da es dann beim Klick auf das Thema eh nur eine Fehlermeldung gibt, ist hier eine Möglichkeit die Ankündigung erst gar nicht anzuzeigen:

==> board.php

Suche:
php:
1:
2:
3:
4:
5:
6:
//$result = $db->query("SELECT threadid FROM bb".$n."_threads WHERE boardid='$boardid' AND important = 2 AND visible = 1");
$result $db->query("SELECT threadid FROM bb".$n."_announcements WHERE boardid='$boardid'");
while($row $db->fetch_array($result)) {
 $announcecount++;
 $announceids .= ",".$row['threadid'];
}

Ersetzen durch:
php:
1:
2:
3:
4:
5:
6:
7:
8:
$result $db->query("SELECT threadid FROM bb".$n."_announcements WHERE boardid='".$boardid."'");
while($row $db->fetch_array($result)) {
 $announcethread $db->query_first("SELECT threadid, boardpermission FROM bb".$n."_threads LEFT JOIN bb".$n."_permissions USING (boardid) WHERE threadid='".$row['threadid']."' AND groupid='".$wbbuserdata['groupid']."' AND visible = 1");
 if($announcethread['threadid'] && $announcethread['boardpermission'] == 1) {
  $announcecount++;
  $announceids .= ",".$announcethread['threadid'];
 }
}



Für Verbesserungsvorschläge bin ich offen smile

__________________
Meine Hacks:
- Userpage Hack
- Geburtstagsliste
- Umfragedauer
- Neue Beiträge während Eigenem
- In Memberslist (User ausblenden)
- Singular - Plural
- ICQ Status - Link
- Kontaktfelder ausblenden
- Acronyme Hack [Erweiterung]
- Avatar for Avatarless [ACP-Erweiterung]
09.05.15 23:17 Beckebans ist offline E-Mail WWW Finden Als Freund hinzufügen
S!equenz
Last Man Standing


Dabei seit: 10.07.12
Beiträge: 678
Fähigkeiten: WBB2 Fortgeschritten
Forenversion: 2.3

Antworten Zitieren Editieren Melden       UP

Update

Öffne class_parse.php und suche:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
static function convertHTML($post,$x=true) {
  $post = str_replace("&lt;","&amp;lt;",$post);
  $post = str_replace("&gt;","&amp;gt;",$post);
  $post = str_replace("<","&lt;",$post);
  $post = str_replace(">","&gt;",$post);
  if($x) {
   $post = str_replace("{","{",$post);
   $post = str_replace("}","}",$post);
  }  
  return $post;
 }


Ersetze mit:

code:
1:
2:
3:
4:
5:
6:
static function convertHTML($post) {
  $post = htmlentities($post,ENT_QUOTES | ENT_HTML401);
  return $post;
 }


Finde:

code:
1:
if($allowhtml==0) $post=$this->convertHTML($post,false);


Ersetze es gegen:

code:
1:
if($allowhtml==0) $post=$this->convertHTML($post);



Update

Nun wurde von Schrimm doch eine einfachere Lösung bereitgestellt:

Öffne class_parse.php und ersetze:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
static function convertHTML($post,$x=true) {
  $post = str_replace("&lt;","&amp;lt;",$post);
  $post = str_replace("&gt;","&amp;gt;",$post);
  $post = str_replace("<","&lt;",$post);
  $post = str_replace(">","&gt;",$post);
  if($x) {
   $post = str_replace("{","{",$post);
   $post = str_replace("}","}",$post);
  }  
  return $post;
 }


mit:

code:
1:
2:
3:
4:
static function convertHTML($post,$x=true) {
  $post = htmlentities($post);
  return $post;
 }


Für originale Foren die noch unter PHP 5.2 etc. laufen ´static´ weglassen.

Das wbblite wandelt standartmäßig z.b. &nbsp; in Beiträgen um.
Dies ist natürlich schlecht wenn man z.b. PHP Skripte posten möchte.

Folgendes schafft abhilfe.
Schrimm wollte die Lösung nicht preisgeben, daher habe ich das nun übernommen. smile

Dies setzt PHP 7.1 voraus.
Für 5.2 etc. muss es ein wenig abgewandelt werden.

Öffne functions.php und finde:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
function stripcrap($post) {
 if($post) {
  $post=preg_replace("/(\?|\&){1}sid=[a-z0-9]{32}/","\\1sid=",$post);
  $post=preg_replace_callback("/(&#)(\d+)(;)/",function($matches) {return chr(intval($matches[2]));},$post);
 }    
 return $post;
}


Ersetze mit:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
function stripcrap($post) {
 if($post) {
  $post=htmlspecialchars_thrive_template_software($post);
  $post=preg_replace("/(\?|\&){1}sid=[a-z0-9]{32}/","\\1sid=",$post);
  $post=preg_replace_callback("/(&#)(\d+)(;)/",function($matches) {return chr(intval($matches[2]));},$post);
 }    
 return $post;
}


Öffne class_parse.php und finde:

code:
1:
$code=htmlspecialchars_thrive_template_software($code);


Ersetze es mit:

code:
1:
//$code=htmlspecialchars_thrive_template_software($code);


Finde:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
static function convertHTML($post,$x=true) {
  $post = str_replace("&lt;","&amp;lt;",$post);
  $post = str_replace("&gt;","&amp;gt;",$post);
  $post = str_replace("<","&lt;",$post);
  $post = str_replace(">","&gt;",$post);
  if($x) {
   $post = str_replace("{","{",$post);
   $post = str_replace("}","}",$post);
  }  
  return $post;
 }


Ersetze es mit:

code:
1:
2:
3:
4:
5:
static function convertHTML($post,$x=true) { 
  return $post;
 }


Finde:

code:
1:
$code = "<?php ".trim($code)." ?>";


Füge darunter ein:

code:
1:
$code = rehtmlspecialchars_thrive_template_software($code);


__________________
Lüge Zweckmäßige Übertreibung
01.05.17 05:05 S!equenz ist offline E-Mail Finden Als Freund hinzufügen
Baumstruktur | Brettstruktur
Gehe zu:

Neues Thema erstellen Antwort erstellen

yourWBB » WoltLab Burning Board Generation 2 * » Alles von und für das WBB Lite 1.0.x » [WBB Lite 1.0.x] Allg. Fragen und Probleme » Diverse Bugfix/Sicherheitsupdates für das WBBLite