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:  123456Další
Aktuální stránka:1 z 6
Možný hack?
Zaslán uživatelem/kou: Hyena (IP adresa zaznamenána)
Datum: 2007-11-28, 22:21

Problém spriateleného webu: V admin sekcii sa medzi autormi stále objavuje neznámy admin, ktorého tam správca nepridával. Vystupuje pod menom haxah. Keď ho vymaže, objaví sa znova. Menil heslo do admin sekcie, ale nepomohlo to. Je to možný hack? A ako mu zatnout tipec?

UPDATE: Našiel som ďalšie weby, kam sa zaregistroval ako admin. Všetky s phpRS. Vážení, máme tu dieru!



Celkem upraveno 2×. Poslední úprava Hyena v 28.11.2007 22:36.

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-28, 23:51

Daj link na nejaky web, prip mi posli prihlasovacie udaje nech sa pozriem. ma niekto komu sa to stalo logy servera?

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 01:01

Pravdepodobne ide o SQL injection cez nejaký plugin. Záznam v db nevyzerá byť vložený štandardnou cestou cez admin. Ak hacker po sebe nezametal v zaznamoch o prihlaseni tak zaznam pravdepodobne vznikol podstrcenou URL alebo odoslanym POSTom. Zatial nemam k dispozicii logy no doporucujem zmenit prefix databazovym tabulkam na nejaky zlozitejsi, viacznakovy.

Re: Možný hack?
Zaslán uživatelem/kou: Hyena (IP adresa zaznamenána)
Datum: 2007-11-29, 05:42

Pokiaľ dovidím, tak z adminov príslušných stránok si to všimol iba jeden. Na ich servery nemám prístup.

[http://www.google.sk/search?hl=sk&q=haxah+site%3Acz&btnG=H%C4%BEada%C5%A5+v+Google&meta=]
[http://www.google.sk/search?num=100&hl=sk&newwindow=1&q=haxah+site%3Ask&btnG=H%C4%BEada%C5%A5&meta=]

U všetkých, ktorých to nájde, sa Haxah objavuje medzi autormi.

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 09:45

A zdá sa mi že diera je v plugine autori

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 09:58

opravený plugin :


<?
######################################################################
# phpRS autori 2.0.0-A (PJ)
######################################################################
// Copyright (c) 2001-2003 by Jiri Lukas ([email]jirilukas@supersvet.cz[/email])
// [http://www.supersvet.cz/phprs/]
// Copyright (c) 2003 by Jaroslav Mallat ([email]mallat@seznam.cz[/email])
// [http://hps.euweb.cz/]
// Edit by  MSteve - ([email]msteve@zoznam.sk[/email])
// [http://www.webinfo.sk/]
// This program is free software. - Toto je bezplatny a svobodny software.
/*
// ochranu na SQL injection doplnil: Patrik JAN (pa3k) www.kvalitne.sk 
*/
define('IN_CODE',true); // inic. ochranne konstanty

include("config.php");
include("specfce.php");
include("myweb.php");
include("sl.php");
include("trlayout.php");
include($adrlayoutu);

$jazykautori="lang/user/".$vybranyjazyk."/user_sl_autori_".$vybranyjazyk.".php";
include_once($jazykautori);


######################################################################
// Nadpis - stranka vsech autoru
$textAutori = "".AU_ALL."";
// Nadpis - detail autora
$textInfoOautorovi = "".AU_INFO."";
// kolik clanku na stranku
$kolikClanku = "50";
######################################################################

// aktivace spojeni
if (!isset($GLOBALS["dbspojeni"])): $GLOBALS["dbspojeni"]=dbcon(); endif;

// tvorba stranky
$vzhledwebu->Generuj();
ObrTabulka();  // Vlozeni layout prvku


if (!$autor) {
	zobrazAutory($textAutori);
}
else {
	echo "<p align=\"center\" class=\"z\"><b>".$textInfoOautorovi."</b></p>\n";
	echo "<p align=\"center\" class=\"z\"><a href=\"autori.php\">".AU_ALLZOBRAZIT."</a></p>\n";
	$dotaz=mysql_query("select * from ".$GLOBALS["rspredpona"]."user where idu='".mysql_real_escape_string($autor)."'",$GLOBALS["dbspojeni"]);
	$pocetAutor=mysql_NumRows($dotaz);
	if ($pocetAutor==0){
	  echo "&nbsp;<p><b>".AU_AUTORERROR."</b>\n";
	}
	else {
		$dotazTema = MySQL_Query("SELECT idt,nazev FROM ".$rspredpona."topic ");
		$pocetTema = MySql_Num_Rows($dotazTema);
		for ($pom=0;$pom<$pocetTema;$pom++) {
			$Tema[mysql_Result($dotazTema,$pom,"idt")]="".mysql_Result($dotazTema,$pom,"nazev");
		}
		$radek = MySql_Fetch_Array($dotaz);
		$vysl_mail="".AntiSpam(mysql_Result($dotaz,0,"email"))."";
        $dnesaktdatum=Date("Y-m-d H:i:s");
		$kolikataSQL = $kolikata-1;
		$dotazCl=mysql_query("select link from ".$GLOBALS["rspredpona"]."clanky where autor='".mysql_real_escape_string($autor)."' AND visible=1 AND datum<='".mysql_real_escape_string($dnesaktdatum)."'",$GLOBALS["dbspojeni"]);
		$pocetclanku=mysql_NumRows($dotazCl);
		$dotazClTed=mysql_query("select link,titulek,date_format(datum,'%d.%m.%Y') as den,tema from ".$GLOBALS["rspredpona"]."clanky where autor='".mysql_real_escape_string($autor)."' AND visible=1 AND datum<='".mysql_real_escape_string($dnesaktdatum)."' ORDER BY datum desc LIMIT ".(int)$kolikataSQL.",".(int)$kolikClanku."",$GLOBALS["dbspojeni"]);
		$pocetclankuTed=mysql_NumRows($dotazClTed);
		echo "<table border=\"0\" class=\"z\">\n";
		echo "<tr><td><b>".AU_AUTORNAME."</b></td><td>".$radek["jmeno"]."</td></tr>\n";
		echo "<tr><td><b>".AU_AUTORPOCCLANKOV."</b></td><td>".$pocetclanku."</td></tr>\n";
		echo "<tr><td><b>".AU_AUTOREMAIL."</b></td><td><A HREF=mailto:".$vysl_mail.">".$radek["email"]."</A></td></tr>\n";
		echo "<tr><td><b>".AU_AUTORHOMEPAGE."</b></td><td><A HREF=".$radek["url"]." target=_blank>".$radek["url"]."</td></tr>\n";
		echo "<tr><td><b>".AU_ID_ICQ.":</b></td><td><A HREF=http://www.icq.com/".$radek["im_ident"]." target=_blank>".$radek["im_ident"]."</td></tr>\n";
		echo "</table>\n";

		if ($pocetclanku>0){
			echo "<p align=\"center\" class=\"z\"><b>".AU_AUTOCLANKY."</b></p>\n";
			
			echo "".AU_AUTOZOBRAZ." ".$pocetclankuTed." z ".$pocetclanku."&nbsp; - ";
			$c = 0;
			if ($pocetclanku > $kolikClanku) {
				for ($a=1;$a<=$pocetclanku;$a=$a+$kolikClanku) {
					$b=$a+$kolikClanku-1;
					if ($a == $kolikata) {
						echo "|".$a."-".$b."| ";
					}
					elseif ($a > $kolikata) {
						$kolikataHref = $a;
						echo "<a href=\"autori.php?autor=".$autor."&kolikata=".$kolikataHref."\">|".$a."-".$b."|</a> ";
					}
					else {
						$kolikataHref = $c+1;
						echo "<a href=\"autori.php?autor=".$autor."&kolikata=".$kolikataHref."\">|".$a."-".$b."|</a> ";
					}
				$c = $c + $kolikClanku;
				}
			}
			
			
			
			echo "<table border=\"0\" class=\"z\">\n";
			echo "<tr><td align=\"left\"><b>".AU_AUTONAZOV."</b></td><td align=\"center\"><b>".AU_AUTORDATUM."</b></td><td align=\"left\"><b>".AU_AUTORTEMA."</b></td></tr>\n";
			while ($radekCl = MySql_Fetch_Array($dotazClTed)) {
				echo "<tr><td align=\"left\"><a href=\"view.php?cisloclanku=".$radekCl["link"]."\">".$radekCl["titulek"]."</a></td><td align=\"center\">".$radekCl["den"]."</td><td align=\"left\"><a href=\"search.php?rsvelikost=uvod&rstext=all-phpRS-all&rstema=".$radekCl["tema"]."\">".$Tema[$radekCl["tema"]]."</a></td></tr>\n";
			}
			echo "</table>\n";
		}
	}
}


function zobrazAutory($textAutori) {
	$dotaz=mysql_query("select idu,jmeno from ".$GLOBALS["rspredpona"]."user",$GLOBALS["dbspojeni"]);
	$pocetautoru=mysql_NumRows($dotaz);
	echo "<p align=\"center\" class=\"z\"><b>".$textAutori."</b></p>\n";
	echo "<table border=\"0\" class=\"z\"> <tr> <td><b>".AU_AUTORNAME1."</b></td><td><b>".AU_AUTORPOCCLANKOV1."</b></td></tr>\n";
	if ($pocetautoru==0){
	  echo "<tr><td colspan=\"2\" align=\"center\"><b>".AU_AUTORERRORZIADNY."</b></td></tr>\n";
	}
	else {
	  $dnesaktdatum=Date("Y-m-d H:i:s");
	  for ($pom=0;$pom<$pocetautoru;$pom++){
		$dotazCl=mysql_query("select idc from ".$GLOBALS["rspredpona"]."clanky where autor='".mysql_Result($dotaz,$pom,"idu")."' AND visible=1 AND datum<='".mysql_real_escape_string($dnesaktdatum)."'",$GLOBALS["dbspojeni"]);
		$pocetclanku=mysql_NumRows($dotazCl);
	    echo "<tr><td><a href=\"autori.php?autor=".mysql_Result($dotaz,$pom,"idu")."&kolikata=1\">".mysql_Result($dotaz,$pom,"jmeno")."</a></td>\n";
	    echo "<td align=\"right\"> ".$pocetclanku." </td></tr>\n";
	  }
	}
	echo "</table>\n";
}
// dokonceni tvorby stranky
KonecObrTabulka();  // Vlozeni layout prvku
$vzhledwebu->Generuj();
?>




Celkem upraveno 1×. Poslední úprava pa3k v 29.11.2007 10:34.

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 09:58

Ak existuje niekde novšia verzia pluginu ako je zverejnená na CW dajte mi vedieť

Re: Možný hack?
Zaslán uživatelem/kou: Hyena (IP adresa zaznamenána)
Datum: 2007-11-29, 10:18

Veľká vďaka, skúsime, uvidíme.

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 10:20

Hmmm takže našiel som aj weby kde nie je tento plugin a majú rovnaký problém.

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 10:31

Nájde sa niekto kto to má hacknuté a má k dispozícii logy servera?

Re: Možný hack?
Zaslán uživatelem/kou: Tom_AG (IP adresa zaznamenána)
Datum: 2007-11-29, 11:20

Já používám plugin Auroři, upravený od Smika (http://www.smiko.host.sk/phprs/download.php?soubor=8).

Tom_AG
www.Stříbro.net

Re: Možný hack?
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2007-11-29, 12:36

Plugin autoři nepoužívám a byl jsem také mezi postiženými (caslavsko.net)

Hepbegclub | Čáslavsko | MN Čáslav

Re: Možný hack?
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2007-11-29, 13:14

ja bych si do config.php prosel pole $_REQUEST a pokud v nem nekde najdu "haxah", tak bych si poslal email s co nejvice udaji (IP adresa pozadavku, zadana url, to vlastni pole request apod.) a tim bych mel najit zpusob, jakym se tam dostava, nebot pokud se neprovede config.php, tak neni spojeni s db a tudiz se nemuze nikomu podarit vlozit nejaky zaznam do db

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 14:01

No nepáči sa mi ani ten nový plugin od Smika, nevidím tam nikde ošetrený vstup premennej $_GET['cislo'] ktorá sa veselo používa pri skladaní SQL dotazov. Keďže smiko použil GET miesto GLOBALS je navyše ošetrenie závislé na nastavení magic_quotes_gpc, cize hack funguje len na serveroch kde je magic_quotes_gpc vypnuté. Každopádne tieto problámy zdá sa s pluginom nesúvisia.

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 14:12

to MirekS:
ten request by chcelo niekde kompletne logovať a čakať na hackera kým sa chytí... to može byt ale na dlho, skor by som sa skúsil zamerať na logy servera, z nich by sa mohlo dať vyčítať kadial to prešlo ak útocnik išiel cez GET a ak bol neopatrný mohlo by sa podariť aj vystopovať jeho IP. Takže kto máte logy a hacknutý web ohláste sa.

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 14:33

oprava pluginu od smika:

function autori() {
		$this->strana = $_GET['strana'];
		if (!is_numeric($this->strana) || empty($this->strana) || $this->strana < 0) {
			$this->strana = 1;
		}
		$this->pocetclankov = $GLOBALS['pocetclankov'];
		$this->kto = $_GET['kto'];
		$this->cislo = $_GET['cislo'];

		switch ($this->kto) {
			case "aut":
				$GLOBALS['vzhledwebu']->UlozPro("title","".$GLOBALS['wwwname']." - ".AU_AUTORI."");
				break;
			case "cit":
				$GLOBALS['vzhledwebu']->UlozPro("title","".$GLOBALS['wwwname']." - ".AU_CITATELIA."");
				break;
		}
	}

upravit na:

function autori() {
		$this->strana = $_GET['strana'];
		if (!is_numeric($this->strana) || empty($this->strana) || $this->strana < 0) {
			$this->strana = 1;
		}
		$this->pocetclankov = $GLOBALS['pocetclankov'];
		$this->kto = $_GET['kto'];
		$this->cislo = (int)$_GET['cislo'];

		switch ($this->kto) {
			case "aut":
				$GLOBALS['vzhledwebu']->UlozPro("title","".$GLOBALS['wwwname']." - ".AU_AUTORI."");
				break;
			case "cit":
				$GLOBALS['vzhledwebu']->UlozPro("title","".$GLOBALS['wwwname']." - ".AU_CITATELIA."");
				break;
		}
	}

to by malo stacit

Re: Možný hack?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2007-11-29, 20:30

logovanie - na koniec hneď pred ?> v config.php doplniť kód:
$log['server']  = $_SERVER;
$log['post']    = $_POST;
$log['get']     = $_GET;
$result = @phprs_sql_query('INSERT INTO '.$rspredpona.'logs (ip, event_time, log) values ("", NOW(), "'.phprs_sql_real_escape_string(serialize($log)).'");',$dbspojeni);
if (false === $result) {
    @phprs_sql_query('CREATE TABLE '.$rspredpona.'logs (ip VARCHAR( 20 ) NOT NULL , event_time DATETIME NOT NULL, log TEXT NOT NULL) ENGINE = MYISAM;',$dbspojeni);
}
?>

pozor, je to dost objemovo náročne na databázu, hlavne pri veľkej návštevnosti

Re: Možný hack?
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2007-11-29, 20:48

to: pa3k
no ja vychazel z toho, ze po vymazani se tam objevi znova (jak pise Hyena hned v prvnim prispevku), takze asi to cekani by nemuselo byt az zas tak dlouhe, navic studovat logy muze byt casove mnohem narocnejsi a pokud se tam nedostava pres GET, tak se z tech logu na to tezko prijde
logovat to nekam - predpokladam do databaze - mi neprijde vhodne, hacker muze mit pristup k te db a pak by si toho mohl vsimnout a mazat to po sobe, proto mi prijde lepsi to hned odmejlovat pryc

Re: Možný hack?
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2007-11-29, 21:04

Poskytovatel mi poslal tenhle řádek (nevím jestli v tom je nějaká užitečná informace - nezdá se mi), log mi kdyžtak dá taky, ale má to 1,2G, ale budu teď chvíle bez netu, takže to nebude hned.:

caslavsko.net.access:89.103.136.64 - - [24/Sep/2007:18:43:51 +0200]
"GET /search.php HTTP/1.1" 200 35471
"http://www.google.com/search?q=haxah&hl=cs&lr=&client=opera&rls=cs&start=20&sa=N" "Opera/9.23 (Windows NT 5.1; U; MEGAUPLOAD 1.0.8.3; cs)"

mám tam z dřívějška banIP od MSteva a ta adresa je tam zaznamenaná
http://www.ripe.net/fcgi-bin/whois?searchtext=89.103.136.64

Hepbegclub | Čáslavsko | MN Čáslav



Celkem upraveno 2×. Poslední úprava Kryšpín v 29.11.2007 21:21.

Re: Možný hack?
Zaslán uživatelem/kou: MirekS (IP adresa zaznamenána)
Datum: 2007-11-29, 21:27

tohle je "nevinny" radek, nebot nekdo pomoci google hledal "haxah" - zde je jen otazka proc uz 24.9. - a z teto stranky Googlu presel na ten tvuj web na stranku search.php a klient se identifikoval jako "Opera/9.23 (Windows NT 5.1; U; MEGAUPLOAD 1.0.8.3; cs)"

Jít na stránku:  123456Další
Aktuální stránka:1 z 6


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.