Visti i due precedenti post mi sono messo a dare un'occhiata alla possibilita' di offuscare il codice Php. Pur sapendo che esisteva la possibilita' non ho mai rilasciato per lavoro sorgenti offuscati ma e' una funzione che potrebbe essere utile per non salvare in chiaro i dati di login di pagine di autenticazione
Per esempio si puo' offuscare il solo file delle variabili per l'autenticazione
In chiaro ed in modo molto semplice si potrebbe scrivere
test.php
---------------------------------------------
<?
include("dati.php");
print $user;
print "<br>";
print $password;
?>
---------------------------------------------
dati.php
---------------------------------------------
<?
$user = "Luca";
$password = "password";
?>
---------------------------------------------
usando il servizio di http://www.phpencode.org/#main si puo' offuscare il file dati.php in modo da nascondere le credenziali.
il nuovo file (dati2.php) risulta essere cambiato cosi'
(attenzione per funzionare deve essere copiato ed incollato pari pari dal sito)
---------------------------------------------
<?php /*** PHP Encode v1.0 by zeura.com ***/ $XnNhAWEnhoiqwciqpoHH=file(__FILE__);eval(base64_decode("aWYoIWZ1bmN0aW9uX2V4aXN0cygiWWl1bklVWTc2YkJodWhOWUlPOCIpKXtmdW5jdGlvbiBZaXVuSVVZNzZiQmh1aE5ZSU84KCRnLCRiPTApeyRhPWltcGxvZGUoIlxuIiwkZyk7JGQ9YXJyYXkoNjU1LDIzNiw0MCk7aWYoJGI9PTApICRmPXN1YnN0cigkYSwkZFswXSwkZFsxXSk7ZWxzZWlmKCRiPT0xKSAkZj1zdWJzdHIoJGEsJGRbMF0rJGRbMV0sJGRbMl0pO2Vsc2UgJGY9dHJpbShzdWJzdHIoJGEsJGRbMF0rJGRbMV0rJGRbMl0pKTtyZXR1cm4oJGYpO319"));eval(base64_decode(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH)));eval(ZsldkfhGYU87iyihdfsow(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,2),YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,1)));__halt_compiler();aWYoIWZ1bmN0aW9uX2V4aXN0cygiWnNsZGtmaEdZVTg3aXlpaGRmc293Iikpe2Z1bmN0aW9uIFpzbGRrZmhHWVU4N2l5aWhkZnNvdygkYSwkaCl7aWYoJGg9PXNoYTEoJGEpKXtyZXR1cm4oZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJGEpKSk7fWVsc2V7ZWNobygiRXJyb3I6IEZpbGUgTW9kaWZpZWQiKTt9fX0=908117b002871dc8f72a4e70abf1f93dff6ecad2UyktTi1SsFVQ8ilNTlSy5uVSKUgsLi7PL0oBCcLYStYA
---------------------------------------------
modificando il file di prova per includere il file offuscato
test2.php
---------------------------------------------
<?
include("dati2.php");
print $user;
print "<br>";
print $password;
?>
---------------------------------------------
si ha il risultato atteso ovvero
---------------------------------------------
Luca
password
---------------------------------------------
scrivendo in modo maggiormente leggibile il codice dati2.php si capisce perche' non puo' essere modificato e si osserva maggiormente il comportamento dell'offuscatore che usa sostanzialmente usa sequenza di eval e base64_decode per offuscare le variabili. Interessante anche la direttiva _halt_compiler ed il codice appeso dietro la parte che il compilatore non interpretera'
---------------------------------------------
<?php
/*** PHP Encode v1.0 by zeura.com ***/
$XnNhAWEnhoiqwciqpoHH=file(__FILE__);
eval(base64_decode("aWYoIWZ1bmN0aW9uX2V4aXN0cygiWWl1bklVWTc2YkJodWhOWUlPOCIpKXtmdW5jdGlvbiBZaXVuSVVZNzZiQmh1aE5ZSU84KCRnLCRiPTApeyRhPWltcGxvZGUoIlxuIiwkZyk7JGQ9YXJyYXkoNjU1LDIzNiw0MCk7aWYoJGI9PTApICRmPXN1YnN0cigkYSwkZFswXSwkZFsxXSk7ZWxzZWlmKCRiPT0xKSAkZj1zdWJzdHIoJGEsJGRbMF0rJGRbMV0sJGRbMl0pO2Vsc2UgJGY9dHJpbShzdWJzdHIoJGEsJGRbMF0rJGRbMV0rJGRbMl0pKTtyZXR1cm4oJGYpO319"));
eval(base64_decode(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH)));
eval(ZsldkfhGYU87iyihdfsow(YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,2),YiunIUY76bBhuhNYIO8($XnNhAWEnhoiqwciqpoHH,1)));
__halt_compiler();
aWYoIWZ1bmN0aW9uX2V4aXN0cygiWnNsZGtmaEdZVTg3aXlpaGRmc293Iikpe2Z1bmN0aW9uIFpzbGRrZmhHWVU4N2l5aWhkZnNvdygkYSwkaCl7aWYoJGg9PXNoYTEoJGEpKXtyZXR1cm4oZ3ppbmZsYXRlKGJhc2U2NF9kZWNvZGUoJGEpKSk7fWVsc2V7ZWNobygiRXJyb3I6IEZpbGUgTW9kaWZpZWQiKTt9fX0=908117b002871dc8f72a4e70abf1f93dff6ecad2UyktTi1SsFVQ8ilNTlSy5uVSKUgsLi7PL0oBCcLYStYA
Iscriviti a:
Commenti sul post (Atom)
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...
Nessun commento:
Posta un commento