`

phpspy2010 绕过登陆漏洞解析

 
阅读更多

    phpspy2010可谓是webshell界很不错的一个工具,但是phpspy2010 和2011相继爆出了绕过认证漏洞,我简单分析下php2010的绕过漏洞,首先据说只有php2010的加密版才有这个漏洞,我大概看了下官方解释,估计也只有加密版才有这个问题,而且看上去应该是个失误。。。

      下面具体分析:附件是2010的源代码,由于是加密的eval执行base64解密,

把eval改成echo就可以输出源代码了。

代码核心部分如下

$admin = array();
// 是否需要密码验证, true 为需要验证, false 为直接进入.下面选项则无效
$admin['check'] = true;
// 如果需要密码验证,请修改登陆密码
$admin['pass']  = 'f4f068e71e0d87bf0ad51e6214ab84e9'; //angel
								
//如您对 cookie 作用范围有特殊要求, 或登录不正常, 请修改下面变量, 否则请保持默认
// cookie 前缀
$admin['cookiepre'] = '';
// cookie 作用域
$admin['cookiedomain'] = '';
// cookie 作用路径
$admin['cookiepath'] = '/';
// cookie 有效期
$admin['cookielife'] = 86400;

error_reporting(7);
@set_magic_quotes_runtime(0);
ob_start();
$mtime = explode(' ', microtime());
$starttime = $mtime[1] + $mtime[0];
define('SA_ROOT', str_replace('\\', '/', dirname(__FILE__)).'/');
define('IS_WIN', DIRECTORY_SEPARATOR == '\\');
define('IS_COM', class_exists('COM') ? 1 : 0 );
define('IS_GPC', get_magic_quotes_gpc());
$dis_func = get_cfg_var('disable_functions');
define('IS_PHPINFO', (!eregi("phpinfo",$dis_func)) ? 1 : 0 );
@set_time_limit(0);

foreach(array('_GET','_POST') as $_request) {
	foreach($$_request as $_key => $_value) {
		if ($_key{0} != '_') {
			if (IS_GPC) {
				$_value = s_array($_value);
			}
			$$_key = $_value;
		}
	}
}

//³ÌÐòËÑË÷¿ÉдÎļþµÄÀàÐÍ
!$writabledb && $writabledb = 'php,cgi,pl,asp,inc,js,html,htm,jsp';

$charsetdb = array('','armscii8','ascii','big5','binary','cp1250','cp1251','cp1256','cp1257','cp850','cp852','cp866','cp932','dec8','eucjpms','euckr','gb2312','gbk','geostd8','greek','hebrew','hp8','keybcs2','koi8r','koi8u','latin1','latin2','latin5','latin7','macce','macroman','sjis','swe7','tis620','ucs2','ujis','utf8');
if ($charset == 'utf8') {
	header("content-Type: text/html; charset=utf-8");
} elseif ($charset == 'big5') {
	header("content-Type: text/html; charset=big5");
} elseif ($charset == 'gbk') {
	header("content-Type: text/html; charset=gbk");
} elseif ($charset == 'latin1') {
	header("content-Type: text/html; charset=iso-8859-2");
} elseif ($charset == 'euckr') {
	header("content-Type: text/html; charset=euc-kr");
} elseif ($charset == 'eucjpms') {
	header("content-Type: text/html; charset=euc-jp");
}

$self = $_SERVER['PHP_SELF'] ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME'];
$timestamp = time();

/*===================== Éí·ÝÑéÖ¤ =====================*/
if ($action == "logout") {
	scookie('loginpass', '', -86400 * 365);
	p('<meta http-equiv="refresh" content="1;URL='.$self.'">');
	p('<a style="font:12px Verdana" href="'.$self.'">Success</a>');
	exit;
}

if($admin['check']) {
	if ($doing == 'login') {
		if ($admin['pass'] == md5($password)) {
			scookie('loginpass', md5($password));
			p('<meta http-equiv="refresh" content="1;URL='.$self.'">');
			p('<a style="font:12px Verdana" href="'.$self.'">Success</a>');
			exit;
		}
	}
	if ($_COOKIE['loginpass']) {
		if ($_COOKIE['loginpass'] != $admin['pass']) {
			loginpage();
		}
	} else {
		loginpage();
	}
}

 

 

这个代码以拥有两个部分,第一个部分就是不加密的部分,这里需要用户填写登录密码,问题就发生在这里,密码存到了

admin['pass']中,而在第二部分解密出来的php代码中,才接受了用户传递过来的参数,这样用户可以自己构造md5加密后的admin['pass'],覆盖掉第一部分定义好的,以及password,从而通过

 

	if ($admin['pass'] == md5($password)) {
			scookie('loginpass', md5($password));
			p('<meta http-equiv="refresh" content="1;URL='.$self.'">');
			p('<a style="font:12px Verdana" href="'.$self.'">Success</a>');
			exit;
		}

 如图就是修改后的传递参数

 注意admin['pass']是md5加密的。

 

 

 

2011据说也是类似的漏洞,但是我只找到了后来更新过的版本,这个版本中,定义pass的语句下移,放到了


 

foreach($_POST as $key => $value) {
	if (IS_GPC) {
		$value = s_array($value);
	}
	$$key = $value;
}

 

的后面,从而修正了这个bug。

  • 大小: 60.1 KB
分享到:
评论

相关推荐

    phpspy2013最新版

    PHPSPY 2013是一款专为PHP编程语言设计的远程控制工具,它主要用于Web应用程序的安全测试和漏洞探测。这个工具在2013年发布,并声明为最终版本,意味着开发者不再对其进行后续的更新和维护。尽管如此,对于理解和...

    phpspy2010

    php 最新webshell,2010版的 很不错的飘过了 哈哈

    phpspy2013个人修改版,加密过免杀

    phpspy2013个人修改版,加密过免杀 非官方发布,增加一些功能,Filemanage增加非FSO模式,增加文件打包 登陆页面伪造、代码压缩加密 登陆页面shell.php?doing=login,密码:admin

    PhpSpy各个版本都有

    PhpSpy是一个用PHP语言编写的在线管理程序,同时集成很多和海阳顶端网所类似的功能,也可以说是一个WEB方式的后门,结合现有的攻击手法,本着实用、简洁、小巧的原则,开发了这个程序。由于程序性质问题,公开提供...

    phpspy 2006 修改版

    phpspy 2006 修改版,一直没找到。 传上来分享了 有需要的拿走 ,自己看了下没有一句话,有发现的可以提醒我

    phpspy2013

    phpspy2013未加密版本 /*===================== 程序配置 =====================*/ //echo encode_pass('angel');exit; //angel = ec38fe2a8497e0a8d6d349b3533038cb // 如果需要密码验证,请修改登陆密码,留空为不...

    一款php后门 phpspy

    关于phpspy这款php后门可以查看! 很多人也许因为没有使用过,所以不知道作用,我详细的说明一下! http://blog.csdn.net/jinzhai/archive/2007/10/29/1853678.aspx

    [文件数据]PhpSpy 2006 修改版_phpspy_2006.rar

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。...【项目质量】:所有源码都经过严格测试,可以直接...

    phpspy2011

    phpspy2011webshell 是今年的最新款式。大家都来试试吧。

    [文件数据]PhpSpy 2008_phpspy_2008.zip

    这个压缩包"phpspy_2008.zip"可能包含了该工具的完整安装程序、用户手册、示例代码以及相关的帮助文档。 【描述】"PhpSpy 2008"的主要功能包括但不限于: 1. **源代码调试**:允许开发者在执行过程中设置断点,...

    phpspy2013 完整版

    phpspy2013 完整版

    phpspy:适用于PHP 7的低开销采样探查器

    5. **分析结果**:使用合适的工具(如`火焰图`)解析和可视化输出的数据,找出性能瓶颈。 ### 4. **火焰图** `phpspy`生成的输出可以与`flamegraph`工具结合,生成直观的火焰图。这种图表可以清晰地展示函数调用...

    PHP实例开发源码——PhpSpy 2008 WEB后门程序.zip

    在网络安全中,后门是指在系统或网络设备中故意留下的隐藏通道,允许攻击者绕过正常的安全机制,实现远程控制或者获取数据。这些后门通常由黑客植入,但开发者也可能在无意间创建,比如疏忽的安全配置或未修复的漏洞...

    phpspy是PHP 7的低开销采样探查器。-PHP开发

    phpspy是PHP 7的低开销采样探查器。目前,它可与Linux 3.2+ x86_64非ZTS PHP 7.0+(带有CLI,Apache和FPM SAPI)一起使用。 phpspy phpspy是PHP 7的低开销采样探查器。目前,它可与Linux 3.2+ x86_64非ZTS PHP 7.0+...

    PhpSpy 2005 精简版

    PhpSpy是一个用PHP语言编写的在线管理程序,同时集成很多和海阳顶端网所类似的功能,也可以说是一个WEB方式的后门,PHP的同类程序有几个,但多多少少有些缺陷,我结合现有的攻击手法,本着实用、简洁、小巧的原则,...

    phpspy2013最新版发布了

    PHPSPY 2013也是最终版,以后应该不会继续更新了。如有BUG,请在此留言,本人会及时修正,分加密和非密版

    PhpSpy 2006

     PhpSpy是一个用PHP语言编写的在线管理程序,同时集成很多和海阳顶端网所类似的功能,也可以说是一个WEB方式的****,PHP的同类程序有几个,但多多少少有些缺陷,我结合现有的攻击手法,本着实用、简洁、小巧的原则...

    PHP实例开发源码-PhpSpy 2008 WEB后门程序.zip

    PHP实例开发源码—PhpSpy 2008 WEB后门程序.zip PHP实例开发源码—PhpSpy 2008 WEB后门程序.zip PHP实例开发源码—PhpSpy 2008 WEB后门程序.zip

    文件数据PhpSpy 2006 修改版-phpspy-2006.rar

    【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。...【项目质量】:所有源码都经过严格测试,可以直接...

Global site tag (gtag.js) - Google Analytics