网站地图    收藏   

主页 > 后端 > 网站安全 >

phpweb成品网站最新版上传、注入漏洞 - 网站安全

来源:自学PHP网    时间:2015-04-17 12:00 作者: 阅读:

[导读] 软件版本: V2.0.5 / 20120412商业收费软件官网:www.phpweb.net漏洞文件:search/module/search.php/search/index.php?key=1myord=1 [sqlinjection]?php// ... 省略 n 行...//第18行: $k......

软件版本: V2.0.5 / 20120412 
 
商业收费软件
 
官网:www.phpweb.net
 
漏洞文件:search/module/search.php
/search/index.php?key=1&myord=1 [sqlinjection]
 
<?php
 //       ... 省略 n 行...
//第18行:
        $key=htmlspecialchars($_GET["key"]);   //只是简单的将字符HTML 实体 编码   , mysql 注入不受此影响 
        $page=htmlspecialchars($_GET["page"]);
        $myord=htmlspecialchars($_GET["myord"]);
 
 //       ... 省略 n 行...
$key,$myord 两个参数带入查询
//第47行 $key:
 
$fsql->query("select count(id) from {P}_news_con where iffb='1' and catid!='0' and (title regexp '$key' or body regexp '$key')");  //虽然带入查询 但使用的 是regexp 不知如何绕过..
 
//第197行 $myord
$fsql->query($scl . " order by $myord desc limit $pagelimit ");    产生注入
 
?>上传漏洞:
漏洞文件: /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);
}
 
//文件保存目录路径 www.2cto.com
$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办法
 
有兴趣的可以研究下

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论