目录

1. 漏洞描述
2. 漏洞触发条件
3. 漏洞影响范围
4. 漏洞代码分析
5. 防御方法
6. 攻防思考

1. 漏洞描述

http://www.wooyun.org/bugs/wooyun-2010-067447

WDCP这个控制面板CMS提供了一个服务器管理的功能,但是对mysql/add_user.php这个脚本文件没有进行必要的身份验证,导致任意用户都可以访问这个接口

2. 漏洞触发条件

触发条件为0,任意用户可以直接访问这个接口,进行账户、数据库的添加

http://xxxxx:8080/mysql/add_user.php

http://xxxxx:8080/mysql/add_db.php

Relevant Link:

http://www.wooyun.org/bugs/wooyun-2010-067447
http://www.wdlinux.cn/wdcp/install.html

3. 漏洞影响范围

这个入侵漏洞修复的的场景是在wuyoo报告出漏洞之后,厂商已经进行了修复,并发布了修复后的、被zend加密后的文件,我们需要使用patch diff compare技术对patch后的代码和存在漏洞的文件列表进行对比,定位到本次漏洞事件的源头,存在漏洞的文件(因为存在漏洞的文件可能不只一个)

vul code

find /www/wdlinux/wdcp/mysql -type f -print0 | xargs -0 md5sum

fixed code

find /zhenghan/vulpoc/wdcp/lanmp/www/wdlinux/wdcp/mysql -type f -print0 | xargs -0 md5sum

通过diff,我们可以发现,其中只有2个文件的MD5值是不同的,也就是说官方对这2个文件进行了代码修复

add_user.php
add_db.php

4. 漏洞代码分析

0x1: php zendoptimizer

php的zendoptimizer是基于zend的一种代码预编译实现模块,通过提前将代码预编译为一种zendoptimizer可以理解的中间语言,用空间换时间,甚至在zendoptimizer的优化下,并不需要额外的磁盘空间占用,基于预计算的思想可以显著地提高php应用程序的运行速度

Relevant Link:

http://www.zend.com/topics/Zend-Optimizer-User-Guide-v330-new.pdf
http://www.ibm.com/developerworks/cn/opensource/os-php-zend1/
http://baike.baidu.com/view/772047.htm
http://kb.zend.com/how-to-install-zend-optimizer-manually/
http://www.zend.com/en/products/guard/downloads#Windows
http://kb.zend.com/how-to-install-zend-optimizer-manually/#.VFIs2vmUeKQ

0x2: code vul analysis

待审计的代码经过了zend加密,可以使用DeZender.exe进行解密,之后有时间了想研究一下php的zendoptimizer动态加解密的原理,和基于php扩展实现的DeZender的实现原理

<? require_once "../inc/common.inc.php";if (isset($_POST['Submit_add'])) {$user=chop($_POST['user']);$password=chop($_POST['password']);$dbname=chop($_POST['dbname']);check_user($user);check_string($password);check_string($dbname);//这里没有做任何的身份验证就直接进行高风险操作了
        create_db_user($user,$password,$host);grant_db_user($user,$host,$dbname);mysql_add_user($user,$password,$host,$dbname,$rtime);optlog($wdcdn_uid,"增加mysql数据库 $user",0,0);str_go_url("数据库用户增加成功!",0);}$member_list=member_list();$site_list=site_list();$db_list=db_list();require_once(G_T("mysql/add_user.htm"));
?>

5. 防御方法

官方给出了修复方案

Relevant Link:

http://www.wdlinux.cn/bbs/thread-37476-1-1.html

6. 攻防思考

1. 身份验证、权限授权属于web应用系统的边界安全,最佳安全实践应该是在web应用的入口点就进行严格的身份认证,而不应该将身份认证放在各个业务功能的子文件中,这是不合理的
2. 在网站的路由入口点进行强制的路由跳转,进行身份认证,通过认证后通过session来保持住当前认证状态,并且在所有的子页面都部署轻量级的身份认证session检测,如果检测结果为"未登录",则直接强制跳转到唯一的中心认证路由页面上
3. 通过这种中心化的防御思路,可以解决在子页面中单独部署身份认证代码导致的遗漏现象

Copyright (c) 2014 LittleHann All rights reserved

转载于:https://www.cnblogs.com/LittleHann/p/4063267.html

WDCP(WDlinux Control Panel) mysql/add_user.php、mysql/add_db.php Authentication Loss相关推荐

  1. mysql读写分离6_6\MySQL 主从同步 、 MySQL 读写分离 、 MySQL 性能调优

    day06 一.mysql主从同步 二.数据读写分离 三.MySQL优化 ++++++++++++++++++++++++++++++++ 一.mysql主从同步 1.1 主从同步介绍?从库服务器自动 ...

  2. mysql 日期的数据类型,MySQL日期数据类型、MySQL时间类型使用总结

    摘要 腾兴网为您分享:MySQL日期数据类型.MySQL时间类型使用总结,政务易,悬浮球,网赚招聘,社会扶贫等软件知识,以及水星mw150us,街机123,脉脉app,安卓优化大师hd,优声,uc订阅 ...

  3. Mysql性能优化、Mysql参数优化、Mysql配置优化

    码字不易,转载请附原链,搬砖繁忙回复不及时见谅,技术交流请加QQ群:909211071 Mysql性能优化.Mysql参数优化.Mysql配置优化.Mysql参数优化对于不同的网站,及在线量等,以及机 ...

  4. 项目性能优化(MySQL读写分离、MySQL主从同步、Django实现MySQL读写分离)

    当项目中数据库表越来越多,数据量也逐渐增多时,需要做数据库的安全和性能的优化.对于数据库的优化,可以选择使用MySQL读写分离实现. 1.MySQL主从同步 1.主从同步机制 1.1.主从同步介绍和优 ...

  5. mysql系列十、mysql索引结构的实现B+树/B-树原理

    一.MySQL索引原理 1.索引背景 生活中随处可见索引的例子,如火车站的车次表.图书的目录等.它们的原理都是一样的,通过不断的缩小想要获得数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的 ...

  6. mysql11导入数据_MySQL专题11之MySQL导出数据、MySQL导入数据

    1.MySQL导出数据 -  MySQL中你可以使用SELECT...INTO OUTFILE语句来简单的导出数据到文本文件中. a.使用SELECT...INTO OUTFILE -  以下实例中我 ...

  7. mysql重复记录大于十的数据库_MySQL专题10之MySQL序列使用、MySQL处理重复数据、MySQL以及SQL的注入...

    1.MySQL序列使用 -  MySQL序列是一组整数:1,2,3...,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现. -  使用AUTO ...

  8. Mysql(软件安装、Mysql基本语法、Mysql数据操作、Mysql关键字、约束、多表查询、Mysql多表查询、数据备份、数据导入、视图)

    1.MySQL介绍 1.1数据库介绍 数据库概念 数据库就是用于存储数据的一个空间 数据存储方式的发展史 甲骨文(材料太昂贵) 竹简(太沉了,运输不方便) 纸(易损坏) 计算机(办公软件,传输不方便) ...

  9. MySQL监控:MySQL监控指标、MySQL监控界面实现、Python监控MySQL

    本文概要: 0.前言:         1.监控MySQL的哪些指标:         2.一目了然的MySQL监控的UI界面:         3.Python代码获取MySQL监控状态. 0.前言 ...

  10. MySQL深翻页、MySQL跳页

    以前我在mysql中分页都是用的 limit 100000,20这样的方式,我相信你也是吧,但是要提高效率,让分页的代码效率更高一些,更快一些,那我们又该怎么做呢? 分页的基本原理: 代码如下: my ...

最新文章

  1. RUST等差分解一个数
  2. React+dva+antd的运用
  3. Java 8 新特性之Stream API
  4. Ubuntu下安装LXR
  5. linux服务端开发vs2012,Vs2012在Linux开发中的应用(1):开发环境
  6. everything搭配什么软件_带你飞起来的好工具Everything,极速找到你所要的文件
  7. php单进程锁定,强制PHP命令行脚本单进程运行的方法
  8. 201521123009 《Java程序设计》第11周学习总结
  9. Linux内核的Kmemleak实现内存泄露检测
  10. 深入理解Sentinel如何构建Node调用树
  11. SQL 之group by查询语句
  12. android盒子没声音,TCL安卓智能电视没声音解决办法
  13. win10底部任务栏不见了怎么办
  14. 地铁 综合监控设备 及其所属子系统
  15. 靖哥哥教你如果拦截去除弹窗广告
  16. 基于HyperLPR的车牌识别
  17. 机器人路径规划_人工势场法
  18. 解决fatal error C1859: “Debug\thread5.pch”意外的预编译头错误的方法
  19. Linux locate 作用,linux中的locate命令的详细解释
  20. 扬州大学回应「清华博士入职5年,月薪才372元」

热门文章

  1. 关于margin的数值是百分比,参照对象
  2. .html(),.text()和.val()的差异总结:
  3. C++_运算符重载 再思考
  4. 计算机原理实验的35h,微机原理及接口技术习题解答与实验指导
  5. 2.同步(Synchronization)
  6. Hibernate的单向N-1关联(一)
  7. 奇异值分解(SVD) 的 几何意义
  8. jQuery拖动调整表格列宽度-resizableColumns
  9. 阿里云轻量级服务器上JDK及tomcat部署配置
  10. php 判断访问是否是手机或者pc