SAHİBİNİN AÇIK İZNİ ÜZERİNE GÜVENLİK ALGORİTMASI ÇÖZÜLMÜŞTÜR...

aponkral adlı üyeden alıntı: mesajı görüntüle
@anka; Güvenlik testi için bir talebimiz yok. İsterseniz kendiniz güvenlik testlerini yapabilirsiniz. Sonuçlarını burada paylaşabilirsiniz.


PHPkoru (v1.0.8) Decode Algoritması

Aponkral PHPkoru / phpkoru.com basic encoder çıktısını çözme yöntemi

1. Ne şifreliyor?

Dosya iki kısımdan oluşuyor:
  • Loader: üstteki eval + base64 zinciri — fonksiyon isimlerini ROT13/base64 ile gizliyor
  • Payload: PHPkoru_Code bloğu — asıl PHP kaynağı AES-256-GCM ile şifreli
2. Genel çözüm fonksiyonu

coz(dosya):
  cipher_b64 = PHPkoru_Code blogu icerigi
  ciphertext = base64_decode(cipher_b64)

  line = "4"   // eval string icindeki __LINE__

  key = base64_decode(str_rot13(KEY_CONST)) + line     // 32 byte
  iv  = line + base64_decode(str_rot13(IV_CONST))      // 12 byte
  tag = base64_decode(str_rot13(TAG_CONST))            // 16 byte

  plain  = openssl_decrypt(ciphertext, "aes-256-gcm", key, RAW, iv, tag)
  source = str_rot13( base64_decode( str_rot13(plain) ) )

  return source
Kisaca:
Alıntı
AES-256-GCM decrypt -> ROT13 -> Base64 decode -> ROT13 -> orijinal PHP
3. Sabitler (v1.0.8)

KEY_CONST = 3kp0r+oa0SdxCXwrQlMwD5SkB8sSh+VwZRZ00jFxhj==
IV_CONST  = OTlL0kt55OB+7fx=
TAG_CONST = TA3o1LwSC5B2Qy9qRD5nSt==
CIPHER    = aes-256-gcm
4. Hazir PHP decoder

<?php
$src = file_get_contents('encoded.php');

// Regex: /\[PHPkoru_Code\](.*?)\[\/PHPkoru_Code\]/s
preg_match('/\x5BPHPkoru_Code\x5D(.*?)\x5B\/PHPkoru_Code\x5D/s', $src, $m);

$line = '4';
$key  = base64_decode(str_rot13('3kp0r+oa0SdxCXwrQlMwD5SkB8sSh+VwZRZ00jFxhj==')) . $line;
$iv   = $line . base64_decode(str_rot13('OTlL0kt55OB+7fx='));
$tag  = base64_decode(str_rot13('TA3o1LwSC5B2Qy9qRD5nSt=='));

$plain = openssl_decrypt(
    base64_decode(trim($m[1])),
    'aes-256-gcm',
    $key,
    OPENSSL_RAW_DATA,
    $iv,
    $tag
);

if ($plain === false) {
    exit("Decrypt failed - __LINE__ veya surum uyusmuyor.");
}

echo str_rot13(base64_decode(str_rot13($plain)));
5. Loader'da isim maskeleme
  • onfr64_qrpbqr -> ROT13 -> base64_decode
  • eha_pbqr -> ROT13 -> run_code
  • fge_ebg13 -> ROT13 -> str_rot13
Icerideki run_code fonksiyonu ayni son adimi yapiyor:

eval('?>' . str_rot13(base64_decode(str_rot13($code))));
Biz eval etmeden ayni zinciri uyguluyoruz.

Ozet:
Alıntı
PHPkoru_Code blogunu AES-256-GCM ile ac, sonra cift ROT13 arasina sikistirilmis base64'u coz -> kaynak kod.