day34WEB 攻防-通用漏洞&文件上传&黑白盒审计&逻辑&中间件&外部引用

目录

一,白盒审计-Finecms-代码常规-处理逻辑

黑盒思路:寻找上传点抓包修改突破获取状态码及地址

审计流程:功能点-代码文件-代码块-抓包调试-验证测试

二,白盒审计-CuppaCms-中间件-.htaccess

三,白盒审计-Metinfo-编辑器引用-第三方安全


配套资源(百度网盘):

链接:https://pan.baidu.com/s/1kl84Z8ttjp_pI4tWskcv-A?pwd=mnkl 
提取码:mnkl
本章知识点:
1 、白盒审计三要素
2 、黑盒审计四要素
3 、白黑测试流程思路
前置知识:
后门代码需要用特定格式后缀解析,不能以图片后缀解析脚本后门代码 ( 解析漏洞除外 )
如: jpg 图片里面有 php 后门代码,不能被触发,所以连接不上后门
如果要图片后缀解析脚本代码,一般会利用包含漏洞或解析漏洞,还 有.user.ini&.htaccess
文件上传:
黑盒:寻找一切存在文件上传的功能应用
1 、个人用户中心是否存在文件上传功能
2 、后台管理系统是否存在文件上传功能
3 、字典目录扫描探针文件上传构造地址
4 、字典目录扫描探针编辑器目录构造地址
白盒:看三点,中间件,编辑器,功能代码
1 、中间件直接看语言环境常见搭配
2 、编辑器直接看目录机构或搜索关键字
3 、功能代码直接看源码应用或搜索关键字

一,白盒审计-Finecms-代码常规-处理逻辑

黑盒思路:寻找上传点抓包修改突破获取状态码及地址

进入网站首页,注册登入,进入个人中心上传图片并抓包分析

day34WEB 攻防-通用漏洞&文件上传&黑白盒审计&逻辑&中间件&外部引用_第1张图片

day34WEB 攻防-通用漏洞&文件上传&黑白盒审计&逻辑&中间件&外部引用_第2张图片

通过抓包发现,请求数据包并没有看到图片的名称以及类型,这里猜测tk的值就是图片信息,并且进行了base64编码,这里解码tk值看看

day34WEB 攻防-通用漏洞&文件上传&黑白盒审计&逻辑&中间件&外部引用_第3张图片

解码发现内容和图片16进制内容有相似之处,现在将tk值的jpg替换成php,并将后面的用一句话木马进行替换,注意后面代码也要用base64编码

day34WEB 攻防-通用漏洞&文件上传&黑白盒审计&逻辑&中间件&外部引用_第4张图片

根据返回信息无法判断有没有上传成功,我们根据上传成功的图片路径访问.php文件看看结果

day34WEB 攻防-通用漏洞&文件上传&黑白盒审计&逻辑&中间件&外部引用_第5张图片

返回404错误,现在有两种可能,一就是没有上传成功,二就是上传成功但是路径不一样了,或者文件名被改了

审计流程:功能点-代码文件-代码块-抓包调试-验证测试

通过抓包获取基本路径,然后找到对应的php文件,找到对应函数进行分析

day34WEB 攻防-通用漏洞&文件上传&黑白盒审计&逻辑&中间件&外部引用_第6张图片

源码

 public function upload() {

        // 创建图片存储文件夹
        $dir = SYS_UPLOAD_PATH.'/member/'.$this->uid.'/';
        @dr_dir_delete($dir);
        !is_dir($dir) && dr_mkdirs($dir);

        if ($_POST['tx']) {
            $file = str_replace(' ', '+', $_POST['tx']);
            if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $file, $result)){
                $new_file = $dir.'0x0.'.$result[2];
                if (!@file_put_contents($new_file, base64_decode(str_replace($result[1], '', $file)))) {
                    exit(dr_json(0, '目录权限不足或磁盘已满'));
                } else {
                    $this->load->library('image_lib');
                    $config['create_thumb'] = TRUE;
                    $config['thumb_marker'] = '';
                    $config['maintain_ratio'] = FALSE;
                    $config['source_image'] = $new_file;
                    foreach (array(30, 45, 90, 180) as $a) {
                        $config['width'] = $config['height'] = $a;
                        $config['new_image'] = $dir.$a.'x'.$a.'.'.$result[2];
                        $this->image_lib->initialize($config);
                        if (!$this->image_lib->resize()) {
                            exit(dr_json(0, '上传错误:'.$this->image_lib->display_errors()));
                            break;
                        }
                    }
                    list($width, $height, $type, $attr) = getimagesize($dir.'45x45.'.$result[2]);
                    !$type && exit(dr_json(0, '图片字符串不规范'));
                }
            } else {

                exit(dr_json(0, '图片字符串不规范'));
            }
        } else {
            exit(dr_json(0, '图片不存在'));
        }

通过对代码的阅读发现,并没有都文件进行过滤,但是将文件前缀改成了0x0,现在我们尝试将名称改为0x0再次访问

day34WEB 攻防-通用漏洞&文件上传&黑白盒审计&逻辑&中间件&外部引用_第7张图片

发现执行成功,说明我们刚刚上传的php文件上传成功了,只是名称被改了

二,白盒审计-CuppaCms-中间件-.htaccess

黑盒思路:存在文件管理上传改名突破,访问后在突破

无法上传php文件,但是通过修改名称抓包,将后缀改掉可以成功将文件后缀该成.php,但是.php文件并不能执行,没有执行权限,因为同目录下有.htaccess文件,限制了php文件的权限。可以通过删除.htaccess文件使php文件拥有权限,也可以在修改名称的时候将文件放到上一级目录。

审计流程:功能点-代码文件-代码块-抓包调试-验证测试

三,白盒审计-Metinfo-编辑器引用-第三方安全

黑盒思路:探针目录利用编辑器漏洞验证测试

用目录扫描器扫描发现存在fckeditor编辑器,通过版本路径获取版本,根据版本查找有没有exp

审计流程:目录结构 - 引用编辑器 - 编辑器安全查询 -EXP 利用验证

你可能感兴趣的:(小迪安全-2022年,中间件)