Sicherheitsloch in phpBB2 Plus und Categories Hierarchy
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
RE
Hallo,
wie ich weis mußt Du das Mod manuel Deinstallieren, alles rückgänig machen was in der Install.txt steht!.Hast Du ein Backup gemacht? Dann spiel das einfach wieder auf.
wie ich weis mußt Du das Mod manuel Deinstallieren, alles rückgänig machen was in der Install.txt steht!.Hast Du ein Backup gemacht? Dann spiel das einfach wieder auf.
- Nico Haase
- Mitglied
- Beiträge: 1100
- Registriert: 10.08.2003 15:19
- Wohnort: Neu-Anspach / Darmstadt
- Kontaktdaten:
also, auf meinem board lässt sich der fehler nicht reproduzieren. zum test habe ich beispielsweise aus dem titel eines themas im internen forum von http://www.buchtips.net/forum/ verriss eingegeben, genauso Theaterstück aus dem text eines themas. ich setze ein halb-kaputt gemoddetes 2.0.6 mit categories hack 2.0.2 ein - vielleicht ist der nicht betroffen?
Buchtips.net bietet mehr als 2500 Buchrezensionen
- Waagenbauer
- Mitglied
- Beiträge: 219
- Registriert: 11.06.2001 02:00
- Kontaktdaten:
Habe das gleiche Problem mit phpBB 2.0.4 und dem Mod v2.0.4.
Meiner Meinung nach steckt der Fehler in der "function get_auth_keys".
Wird in search.php hierfür gebraucht:
Ich habe schon versucht $auth_sql .= (( $auth_sql != '' ) ? " AND" : '') . " f.forum_id IN ($s_flist) "; dem alten Code anzupassen. Ohne Erfolg.
Bei mir funzt außerdem die Forum-Auswahl nicht. Es werden immer alle Beiträge aus allen Foren angezeigt.
NACHTRAG:
Ich habe private Unterforen in Unterkategorien, wobei hier Ansicht für 'Alle' erlaubt ist, aber lesen (auth_read) nicht erlaubt.
Wenn ich in allen Foren oder in anderen Foren aus anderen Kategorien Suchen lassen, werden keine Beiträge aus dem privaten Subforum in den Ergebnissen angezeigt. Was richtig ist.
Wenn ich aber das private auswähle, spuckt er mir als 'Gast' die privaten Posts aus.
Das heisst ich müsste alle privaten Foren verstecken, also 'Ansicht' (auth_view) nur für 'Privat' einstellen.
Das habe ich nun gemacht:
Jetzt werden die privaten bei Beitrags-Suche in allen Foren ignoriert -> wieder Richtig.
Suche ich in der Kategorie über dem 'verstecktem, privatem' Forum (alle auth auf 'Privat'), bekomme ich immer noch die Beitrags-'Vorschau'.
Vielleicht ist das eine Hilfe für andere, die auch auf der Suche nach diesem Bug sind. Ich weis immo nicht weiter.
Habe bis der Fehler gefunden wird, die Forumauswahl im Such-Formular rausgenommen.
Meiner Meinung nach steckt der Fehler in der "function get_auth_keys".
Wird in search.php hierfür gebraucht:
Code: Alles auswählen
//-- mod : categories hierarchy --------------------------------------------------------------------
//-- delete
// if ( $search_forum != -1 )
// {
// $is_auth = auth(AUTH_READ, $search_forum, $userdata);
//
// if ( !$is_auth['auth_read'] )
// {
// message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']);
// }
//
// $auth_sql = "f.forum_id = $search_forum";
// }
// else
// {
// $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
//
// if ( $search_cat != -1 )
// {
// $auth_sql = "f.cat_id = $search_cat";
// }
//
// $ignore_forum_sql = '';
// while( list($key, $value) = each($is_auth_ary) )
// {
// if ( !$value['auth_read'] )
// {
// $ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key;
// }
// }
//
// if ( $ignore_forum_sql != '' )
// {
// $auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) ";
// }
// }
//-- add
// get the object list
$keys = array();
$keys = get_auth_keys($search_where, true, -1, -1, 'auth_read');
$s_flist = '';
for ($i=0; $i < count($keys['id']); $i++)
{
if ( ($tree['type'][ $keys['idx'][$i] ] == POST_FORUM_URL) && $tree['auth'][ $keys['id'][$i] ]['auth_read'] )
{
$s_flist .= (($s_flist != '') ? ', ' : '') . $tree['id'][ $keys['idx'][$i] ];
}
}
if ($s_flist != '')
{
$auth_sql .= (( $auth_sql != '' ) ? " AND" : '') . " f.forum_id IN ($s_flist) ";
}
//-- fin mod : categories hierarchy ----------------------------------------------------------------
Bei mir funzt außerdem die Forum-Auswahl nicht. Es werden immer alle Beiträge aus allen Foren angezeigt.

NACHTRAG:
Ich habe private Unterforen in Unterkategorien, wobei hier Ansicht für 'Alle' erlaubt ist, aber lesen (auth_read) nicht erlaubt.
Wenn ich in allen Foren oder in anderen Foren aus anderen Kategorien Suchen lassen, werden keine Beiträge aus dem privaten Subforum in den Ergebnissen angezeigt. Was richtig ist.
Wenn ich aber das private auswähle, spuckt er mir als 'Gast' die privaten Posts aus.
Das heisst ich müsste alle privaten Foren verstecken, also 'Ansicht' (auth_view) nur für 'Privat' einstellen.
Das habe ich nun gemacht:
Jetzt werden die privaten bei Beitrags-Suche in allen Foren ignoriert -> wieder Richtig.
Suche ich in der Kategorie über dem 'verstecktem, privatem' Forum (alle auth auf 'Privat'), bekomme ich immer noch die Beitrags-'Vorschau'.
Vielleicht ist das eine Hilfe für andere, die auch auf der Suche nach diesem Bug sind. Ich weis immo nicht weiter.
Habe bis der Fehler gefunden wird, die Forumauswahl im Such-Formular rausgenommen.
Also ich scheine dieses Sicherheitsloch nicht zu haben obwohl ich phpbbplus 1.3 einsetzte habe auch gesperrte Foren diese sind jedoch nicht per suche zu finden. Habe auf Beiträge geschalten beim suchen auch mal meinen eigenen Nick genommen und nach dem gesucht da dieser auch in einem Privatem Forum sachen rein schreibt. Nur die Suche hat davon nichts angezeigt weder beiträge noch themen.
Entweder liegt es daran weil ich von einem phpbb 2.0.6 auf ein phpbb plus 1.3 upgedatet habe.
Entweder liegt es daran weil ich von einem phpbb 2.0.6 auf ein phpbb plus 1.3 upgedatet habe.
- Waagenbauer
- Mitglied
- Beiträge: 219
- Registriert: 11.06.2001 02:00
- Kontaktdaten:
mini kalender
Hallo,
also ich hab auch diese 1.3 plus und wenn ich bei dem mini Kalender links auf dem Portal als Gast ein Datum klicke wo ein Beitrag in einem geschüztem Forum geschrieben worden ist, dann kann ich den als Gast auch lesen. Hat das Problem noch einer?
Gruß
Matthias
also ich hab auch diese 1.3 plus und wenn ich bei dem mini Kalender links auf dem Portal als Gast ein Datum klicke wo ein Beitrag in einem geschüztem Forum geschrieben worden ist, dann kann ich den als Gast auch lesen. Hat das Problem noch einer?
Gruß
Matthias
Hab den Suchen Button benutzt 

- Waagenbauer
- Mitglied
- Beiträge: 219
- Registriert: 11.06.2001 02:00
- Kontaktdaten:
Fehler gefunden!!
Ich habe die Ursache des Problems gefunden!!
Wie von mir vermutet (siehe oberen Post) liegt der Fehler in einem modifiziertem Code-Abschnitt in search.php.
Ursprunglich wird bei "get the object list" im modifiziertem Teil eine Liste Foren-IDs erzeugt, die vom User (Gast) gelesen werden dürfen. Sie wird dem $auth_sql hinzugefügt.
Bei der Ausgabe der Suchergebnisse werden aber so die Privaten Foren, die für Gäste gesperrt sind, mit ausgegeben.
Folgende Änderung habe ich vorgenommen:
$auth_sql wird zusätzlich eine Liste von Foren-IDs hinzugefügt, die NICHT gelesen werden dürfen.
In der SQL-Anweisung steht dann:
WHERE f.forum_id IN (zu durchsuchende Foren) AND f.forum_id NOT IN (zu ignorierende Foren)
Wenn es keine zu durchsuchenden Foren gibt, wird "No_searchable_forums" ausgegeben.
In search.php diesen Abschnitt ersetzen:
Durch:
Wie von mir vermutet (siehe oberen Post) liegt der Fehler in einem modifiziertem Code-Abschnitt in search.php.
Ursprunglich wird bei "get the object list" im modifiziertem Teil eine Liste Foren-IDs erzeugt, die vom User (Gast) gelesen werden dürfen. Sie wird dem $auth_sql hinzugefügt.
Bei der Ausgabe der Suchergebnisse werden aber so die Privaten Foren, die für Gäste gesperrt sind, mit ausgegeben.
Folgende Änderung habe ich vorgenommen:
$auth_sql wird zusätzlich eine Liste von Foren-IDs hinzugefügt, die NICHT gelesen werden dürfen.
In der SQL-Anweisung steht dann:
WHERE f.forum_id IN (zu durchsuchende Foren) AND f.forum_id NOT IN (zu ignorierende Foren)
Wenn es keine zu durchsuchenden Foren gibt, wird "No_searchable_forums" ausgegeben.
In search.php diesen Abschnitt ersetzen:
Code: Alles auswählen
//-- mod : categories hierarchy --------------------------------------------------------------------
//-- delete
// if ( $search_forum != -1 )
// {
// $is_auth = auth(AUTH_READ, $search_forum, $userdata);
//
// if ( !$is_auth['auth_read'] )
// {
// message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']);
// }
//
// $auth_sql = "f.forum_id = $search_forum";
// }
// else
// {
// $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
//
// if ( $search_cat != -1 )
// {
// $auth_sql = "f.cat_id = $search_cat";
// }
//
// $ignore_forum_sql = '';
// while( list($key, $value) = each($is_auth_ary) )
// {
// if ( !$value['auth_read'] )
// {
// $ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key;
// }
// }
//
// if ( $ignore_forum_sql != '' )
// {
// $auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) ";
// }
// }
//-- add
// get the object list
$keys = array();
$keys = get_auth_keys($search_where, true, -1, -1, 'auth_read');
$s_flist = '';
for ($i=0; $i < count($keys['id']); $i++)
{
if ( ($tree['type'][ $keys['idx'][$i] ] == POST_FORUM_URL) && $tree['auth'][ $keys['id'][$i] ]['auth_read'] )
{
$s_flist .= (($s_flist != '') ? ', ' : '') . $tree['id'][ $keys['idx'][$i] ];
}
}
if ($s_flist != '')
{
$auth_sql .= (( $auth_sql != '' ) ? " AND" : '') . " f.forum_id IN ($s_flist) ";
}
//-- fin mod : categories hierarchy ----------------------------------------------------------------
Code: Alles auswählen
//-- mod : categories hierarchy --------------------------------------------------------------------
//-- delete
// if ( $search_forum != -1 )
// {
// $is_auth = auth(AUTH_READ, $search_forum, $userdata);
//
// if ( !$is_auth['auth_read'] )
// {
// message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']);
// }
//
// $auth_sql = "f.forum_id = $search_forum";
// }
// else
// {
// $is_auth_ary = auth(AUTH_READ, AUTH_LIST_ALL, $userdata);
//
// if ( $search_cat != -1 )
// {
// $auth_sql = "f.cat_id = $search_cat";
// }
//
// $ignore_forum_sql = '';
// while( list($key, $value) = each($is_auth_ary) )
// {
// if ( !$value['auth_read'] )
// {
// $ignore_forum_sql .= ( ( $ignore_forum_sql != '' ) ? ', ' : '' ) . $key;
// }
// }
//
// if ( $ignore_forum_sql != '' )
// {
// $auth_sql .= ( $auth_sql != '' ) ? " AND f.forum_id NOT IN ($ignore_forum_sql) " : "f.forum_id NOT IN ($ignore_forum_sql) ";
// }
// }
//-- add
// get the object list
$keys = array();
$keys = get_auth_keys($search_where, true, -1, -1, 'auth_read');
$s_flist = '';
$i_flist = '';
for ($i=0; $i < count($keys['id']); $i++)
{
if ( ($tree['type'][ $keys['idx'][$i] ] == POST_FORUM_URL) && $tree['auth'][ $keys['id'][$i] ]['auth_read'] )
{
$s_flist .= (($s_flist != '') ? ', ' : '') . $tree['id'][ $keys['idx'][$i] ];
}
if ( ($tree['type'][ $keys['idx'][$i] ] == POST_FORUM_URL) && !$tree['auth'][ $keys['id'][$i] ]['auth_read'] )
{
$i_flist .= (($i_flist != '') ? ', ' : '') . $tree['id'][ $keys['idx'][$i] ];
}
}
if ($s_flist != '')
{
$auth_sql .= (( $auth_sql != '' ) ? " AND" : '') . " f.forum_id IN ($s_flist) ";
}
else
{
message_die(GENERAL_MESSAGE, $lang['No_searchable_forums']);
}
if ($i_flist != '')
{
$auth_sql .= (( $auth_sql != '' ) ? " AND" : '') . " f.forum_id NOT IN ($i_flist) ";
}
//-- fin mod : categories hierarchy ----------------------------------------------------------------
- Waagenbauer
- Mitglied
- Beiträge: 219
- Registriert: 11.06.2001 02:00
- Kontaktdaten: