一次失败的渗透记录....

前几天面试直接丢了一个ip,直接让我拿服务器权限....虽然没有成功拿下来,还是记录一下流程;

信息搜集情况有这些:

Thinkphp框架,mysql数据库,apache服务器

Nmap扫描开始了80,3306,8087,3389端口;

3306:hydra爆破 拒绝访问;

3389:爆破没结果..

8087:GIT备份泄露

几个坑点:

1.thinkphp,找了网上现有的漏洞,测试都是失败 浪费了好多时间.....

2.网站存在伪静态,像极了注入点,测试无果.....(还以为一个面试不会太难)

3.爆破....应该不存在这种事情!

git泄露,拿到部分源码,浏览源码发现下面的网站,会暴露sql错误

http://xxx/user/certification.html

接下来就是上burpsuite 构造payload;

最后拿到了管理员登陆账号密码, 寻找后台...... 无果;

写一句话进去,过滤了<>,or, select,双写+16进制编码可以绕,然后问题又来了!!!

running with the secure-file-priv.又没结果了....

(还有其他的地址接口调用会爆出sql错误,反正也没用)

 

继续看源码,api控制器里面有一个上传,用的是thinkphp自带的upload方法,百度一下,构建了上传

 

源码:
public function uploads_qrcode(){
        $upload = new \Think\Upload();// 实例化上传类
        $upload->maxSize   =     512000 ;// 设置附件上传大小
        $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型
        $upload->savePath = '/images/';
        $info=$upload->upload();
        $img_url = $info['file']['savepath'] . $info['file']['savename'];
        if(!$info) {// 上传错误提示错误信息
            $this->error($upload->getError() . "大小限制为500KB");
        }else{// 上传成功
            $this->success($img_url);
        }


    }
构建的上传:
<html> <body> <form action="http://xxx/api/uploads_qrcode" method="post" enctype="multipart/form-data"> <input type="file" name='file' onchange="selectImage(this);"/> <input type="submit" name="submit" value="提交"> </form> </body> </html>

 

白名单校验,图片头检测,时间规则重命名.

先上传正常图片,返回了地址

访问就提示没有,目录前面还有一个uploads,这个也搞了我好久.....

然后就是突破上传....

截断失败,解析失败,超长文件名不可行,双filename,双上传不行,Content-Disposition中的空格删除.PUT,都失败了.....

大概只有文件包含了. 审计看不出来,水平有限,才疏学浅.......

 

如果有其他思路的,麻烦大佬带带......

 

 

 

 

posted @ 2019-11-30 15:23  ErickDing  阅读(181)  评论(0)    收藏  举报