phpweb成品网站最新版上传、注入漏洞
软件版本: V2.0.5 / 20120412商业收费软件
官网:www.phpweb.net
漏洞文件:search/module/search.php/search/index.php?key=1&myord=1
上传漏洞:
漏洞文件: /kedit/upload_cgi/upload.php
<?php
define("ROOTPATH", "../../");
include(ROOTPATH."includes/admin.inc.php");
NeedAuth(0);
$dt=date("Ymd",time());
if(!is_dir(ROOTPATH.$_POST['attachPath'].$dt)){
@mkdir(ROOTPATH.$_POST['attachPath'].$dt,0777);
}
//文件保存目录路径
$save_path = ROOTPATH.$_POST['attachPath'].$dt.'/';
echo $save_path;
//文件保存目录URL
$save_url = '../../'.$_POST['attachPath'].$dt.'/';
//定义允许上传的文件扩展名
$ext_arr = array('gif','jpg','png','bmp'); //限制后缀
//最大文件大小
$max_size = 1000000;
//更改目录权限
@mkdir($save_path, 0777);
//文件的全部路径
$file_path = $save_path.$_POST['fileName']; //保存文件名
//文件URL
$file_url = $save_url.$_POST['fileName'];
//有上传文件时
if (empty($_FILES) === false) {
//原文件名
$file_name = $_FILES['fileData']['name'];
//服务器上临时文件名
$tmp_name = $_FILES['fileData']['tmp_name'];
//文件大小
$file_size = $_FILES['fileData']['size'];
//检查目录
if (@is_dir($save_path) === false) {
alert("上传目录不存在。");
}
//检查目录写权限
if (@is_writable($save_path) === false) {
alert("上传目录没有写权限。");
}
//检查是否已上传
if (@is_uploaded_file($tmp_name) === false) {
alert("临时文件可能不是上传文件。");
}
//检查文件大小
if ($file_size > $max_size) {
alert("上传文件大小超过限制。");
}
//获得文件扩展名
$temp_arr = explode(".", $_POST['fileName']);
$file_ext = array_pop($temp_arr);
$file_ext = trim($file_ext);
$file_ext = strtolower($file_ext);
//检查扩展名
if (in_array($file_ext, $ext_arr) === false) {
alert("上传文件扩展名是不允许的扩展名。");
}
//移动文件
//未重命名 虽然过滤了 后缀 iis 6解析漏洞 ^ _ ^
if (move_uploaded_file($tmp_name, $file_path) === false) {
alert("上传文件失败。");
}
@chmod($file_path,0666);
?>
iis 6.0 可getshell
抓包改包 filename 改为xx.php;111.jpg 即可突破
apache 版本magic_quotes_gpc = off情况下可以考虑 0 截断 绕过
由于后台 写入配置文件、创建页面 都插入到数据库...
未找到一个通杀拿shell办法
有兴趣的可以研究下
页:
[1]