Diverse Bugfix/Sicherheitsupdates für das WBBLite |
|
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 |
Finden
Als Freund hinzufügen
|
|
Izzmoo unregistriert
|
|
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
|
|
Im UserCP unter Favoriten, sowie in den Suchergebnissen werden die Ordnersymbole / Themenicons nicht korrekt gezeigt. Zur Verdeutlichung ein Screen:
Dateianhang: |
bug_b.jpg (85,33 KB, 4.016 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=" "; |
|
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=" "; |
|
-------------------------------------------------------
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=" "; |
|
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=" "; |
|
##############################################
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:
-------------------------------------------------------
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 |
Finden
Als Freund hinzufügen
|
|
Bräke
Mitglied
Dabei seit: 01.01.04
Beiträge: 8.189
|
|
Ü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:füge darüber:
code: |
1:
|
} else eval("error(\"".$tpl->get("error_login")."\");"); |
|
|
|
12.09.10 16:59 |
Finden
Als Freund hinzufügen
|
|
Schrimm
Banned
Dabei seit: 21.08.11
Beiträge: 700
|
|
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 syntax; check 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:
ersetze gegen:
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 |
Finden
Als Freund hinzufügen
|
|
Schrimm
Banned
Dabei seit: 21.08.11
Beiträge: 700
|
|
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:
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:
ersetze gegen:
php: |
1:
|
'".intval($canviewboard)."' |
|
suche:
php: |
1:
|
'$canviewoffboard' |
|
ersetze gegen:
php: |
1:
|
'".intval($canviewoffboard)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($canusesearch)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($canusepms)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($canstarttopic)."' |
|
suche:
php: |
1:
|
'$canreplyowntopic' |
|
ersetze gegen:
php: |
1:
|
'".intval($canreplyowntopic)."' |
|
suche:
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:
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:
ersetze gegen:
php: |
1:
|
'".intval($canpostpoll)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($canvotepoll)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($canuseavatar)."' |
|
suche:
php: |
1:
|
'$canuploadavatar' |
|
ersetze gegen:
php: |
1:
|
'".intval($canuploadavatar)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($canratethread)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($canviewmblist)."' |
|
suche:
php: |
1:
|
'$appendeditnote' |
|
ersetze gegen:
php: |
1:
|
'".intval($appendeditnote)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($avoidfc)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($ismod)."' |
|
suche:
ersetze gegen:
php: |
1:
|
'".intval($issupermod)."' |
|
suche:
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:
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:
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 |
Finden
Als Freund hinzufügen
|
|
Beckebans
Alternativ Mitglied
Dabei seit: 10.07.05
Beiträge: 481
Fähigkeiten: WBB Lite 1 Fortgeschritten Herkunft: Paderborn Forenversion: Lite 1.0
|
|
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
__________________ Meine Hacks:
- Userpage
- Geburtstagsliste
- Beitrag bedanken
- User verlinken
- PHP-Fehler anzeigen
- Umfragedauer
- Neue Beiträge während Eigenem
- Gruppenspezifische Mitgliederliste
- und weitere...
|
|
09.05.15 23:17 |
E-Mail
WWW
Finden
Als Freund hinzufügen
|
|
S!equenz
Last Man Standing
Dabei seit: 10.07.12
Beiträge: 811
Fähigkeiten: WBB2 Fortgeschritten Forenversion: 2.3
|
|
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;",$post);
$post = str_replace(">","&gt;",$post);
$post = str_replace("<","<",$post);
$post = str_replace(">",">",$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;",$post);
$post = str_replace(">","&gt;",$post);
$post = str_replace("<","<",$post);
$post = str_replace(">",">",$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. 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.
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;",$post);
$post = str_replace(">","&gt;",$post);
$post = str_replace("<","<",$post);
$post = str_replace(">",">",$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 |
E-Mail
Finden
Als Freund hinzufügen
|
|
|