Szopat a tárhejszógátató, hogy nincs eval(), de még symlink() se, meraznaonveszéjes, esesházzál be minden rohadt symlink-ért, (ja, főleg, ha a rendszernek van szüksége rá és automatikusan kéne létrehozni, bazdmeg, persze), viszont a balfaszok nem védték le, hogy cron-ból csak PHP scripteket lehessen meghívni? UNIX Shell eval backend to the rescue!#!/bin/sh
BLOCK="eval/eval_backend.block"
RUNNING="eval/eval_backend.running"
cd /path/to/your/wwwroot
mkdir eval
chmod 777 eval
if [ -f "$BLOCK" ] || [ -f "$RUNNING" ];
then
exit 0
fi
touch "$RUNNING"
RUN="1"
while [ "$RUN" != "0" ];
do
sleep 1
if [ -f "$BLOCK" ];
then
RUN="0"
else
for FILE in eval/*.sh;
do
if [ -f "$FILE" ];
then
chmod +x "$FILE"
"$FILE"
rm "$FILE"
fi
done
fi
done
rm "$RUNNING"
exit 0 És a PHP kód hozzá:<?php
function c_eval($line)
{
srand(time());
$path = 'eval/tmp_' . rand(0, 32767) . '.sh';
@file_put_contents($path, "#!/bin/sh\n$line");
chmod($path, 0777);
}
?> (Igen, kétszer van chmod, mert egyszer PHP-ból, egyszer shell-ből, de jobb kétszer, mint egyszer sem, nemde? Hátha valamelyik nem hajtódik végre... Sicher ist sicher.) |