Archiwum - 1.12.7 - globalne zabezpieczenie przeciw w?amaniom
Przemo - 31-01-2010, 14:25 Temat postu: 1.12.7 - globalne zabezpieczenie przeciw włamaniom W 1.12.7 będzie tez nowe globalne zabezpieczenie na wypadek gdyby kiedyś w przyszłości komuś jeszcze udało się znaleźć jakąś dziurę.
Gdyby to zabezpieczenie było wcześniej 90% dziur, które były w phpBB nie zadziałałyby.
Zabezpieczenie to powoduje, ze jeżeli w parametrze _GET znajdzie się "nieznany" ciąg znaków to mechanizm przerywa skrypt zwracając "Hacking attempt"
Jeśli chcecie to możecie już teraz u siebie na forum to szybko zainstalować, dodatkowo tez wersja, która tutaj podam wysyła email na adres ustawiony w polu "E-mail nadawcy" w konfiguracji forum. Docelowo nie będzie wysyłało maila.
Przez cala noc dostałem 100 emaili, większość to tak zwane skanery dziur, jednak zdarzają się i "ręczne" próby ataku.
Odradzam testowanie sprawdzanie jak to działa tutaj na przemo.org bo cale maski adresów IP z ręcznych ataków dodaje na serwerze do banlisty i nie wejdziecie już tutaj. Chyba, ze jest adres referowany, wtedy sprawdzam czy ktoś nie wstawił gdzieś takiego linka.
Otwórz common.php i znajdź: Kod: | $board_config['topics_per_page'] = ($board_config['topics_per_page'] < 1) ? '25' : $board_config['topics_per_page']; |
Powyżej tego wstaw: Kod: | if ( count($HTTP_GET_VARS) )
{
foreach($HTTP_GET_VARS as $key => $val)
{
if ( strlen($val) > 18 && !preg_match('#^[a-z0-9_ /+]*={0,2}$#i', $val) && $key != 'redirect' && $key != 'highlight' )
{
$txt = "Atak na zmienna: ".$key."\n\r";
$txt .= "Danymi: ".$val."\n\r";
$txt .= "Atak z IP: ".$HTTP_SERVER_VARS['REMOTE_ADDR']." HOST: ".gethostbyaddr($HTTP_SERVER_VARS['REMOTE_ADDR'])."\n\r";
$txt .= "Adres referer: ".$HTTP_SERVER_VARS['HTTP_REFERER']."\n\r";
mail($board_config['email_from'], 'Proba ataku na zmienna: '.$key, $txt);
die('Hacking attempt');
}
}
} |
Przetestować to możecie np. wchodząc na adres swojego forum dodając: /index.php?test=phpbb_root_path=http://test.test/test
maminowiec - 31-01-2010, 16:22
Przemo, można też takie zrobić do np POST itd
najlepiej jak by była konfiguracja z poziomu PA
ps a nie lepiej zamiast
Kod: | if ( count($HTTP_GET_VARS) ) |
dać
Kod: | if ( isset($HTTP_GET_VARS) ) |
albo empty
??
NX - 31-01-2010, 18:00
Czy to było testowane i rzeczywiście pomaga a nie szkodzi ?
Polaczek - 31-01-2010, 19:18
gryzie się z seotags tylko
Przemo - 31-01-2010, 19:44
NX, jasne, że nie szkodzi.
Polaczek, hmm, dobrze, że mówisz, ciekawe z jakimi jeszcze modami będzie się gryzło?
Przemo - 31-01-2010, 19:47
maminowiec, tak, dam isset()
Na POST sie nie da poniewaz POST'em leci duzo roznych rzeczy, nie sposob to wyłapać.
Polaczek - 31-01-2010, 20:06
Przemo napisał/a: | ciekawe z jakimi jeszcze modami będzie się gryzło? |
check_files -> Sprawdzanie synchronizacji SQL -> Pierwszy i ostatni post w temacie
powodem jest duża nazwa w $_GET / $HTTP_GET_VARS
Przemo - 31-01-2010, 20:58
Polaczek, dzieki, poprawilem, ze juz z tym działa.
m@rcin... - 31-01-2010, 21:25
dubel?
http://www.przemo.org/php...b64f27f6#510462
[ Komentarz dodany przez: lui754: 31-01-2010, 21:53 ]
scalone
Anonymous - 31-01-2010, 22:19
Testowałem, to u siebie i zauważyłem, że wywala mi hacking attempt, gdy chcę sprawdzić wszystkie posty użytkownika, który w nicku ma polskie znaki. Da się coś z tym zrobić?
EDIT:
dodam jeszcze, że nick składa się z dwóch członów oddzielonych spacją
Polaczek - 31-01-2010, 22:23
Pico, tak to dlatego, że duże nazwy w $_GET / $HTTP_GET_VARS (zdaje się, że większe niż 18) są blokowane i wywala "Hacking attempt".
Spróbuj
Kod: | if ( strlen($val) > 18 && !preg_match('#^[a-z0-9_ /+]*={0,2}$#i', $val) && $key != 'redirect' && $key != 'highlight' ) |
zamienić na
Kod: | if ( strlen($val) > 25 && !preg_match('#^[a-z0-9_ /+]*={0,2}$#i', $val) && $key != 'redirect' && $key != 'highlight' ) |
jak nie zadziała to coraz większą liczbę aż dojdziesz do kresu możliwości
Anonymous - 31-01-2010, 22:25
działa, dzięki wielkie
kamil_jk_87 - 01-02-2010, 00:53
A byłaby możliwość dodania do panelu włączania i wyłączenia wysyłania wiadomości na e-mail ?
Polaczek - 01-02-2010, 01:34
Przecież jest. Konfiguracja >> Ogólne.
Polaczek - 01-02-2010, 01:38
Wielka rzecz usunąć linijkę kodu:
Kod: | mail($board_config['email_from'], 'Proba ataku na zmienna: '.$key, $txt); |
|
|
|