好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

软件版本: 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办法

 

有兴趣的可以研究下

查看更多关于phpweb成品网站最新版上传、注入漏洞 - 网站安全的详细内容...

  阅读:63次