To jest tylko wersja do druku, aby zobaczyć pełną wersję tematu, kliknij TUTAJ
phpBB2 by Przemo
Support forów phpBB2 modified by Przemo

Ogłoszenia - Poprawka1 dla wersji 1.12.6

chelloPL - 28-03-2008, 15:22
Temat postu: Poprawka1 dla wersji 1.12.6
W związku z możliwością ataku XSS, prosimy o wykonanie poniższych zmian w kodzie forum:

admin/admin_mass_email.php
Znajdź:
Kod:
mass_email('', '', '', '', '', $HTTP_GET_VARS['start']);

zamień na:
Kod:
mass_email('', '', '', '', '', intval($HTTP_GET_VARS['start']));


groupcp_mail.php
Znajdź:
Kod:
mass_email('', $userdata['user_email'], '', '', '', $HTTP_GET_VARS['start']);

zamień na:
Kod:
mass_email('', $userdata['user_email'], '', '', '', intval($HTTP_GET_VARS['start']));


common.php
Znajdź:
Kod:
$PHP_SELF = ($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_ENV_VARS['PHP_SELF'];

przed tym, dodaj:
Kod:
if (isset($HTTP_GET_VARS['sid']) && !preg_match('/^[A-Za-z0-9]*$/', $HTTP_GET_VARS['sid']))
{
       $HTTP_GET_VARS['sid'] = '';
}
if (isset($HTTP_POST_VARS['sid']) && !preg_match('/^[A-Za-z0-9]*$/', $HTTP_POST_VARS['sid']))
{
       $HTTP_POST_VARS['sid'] = '';
}


viewtopic.php
Znajdź:
Kod:
$reply_topic_back_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&postdays=0&postorder=0&start=" . ($HTTP_GET_VARS['cp'] * $user_posts_per_page));
message_die('GENERAL_MESSAGE', sprintf($lang['Loser_protect'], $HTTP_GET_VARS['cp'], $HTTP_GET_VARS['ap'], '<a href="' . $reply_topic_back_url . '">', '</a>', '<a href="' . $reply_topic_url . '">', '</a>'));

zamień na:
Kod:
$reply_topic_back_url = append_sid("viewtopic.$phpEx?" . POST_TOPIC_URL . "=$topic_id&amp;postdays=0&amp;postorder=0&amp;start=" . (intval($HTTP_GET_VARS['cp']) * $user_posts_per_page));
message_die('GENERAL_MESSAGE', sprintf($lang['Loser_protect'], intval($HTTP_GET_VARS['cp']), intval($HTTP_GET_VARS['ap']), '<a href="' . $reply_topic_back_url . '">', '</a>', '<a href="' . $reply_topic_url . '">', '</a>'));


includes/functions_hierarchy.php
Znajdź:
Kod:
$link = '<a href="' . $wpgm . '" title="' . $wdesc . '" class="gensmall"' . $style_color . '>' . $wname . '</a>';

zamień na:
Kod:
$link = '<a href="' . $wpgm . '" title="' . htmlspecialchars(strip_tags($wdesc)) . '" class="gensmall"' . $style_color . '>' . $wname . '</a>';


includes/functions_validate.php
Znajdź:
Kod:
if (strstr($username, '"') || strstr($username, '&') || strstr($username, chr(160)) || strstr($username, '  ') || strstr(stripslashes($username), '\\') || strstr(stripslashes($username), '%')  )

zamień na:
Kod:
if (strstr($username, '"') || strstr($username, '&') || strstr($username, chr(160)) || strstr($username, chr(173)) || strstr($username, '  ') || strstr(stripslashes($username), '\\') || strstr(stripslashes($username), '%')  )


admin/admin_priv_msgs.php
Znajdź:
Kod:
$delete = (isset($HTTP_GET_VARS['delete'])) ? $HTTP_GET_VARS['delete'] : $HTTP_POST_VARS['delete'];

zamień na:
Kod:
$delete = (isset($HTTP_GET_VARS['delete'])) ? intval($HTTP_GET_VARS['delete']) : intval($HTTP_POST_VARS['delete']);

Znajdź:
Kod:
$start = ( isset($HTTP_GET_VARS['start']) ) ? $HTTP_GET_VARS['start'] : 0;

zamień na:
Kod:
$start = ( isset($HTTP_GET_VARS['start']) ) ? intval($HTTP_GET_VARS['start']) : 0;


privmsg.php
Znajdź:
Kod:
OR privmsgs_type = " . PRIVMSGS_UNERAD_MAIL . " ) ";

zamień na:
Kod:
OR privmsgs_type = " . PRIVMSGS_UNREAD_MAIL . " ) ";

Znajdź:
Kod:
$min_msg_time = CR_TIME - ($msg_days * 86400);

zamień na:
Kod:
$min_msg_time = CR_TIME - ($msg_days * 60);

Komentarz: już kilka albo nawet kilkanaście osób mi zgłaszało, że piszę aby zamienić kod na to samo. Nie. W słowie UNREAD jest zamieniona litera R i E.

templates/subSilver/login_body.tpl
znajdź:
Kod:
<td><input type="password" name="password" size="25" maxlength="25" class="post2" onFocus="Active(this)" onBlur="NotActive(this)" /></td>

zamień na:
Kod:
<td><input type="password" name="password" size="25" maxlength="40" class="post2" onFocus="Active(this)" onBlur="NotActive(this)" /></td>



Dla leniwych i nieposiadających innych modyfikacji - zalecam pobranie ze strony głównej paczki i nadpisanie plików (z wyłączeniem config.php)

Dla wszystkich osób, które nie zaktualizowały jeszcze swojego forum do wersji 1.12.6, serdecznie zapraszam do pobrania nowej wersji (również ze strony głównej)



Dla osób, które nie chcą się bawić w ręczne modyfikowanie plików, załączam plik .patch aktualizujący z wersji 1.12.6 do 1.12.6p1.

sebb2PL - 28-03-2008, 15:34

chelloPL napisał/a:
templates/subSilver/login_body.tpl
znajdź:
Kod:
<td><input type="password" name="password" size="25" maxlength="25" class="post2" onFocus="Active(this)" onBlur="NotActive(this)" /></td>

zamień na:
Kod:
<td><input type="password" name="password" size="25" maxlength="40" class="post2" onFocus="Active(this)" onBlur="NotActive(this)" /></td>


To mamy zastosować do każdego stylu ?

lord.nitos - 28-03-2008, 15:35

Raczej tak bo subSilver jest podawany jako przykład :D
chelloPL - 28-03-2008, 15:36

Jeśli w pozostałych stylach znajduje się ten kod (a na 95% tak), to też.
Centurion - 28-03-2008, 17:34

W załączniku plik patch uwzględniający zmiany między pierwotną wersją 1.12.6 a powyższą poprawką
Przemo - 28-03-2008, 19:54

Jednak chcialbym przypomniec, ze mozliwosc wykorzystania XSS w phpBB a tymbardziej w phpBB by Przemo jest znikoma. Musialo by byc spelnionych kilka trudnych warunkow aby taki atak sie udal. Hacker moze wyciagnac ciastka usera ale nic z nimi nie zrobi. Dziala tu tez mechanizm ktory zrobilem - zabezpieczenia moderatorow i adminow gdy maja wlaczone autologowanie, dlatego powinno ono byc wlaczone w panelu admina w konfiguracji ogolnej.

Jednak zastosowanie tej poprawki jest konieczne ! Nigdy nie wiadomo co sie moze stac.

lord.nitos - 28-03-2008, 19:55

Przemo napisał/a:
Jednak chcialbym przypomniec, ze mozliwosc wykorzystania XSS w phpBB a tymbardziej w phpBB by Przemo jest znikoma. Musialo by byc spelnionych kilka trudnych warunkow aby taki atak sie udal. Hacker moze wyciagnac ciastka usera ale nic z nimi nie zrobi.


Ale zawsze to jakaś szansa dla hackera... :D

sebb2PL - 28-03-2008, 19:55

No dobrze ... a mam pytanie:
- czy po wykonaniu tej całej instrukcji zauważę jakieś zmiany na forum ? - mniejsze/większe ?

Przemo - 28-03-2008, 20:03

Mr.Krecik, on nic nie palnal, ma racje, to raczej ty palnales bo to jes tpoprawka bezpieczenstwa wiec nic nie zauwazysz, ewentualnie jakis drobny blad zniknie :)
koziolek - 28-03-2008, 22:01

fajnie że wyszła poprawka ale może zastosowalibyście ją na tym forum? ;]
mówie o tej odnośnie stylu bo chciałem sobie zmienić hasło ale mam dłuższe niż 32 znaki i mnie nie zaloguje :|

maniocek - 30-03-2008, 09:47

Zabezpieczyłem swoje forum.
Co przez ten XSS można narobić?

JrQ- - 30-03-2008, 10:23

Włamać się na forum?
maniocek - 30-03-2008, 10:37

JrQ-, to wiem...
Ale co konkretnie?
Będzie miał dostęp do bazy i plików?

meschiash - 30-03-2008, 11:04

Cross site scripting XSS
chelloPL - 30-03-2008, 11:53

maniocek napisał/a:
Co przez ten XSS można narobić?

Ponieważ forum posiada inne zabezpieczenia, dlatego sam XSS nie jest aż tak bardzo niebezpieczny.
Jednak nie muszę chyba przypominać nie tak dawnego błędu w przeglądarkach internetowych, który mógł zostać wykorzystany do wykradnięcia haseł.

Dlatego mimo wszystko zastosowanie tej łatki jest obowiązkowe z punktu widzenia bezpieczeństwa (a powyższa łatka usuwa również inne dość istotne błędy).



Powered by phpBB modified by Przemo © 2003 phpBB Group