phpRS 2.8.x : phpRS Fórum
Toto fórum je určené výhradně k diskuzi o verzích phpRS v2.8.x.
phpRS - redakční a informační systém
Jít na stránku:  12Další
Aktuální stránka:1 z 2
SPAM přes informační mail
Zaslán uživatelem/kou: JiHo (IP adresa zaznamenána)
Datum: 2007-03-28, 19:49

Používám phpRS v.281 a přes skript rservice.php (v sobě má verzi 1.3.8!) začaly být z mých stránek rozesílány SPAMy. Prosím o radu co s tím, podle mne by měla být vydána bezpečnostní záplata, protože se tento problém nejspíš týká více verzí phpRS!!!

Kdyby mi nezačaly chodit zprávy o nedoručitelných mailech, nejspíš by mne na problém upozornil až provozovatel hostingu!

=== JiHo === WEB: Jitřní země ===

Re: SPAM přes informační mail
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2007-03-29, 20:49

jasně, tohle se mi také stalo, a dozvěděl jsme se o tom až poté, co poskytovatel bloknul část stránek. Dalo mi dost práce ho přesvědčit, že jsme pro to udělal vše, co je v mých silách. U mě se konkrétně jednalo o jednu z verzí inzerce. Bohužel se mi nepodařilo zjistit, jak to celé fungovalo, nemám k dispozici žádný mail a jednom jeden řádek z logu (ukazoval jsem ho i JanVarovi ale nedokázel z něj zjistit podrobnosti - tím méně já). V podstatě vůbec netuším, jak to celé fungovalo.

Nakonec jsme to celé předělal, víceméně na blind udělal několik úprav, včetně logování odesílaných emailů a posílání jejich kopií. Od té doby se (zatím) nic podobného nestalo - ale může to klidně začít právě teď. Taky by mě zajímalo, jak tohle celé funguje. Dokud to nepochopím, nemůžu to nijak vyřešit.

Hepbegclub | Čáslavsko | MN Čáslav



Celkem upraveno 1×. Poslední úprava Kryšpín v 29.03.2007 20:50.

Re: SPAM přes informační mail
Zaslán uživatelem/kou: JiHo (IP adresa zaznamenána)
Datum: 2007-03-29, 22:36

Posílal jsem vzorek Pa3kovi a podle něj je to dílo klasického komentářového SPAMbota. Posílal jsem zprávu o chybě na SuperSvět, momentálně nemám sílu zabudovat tam Captcha sám. Podle mne to je skutečně bezpečnostní díra, navíc těžko zjistitelná, pokud nedojdou ty chybové hlášky díky neexistující adrese. Přesto to do hlášených chyb nepřibylo. Měl by na to být vydaný patch, protože to klidně může potrefit třeba i ten SuperSvět.



Celkem upraveno 1×. Poslední úprava JiHo v 29.03.2007 22:38.

Re: SPAM přes informační mail
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2007-03-30, 08:02

letmym pohledem do toho rservice.php si myslim (nezkousel jsem to zatim), ze neni problem odeslat jakykoliv email komukoliv - nejspis je to zpusobeno tim, ze adresat je nacten z promenne $GLOBALS["prprijemce"], odesilatel z $GLOBALS["prodesilatel"] a obssah email z $GLOBALS["przprava"], takze pokud spammer zavola rovnou rservice.php a podstrci mu spravne prommene (bud jako cookies, nebo metodou GET ci POST) tak se mu odesle email jaky bude chtit a komu bude chtit

jinak jsem se taky setkal s tim, ze do emailu odesilatele vkladaji krome emailu odesilatele dalsi informace v podobe hlavicky emailu, kdyz zkousi, jestli nahodou ten email neni bez osetreni a pouze se nevklada jako jedna z hlavicek emailu (odesilatel) a tim se tam automaticky pripoji i ty dalsi hlavicky (napr jiny predmet, slepa kopie apod)

Re: SPAM přes informační mail
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2007-04-02, 17:04

tak jsem si tu možnost odeslání ověřil

staci tento odkaz:
http:// domena.cz/phprs/ rservice.php?akce=sendinfo&cisloclanku=1 &prprijemce=komu@ domena.cz &prodesilatel=odesilatel@ domena.cz &prtitulek=test_zranitelnosti&przprava=informace_o_moznosti_rozesilani_spamu

a prijde takovyto email:

Předmět: Informace o zajímavém článku na serveru phpRS projekt
Odesílatel: odesilatel@ domena.cz
Komu: komu@ domena.cz
Tělo:
Zdá se, že při čtění následujícího článku si na Vás někdo vzpomněl a zaslal Vám tento informační e-mail!

Článek: test_zranitelnosti
http:// domena.cz/phprs/view.php?cisloclanku=1

-- Zpráva od odesílatele --
informace_o_moznosti_rozesilani_spamu



Celkem upraveno 7×. Poslední úprava MirekS v 02.04.2007 17:10.

Re: SPAM přes informační mail
Zaslán uživatelem/kou: gord007 (IP adresa zaznamenána)
Datum: 2007-04-02, 17:17

hups!!! je to tak!!!

[http://www.rozsec.cz] - [http://www.czechppm.cz]



Celkem upraveno 1×. Poslední úprava gord007 v 02.04.2007 17:17.

Re: SPAM přes informační mail
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-04-02, 17:33

Bavil som sa o tom s Jirkom niekedy začiatkom roka. Ono to nie je diera ale vlastnosť - aj keď IMHO zbytočná a viac nepríjemná ako osožná. Ten spambot to predpokladám posiela POST-om. Podľa obsahu mailu to vyzerá fakt na komentárového spambota. Osobne sa mi vôbec nepáči, nechať niekoho cudzieho anonymne odosielať mail na akúkoľvek adresu z môjho webu. Síce podobné funkcie používa viacero webov aj niektoré e-shopy, ale prínos je minimálny a za to riziko to IMHO nestojí. Takže riešenie je to vypnúť alebo nejako obmedziť. Osobne som za úplné odstránenie tejto funkcie.

Re: SPAM přes informační mail
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2007-04-02, 17:44

no to ze je to "vlastnost" je jasny, ale tato vlastnost by nejspis mela byt dostupna jen pro prihlasene, pokud se tedy nezrusi uplne

data je jedno jestli se poslou POSTem nebo GETem, diky:
// prirazeni GET a POST vstupu do pole $GLOBALS; je pro mod register_globals = Off
include_once("admin/aext_prom.php");
v config.php

Re: SPAM přes informační mail
Zaslán uživatelem/kou: JiHo (IP adresa zaznamenána)
Datum: 2007-04-02, 17:49

Nejste někdo natolik svižný v PHP (a phpRS), abyste zvládl zabudovat Captcha do rservice.php alespoň pro v.2.8.1, když už je součástí?

Podle mne je jen otázkou času, kdy někdo začne spamovat třeba přes SuperSvět, respektive přes jakýkoliv web, postavený na phpRS. Jednak bude mít phpRS pošramocenou reputaci, jednak to může být opravdu blesková cesta, jak se dostat na spamový blacklist. Na SuperSvětě tahle možnost vypnutá není (alespoň minulý týden nebyla)!

=== JiHo === WEB: Jitřní země ===

Re: SPAM přes informační mail
Zaslán uživatelem/kou: gord007 (IP adresa zaznamenána)
Datum: 2007-04-02, 18:18

No nějak moc svižný v php nejsem, ale tady to zvládnu...
Upravené fce:
function NovyMail()
{
// bezpecnostni korekce
$GLOBALS["cisloclanku"]=phprs_sql_escape_string($GLOBALS["cisloclanku"]);

// zjisteni titulku
$dotazclanek=phprs_sql_query("select titulek from ".$GLOBALS["rspredpona"]."clanky where link='".$GLOBALS["cisloclanku"]."'",$GLOBALS["dbspojeni"]);
if ($dotazclanek!=0&&phprs_sql_num_rows($dotazclanek)>0):
  $pole_clanek=phprs_sql_fetch_assoc($dotazclanek);
else:
  $pole_clanek['titulek']='';
endif;

// test na existenci reg. ctenare
if ($GLOBALS["prmyctenar"]->ctenarstav==1):
  $prodesilatel=$GLOBALS["prmyctenar"]->Ukaz("email");
  $prctenar_test_robot=''; // bez testu
else:
  $akt_pole_test_robot=NactiKontrolniRetezec();
   $prodesilatel='@';
$prctenar_test_robot='<p style="text-align:center" class="kom-z">'.RS_KO_ZPR_KONTROLA.'<br /><br />'.$akt_pole_test_robot['captcha_otazka'].' <input type="text" name="captchaodpoved" size="12" class="textpole" /><input type="hidden" name="captchaid" value="'.$akt_pole_test_robot['captcha_id'].'" /></p>';
  endif;

?>
<p align="center" class="nadpis"><? echo RS_CS_NADPIS; ?></p>
<p align="center" class="z"><strong><? echo RS_CS_CLANEK; ?>: <? echo $pole_clanek['titulek']; ?></strong></p>
<form action="rservice.php" method="post">
<input type="hidden" name="akce" value="sendinfo" />
<input type="hidden" name="cisloclanku" value="<? echo $GLOBALS["cisloclanku"]; ?>" />
<input type="hidden" name="prtitulek" value="<? echo $pole_clanek['titulek']; ?>" />
<table border="0" cellspacing="0" cellpadding="0" align="center">
<tr class="z"><td><? echo RS_CS_PRIJEMCE; ?>:</td><td><input type="text" size="40" name="prprijemce" value="@" class="textpole" /></td></tr>
<tr class="z"><td><? echo RS_CS_ODESILATEL; ?>:</td><td><input type="text" size="40" name="prodesilatel" value="@" class="textpole" /></td></tr>
<tr class="z"><td colspan="2" align="center"><br /><? echo RS_CS_TEXT_ZPR; ?><br /><textarea name="przprava" cols="50" rows="4" wrap="yes" class="textbox"></textarea></td></tr>
</table>
<? echo $prctenar_test_robot ?>
<p align="center"><input type="submit" value=" <? echo RS_CS_ODESLAT; ?> " class="tl" /></p>
<p align="center" class="z"><? echo RS_CS_INFO_TEXT; ?></p>
</form>
<p></p>
<?php
}

function OdeslaniMailu()
{
$chyba=0; // inic. testu na chyby

// test na chyby
if (CtenariTestNaAdresu($GLOBALS["prprijemce"])==0):
  $chyba=1;
endif;
if (CtenariTestNaAdresu($GLOBALS["prodesilatel"])==0):
  $chyba=1;
endif;

// text zobrazeny na strance
echo "<p align=\"center\" class=\"nadpis\">".RS_CS_NADPIS."</p>\n";

if ($chyba==1):
  // chyba
  echo RS_CS_ERR2;
else:
// test na existenci reg. ctenare
  if ($GLOBALS['prmyctenar']->ctenarstav==1):
    $nast_registrovany=1;
    $nast_reg_prezdivka=$GLOBALS['prmyctenar']->Ukaz('username');
    $nast_reg_id=$GLOBALS['prmyctenar']->Ukaz('id');
        // vyhodnoceni captcha testu - u reg. ctenare je automaticky "true"
    $vysl_captcha_test=1;
  else:
       // vyhodnoceni captcha testu - nutno provest test
    if (isset($GLOBALS['captchaodpoved'])): $GLOBALS['captchaodpoved']=phprs_sql_escape_string($GLOBALS['captchaodpoved']); else: $GLOBALS['captchaodpoved']=''; endif;
    if (isset($GLOBALS['captchaid'])): $GLOBALS['captchaid']=phprs_sql_escape_string($GLOBALS['captchaid']); else: $GLOBALS['captchaid']=''; endif;
    // vyhodnoceni captcha testu - zalezi na nastaveni systemu
    if (NactiConfigProm('captcha_komentare',0)==0):
      $vysl_captcha_test=1; // captcha vypnuta
    else:
      $vysl_captcha_test=OverKontrolniRetezec($GLOBALS['captchaid'],$GLOBALS['captchaodpoved']); // captcha zapnuta - nutno provest vyhodnoceni
    endif;
  endif;
  // test na vysledek kontrolni otazky (captcha kontrola)
  if ($vysl_captcha_test==1):
  // sestaveni tela zpravy
  $obsah_zpravy=RS_CS_MAIL1.' '.$GLOBALS["prtitulek"]."\n";
  $obsah_zpravy.=$GLOBALS["baseadr"].''.$GLOBALS["cisloclanku"]."\n\n";
  $obsah_zpravy.=RS_CS_MAIL2."\n";
  $obsah_zpravy.=$GLOBALS["przprava"];
  // sestaveni predmetu zpravy
  $predmet_zpravy=RS_CS_MAIL_PREDMET.' '.$GLOBALS["wwwname"];

  include_once('admin/astdlib_mail.php'); // nacteni postovni tridy

  $odeslani_posty = new CPosta();
  $odeslani_posty->Nastav("predmet",$predmet_zpravy);
  $odeslani_posty->Nastav("obsah",$obsah_zpravy);
  $odeslani_posty->Nastav("adresat",$GLOBALS["prprijemce"]);
  $odeslani_posty->Nastav("odesilatel_mail",$GLOBALS["prodesilatel"]);
  $odeslani_posty->Nastav("odesilatel_txt",'');
  if ($odeslani_posty->Odesilac()==1):
    echo "<p align=\"center\" class=\"z\">".RS_CS_DOPIS_OK."</p>\n"; // vse OK
  else:
    echo "<p align=\"center\" class=\"z\">".RS_CS_ERR1."</p>\n"; // chyba
  endif;
   else:
    // chyba - neuspesny kontrolni test (captcha kontrola)
    echo "<p align=\"center\">".RS_KO_ERR6."</p>\n";
endif;
endif;
echo "<p align=\"center\" class=\"z\"><a href=\"".$GLOBALS["cisloclanku"]."\">".RS_CS_ZOBRAZ_CLA."</a></p>\n";
echo "<p></p>\n";
}

Nově přidané fce:
function NactiKontrolniRetezec()
{
$vysl['captcha_id']='';
$vysl['captcha_otazka']='';

// dotaz na vypis vsech dostupnych kontrolnich otazek
// tento zpusob ziskani kontrolni otazky nepocitani s prilis velkym mnoztvim otazek v databazi; v pripade vetsiho mnozstvi by se musel upravit dotazovaci mechanizmus
$dotaz="select * from ".$GLOBALS["rspredpona"]."captcha_test_otazky where zobrazit=1 order by idc";
$dotazpol=phprs_sql_query($dotaz,$GLOBALS["dbspojeni"]);
$pocetpol=phprs_sql_num_rows($dotazpol);

if ($pocetpol>0):
  $akt_vybrana_otazka=rand(0,($pocetpol-1));
  if (phprs_sql_data_seek($dotazpol,$akt_vybrana_otazka)):
    // nacteni kontrolni otazky
    $pole_data=phprs_sql_fetch_assoc($dotazpol);
    // zaplneni vysledkoveho pole
    $vysl['captcha_id']=$pole_data['identifikator'];
    $vysl['captcha_otazka']=$pole_data['otazka'];
  endif;
endif;

return $vysl;
}

function OverKontrolniRetezec($captcha_id = '', $captcha_odpoved = '')
{
// bezpecnostni korekce
$captcha_id=phprs_sql_escape_string($captcha_id);
$captcha_odpoved=phprs_sql_escape_string($captcha_odpoved);

// uprava odpovedi
$captcha_odpoved=strtolower(trim($captcha_odpoved));

// kontrolni dotaz
$dotaz="select idc from ".$GLOBALS["rspredpona"]."captcha_test_otazky where identifikator='".$captcha_id."' and odpoved='".$captcha_odpoved."' and zobrazit=1";
$dotazpol=phprs_sql_query($dotaz,$GLOBALS["dbspojeni"]);
if ($dotazpol!=0&&phprs_sql_num_rows($dotazpol)==1):
  return 1; // OK; kontrolni retezec plati
else:
  return 0; // chyba
endif;
}



[http://www.rozsec.cz] - [http://www.czechppm.cz]

Re: SPAM přes informační mail
Zaslán uživatelem/kou: JiHo (IP adresa zaznamenána)
Datum: 2007-04-02, 18:39

Tisíceré díky.

Já si fakt myslím, že by bylo dobré to dát na SuperSvět oficiálně ke stažení jako záplatu. Dokud si toho nějakou náhodou majitel stránek nevšimne (jako já díky těm nedoručitelným mailům), tak žije na sopce v blažené nevědomosti.

=== JiHo === WEB: Jitřní země ===

Re: SPAM přes informační mail
Zaslán uživatelem/kou: Fit (IP adresa zaznamenána)
Datum: 2007-04-02, 18:52

A pomohlo by, kdybych ten rservice.php úplně odstranil? Myslím jako, že bych ho vymazal přes ftp a v článkové šabloně pak odstranil tu ikonku na na odesílání e-mailu...To by asi šlo ne?

Re: SPAM přes informační mail
Zaslán uživatelem/kou: Jakez (IP adresa zaznamenána)
Datum: 2007-04-02, 18:57

Fit napsal/a:
-------------------------------------------------------
> A pomohlo by, kdybych ten rservice.php úplně
> odstranil? Myslím jako, že bych ho vymazal přes
> ftp a v článkové šabloně pak odstranil tu ikonku
> na na odesílání e-mailu...To by asi šlo ne?

To bych nedělal, přes rservice.php jde i verze článku pro tisk a tak bys o tuto možnost přišel.

Jakez | Cidlina.EU | Tady je Xichtovo

Re: SPAM přes informační mail
Zaslán uživatelem/kou: gord007 (IP adresa zaznamenána)
Datum: 2007-04-02, 18:58

Jo to bude fungovat na 1000% :-)

[http://www.rozsec.cz] - [http://www.czechppm.cz]

Re: SPAM přes informační mail
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2007-04-02, 19:00

jasně, to postačí. Případně někam na vhodné místo zadat příkazy jako je exit; die; nebo příslušnou funkci co osílá ten mail zakomentovat...

Hepbegclub | Čáslavsko | MN Čáslav



Celkem upraveno 1×. Poslední úprava Kryšpín v 02.04.2007 19:01.

Re: SPAM přes informační mail
Zaslán uživatelem/kou: Fit (IP adresa zaznamenána)
Datum: 2007-04-02, 19:07

Hm,
to je pravda. O ten tisk bych přijít nechtěl. Takže asi zkusím zakomentovat tu funkci, kterou doufám najdu :-). Mě tohle ještě nepostihlo, nebo o tom alespoň nevím, ale prevence je prevence. Jak tak na to tady koukám...

Re: SPAM přes informační mail
Zaslán uživatelem/kou: JiHo (IP adresa zaznamenána)
Datum: 2007-04-02, 20:20

Problém je, že když ti někdo začne sypat spam do fóra, nebo do komentářů, zjistíš to ihned. Tohle ale běžně nezjistíš, pokud spamer nepoužije nějaké neexistující mailové adresy a nezačnou ti chodit zprávy o nedoručitelných mailech. Taky mi to došlo teprve v okamžiku, kdy jsem si ten "vrácený" mail pořádně prohlédl...

=== JiHo === WEB: Jitřní země ===

Re: SPAM přes informační mail
Zaslán uživatelem/kou: JiHo (IP adresa zaznamenána)
Datum: 2007-04-02, 20:23

Tu úpravu co poslal Gord007 jsem už hodil na stránky, funguje to a doufám, že to bude stačit. :-)

=== JiHo === WEB: Jitřní země ===

Re: SPAM přes informační mail
Zaslán uživatelem/kou: Fit (IP adresa zaznamenána)
Datum: 2007-04-02, 22:27

Jenže já mám bohužel verzi 2.8.0., takže to použít nemůžu...

Re: SPAM přes informační mail
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2007-04-02, 22:54

Změny mezi verzí 280 a 281 budou minimální. Použij srovnávání souborů, abys zjistitl, čím se liší ty dva soubory (umí třeba pspad) a dáš to určitě do kupy. Krom toho každý soubor v phpRS má číslo verze, tak se nejdříve koukni, jestli ten rservice.php není náhodou stejný. (odtud se nemůžu podívat a z hlavy to nevím)

Hepbegclub | Čáslavsko | MN Čáslav

Jít na stránku:  12Další
Aktuální stránka:1 z 2


Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.