小迪渗透&WEB漏洞(叁-贰)

文章目录

  • 20. 文件上传基础及过滤方法(20-24)
    • 20.1 演示案例
    • 20.2 涉及资源
  • 21. 文件上传黑白名单绕过
    • 靶场
  • 22. 文件上传之内容逻辑数组绕过
  • 23. 文件上传之解析漏洞编辑器安全
    • 23.1 中间件解析漏洞
    • 23.2 编辑器漏洞
    • 23.3 文件上传实战思路
    • 涉及资源
  • 24. 文件上传之 WAF 绕过及安全修复
    • 涉及资源

视频资源

20. 文件上传基础及过滤方法(20-24)

小迪渗透&WEB漏洞(叁-贰)_第1张图片

小迪渗透&WEB漏洞(叁-贰)_第2张图片

什么是文件上传漏洞?

  • 指程序对文件的上传未作全面的限制,导致用户可以上传一些超越用户权限的一些文件,可以是木马,shell脚本,病毒等。

文件上传漏洞有哪些危害?

  • 可以通过文件上传漏洞上传webshell后门。

文件上传漏洞如何查找及判断?

  • 黑盒: 使用扫描工具扫描打开网站。
  • 黑盒:测试会员中心,测试后台。
  • 白盒:直接撸源代码。

文件上传漏洞有哪些需要注意的地方?

  • 拿到漏洞后要对漏洞类型进行区分,编辑器、第三方应用、常规等。
  • 区分漏洞类型

关于文件上传漏洞在实际应用中的说明?

  • 上传后门脚本获取网站权限。

20.1 演示案例

  • 常规文件上传地址的获取说明:上传的文件要执行的话,要按照对应代码执行。
  • 不同格式下的文件类型后门测试
  • 配合解析漏洞下的文件类型后门测试本地文件:上传+解析漏洞=高危漏洞。
  • 上传漏洞靶场环境搭建
  • 测试某CMS及CVE编号文件上传漏洞测试:这种第三方插件的漏洞测试和常规漏洞测试是不一样的。

20.2 涉及资源

靶场源码:https://github.com/c0ny1/upload-labs/releases

21. 文件上传黑白名单绕过

小迪渗透&WEB漏洞(叁-贰)_第3张图片

文件上传常见验证:
后缀名,类型、文件头等
后缀名:黑名单、白名单
文件类型:M工ME信息
文件头:内容头信息
方法:查看源码、抓包修改包信息

%00截断:可以把这个放在文件名内,绕过检测。
get:会自动解码
post:不会自动解码,所以想以post提交数据%00需要把它进行url编码变成%25%30%30

过滤规则
小迪渗透&WEB漏洞(叁-贰)_第4张图片

靶场

uploadlabz
小迪渗透&WEB漏洞(叁-贰)_第5张图片

22. 文件上传之内容逻辑数组绕过

图片一句话制作方法:copy 1.png /b + shell.php /a webshell.jpg
文件头检测
图像文件信息判断
逻辑安全=二次渲染:指的是网站接受目标后会再进行操作,也就是说会对文件进行二次操作。
逻辑安全-条件竞争:有的网站会对上传的文件进行上传后再验证(上传过程不进行验证),这样文件会暂时保存到服务器上,可以趁程序未对此文件进行操作(例如改名,移位等),访问文件进行占用,产生条件竞争。
目录命名-x.php/.  :这种命名方法会保存为一个x.php文件
脚本函数漏洞-CVE-2015-2348:
数组接受+目录命名

解析漏洞
小迪渗透&WEB漏洞(叁-贰)_第6张图片

  • 这段代码存在逻辑判断问题,可以通过逻辑竞争来进行注入。
#靶场17关代码
$is_upload = false;
$msg = null;

if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_name = $_FILES['upload_file']['name'];
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $file_ext = substr($file_name,strrpos($file_name,".")+1);
    $upload_file = UPLOAD_PATH . '/' . $file_name;

    if(move_uploaded_file($temp_file, $upload_file)){
        if(in_array($file_ext,$ext_arr)){
             $img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;
             rename($upload_file, $img_path);
             $is_upload = true;
        }else{
            $msg = "只允许上传.jpg|.png|.gif类型文件!";
            unlink($upload_file);
        }
    }else{
        $msg = '上传出错!';
    }
}
}
  • 通过%00截断来绕过判断
    小迪渗透&WEB漏洞(叁-贰)_第7张图片

  • 20关代码可以采用数组注入。

$is_upload = false;
$msg = null;
if(!empty($_FILES['upload_file'])){
    //检查MIME
    $allow_type = array('image/jpeg','image/png','image/gif');
    if(!in_array($_FILES['upload_file']['type'],$allow_type)){
        $msg = "禁止上传该类型文件!";
    }else{
        //检查文件名
        $file = empty($_POST['save_name']) ? $_FILES['upload_file']['name'] : $_POST['save_name'];
        if (!is_array($file)) {
            $file = explode('.', strtolower($file));
        }

        $ext = end($file);
        $allow_suffix = array('jpg','png','gif');
        if (!in_array($ext, $allow_suffix)) {
            $msg = "禁止上传该后缀文件!";
        }else{
            $file_name = reset($file) . '.' . $file[count($file) - 1];
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH . '/' .$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $msg = "文件上传成功!";
                $is_upload = true;
            } else {
                $msg = "文件上传失败!";
            }
        }
    }
}else{
    $msg = "请选择要上传的文件!";
}

小迪渗透&WEB漏洞(叁-贰)_第8张图片

  • 文件上传配合文件包含会直接拿下目标

23. 文件上传之解析漏洞编辑器安全

小迪渗透&WEB漏洞(叁-贰)_第9张图片

23.1 中间件解析漏洞

参考共享的中间件漏洞PDF
IIS6/ 7简要说明-本地搭建
Apache配置安全--vuthab
Apache换行解析-vulhub
Nginx解析漏洞-vulhub
Nginx文件名逻辑-vulhub
Apache 低版本解析漏洞
利用场景:
我们可以利用文件上传,上传一个不识别的文件后缀(x.php. xxx.yyy),apache 识别不了最后的yyy,向前解析直到识别,利用解析漏洞规则成功解析文件,随后后门代码被触发。
  • cmd命令行制作图片马:copy 05.png/b + shell.txt/a 05shell.png
    小迪渗透&WEB漏洞(叁-贰)_第10张图片
  • linux低版本&IIS7.5的解析漏洞
    小迪渗透&WEB漏洞(叁-贰)_第11张图片

23.2 编辑器漏洞

编辑器手册

  • 编辑器页面,看到这个要想到编辑器漏洞
    小迪渗透&WEB漏洞(叁-贰)_第12张图片
  • 常见的编辑器
    Fckeditor exp利用
    Ueditor 漏洞利用
扩展
1.POC(Proof ofConcept),中文意思是“观点证明”。这个短语会在漏洞报告中使用,漏洞报告中的POC则是一段说明或者一个攻击的样例,使得读者能够确认这个漏洞是真实存在的。

2.EXP(Exploit),中文意思是“漏洞利用”。意思是一段对漏洞如何利用的详细说明或者一个演示的漏洞攻击代码,可以使得读者完全了解漏洞的机理以及利用的方法。

3.VUL(Vulnerability),泛指漏洞。

4.CVE漏洞编号,CVE 的英文全称是“Common Vulnerabilities & Exposures”公共漏洞和暴露,例如CVE-2015-0057、CVE-1999-0001等等。CVE就好像是一个字典表,为广泛认同的信息安全漏洞或者已经暴露出来的弱点给出一个公共的名称。如果在一个漏洞报告中指明的一个漏洞,如果有CVE名称,你就可以快速地在任何其它CVE兼容的数据库中找到相应修补的信息,解决安全问题。
可以在https://cve.mitre.org/网站根据漏洞的CVE编号搜索该漏洞的介绍。
也可以在中文社区http://www.scap.org.cn/上搜索关于漏洞的介绍

5.0DAY漏洞和0DAY攻击
在计算机领域中,零日漏洞或零时差漏洞(英语:Zero-dayexploit)通常是指还没有补丁的安全漏洞,而零日攻击或零时差攻击(英语:Zero-dayattack)则是指利用这种漏洞进行的攻击。提供该漏洞细节或者利用程序的人通常是该漏洞的发现者。零日漏洞的利用程序对网络安全具有巨大威胁,因此零日漏洞不但是黑客的最爱,掌握多少零日漏洞也成为评价黑客技术水平的一个重要参数。
零日漏洞及其利用代码不仅对犯罪黑客而言,具有极高的利用价值,一些国家间谍和网军部队,例如美国国家安全局和美国网战司令部也非常重视这些信息[1]。据路透社报告称美国政府是零日漏洞黑市的最大买家。

23.3 文件上传实战思路

1.上传文件和文件执行是两个东西
2.漏洞分类{解析漏洞、cms漏洞、其他漏洞【编辑器漏洞、cve漏洞、安全修复】}

思路:
如果有一个网站,要从文件上传的方向开始
第一步:先看中间件,看是否存在解析漏洞/CMS/编辑器漏洞/CVE/
如果有,如何找:
		字典扫描:扫描会员中心,文件上传的位置
找到后,如何利用:
		验证/绕过

涉及资源

https://navisec.it/编辑器漏洞手册
https:/www.jb51.net/softs/75619.html
https://pan.baidu.com/share/init?surl=5gcdBuOFrN1F9xVN7Q7GSA  **enqx**

24. 文件上传之 WAF 绕过及安全修复

#上传参数名解析:

明确哪些东西能修改?
Content-Disposition:一般可更改
name:表单参数值,不能更改
filename:文件名,可以更改
Content-Type:文件MIME,视情况更改

小迪渗透&WEB漏洞(叁-贰)_第13张图片

#常见绕过方法:
数据溢出-防匹配(xxx...)	:就是在关键点前面写入大量的无用数据来干扰对后面主要数据的检测
符号变异-防匹配('	" 	; ):有的检测可能是基于单引号和双引号来获取数据,可以修改单引号或双引号的位置或增加删除单双引号来干扰waf
数据截断-防匹配(%00;	换行):
重复数据-防匹配(参数多次)

#Payload :
大量垃圾数据缓冲溢出(Ccontent-Disposition,filename等)

#单引号、双引号、分号
filename=x.php
filename="x.php
filename='x.php
filename="a.jpg;.php";

# %00、换行
filename="a.php%00.jpg"
filename="Content-Disposition : form-data;name="upload_file" ; x.php"
filename="x.jpg" ; filename="x.jpg" ; . . . ..filename="x.php";
filename=
"
x
.
p
h
p
"
;
  • ;截断
    小迪渗透&WEB漏洞(叁-贰)_第14张图片

  • 重复参数
    小迪渗透&WEB漏洞(叁-贰)_第15张图片

  • 借助白名单,在filename内写入前面的一些数据,最后再写入x.php,程序判定filename时发现有前面的数据就放行,遇到x.php后发现没有变量接收,然后放弃检测,但最后x.php上传给了filename
    小迪渗透&WEB漏洞(叁-贰)_第16张图片

  • /截断
    小迪渗透&WEB漏洞(叁-贰)_第17张图片

#文件上传安全修复方案
后端验证:采用服务端验证模式后缀检测:
基于黑名单,白名单过滤M工ME检测:
基于上传自带类型检测
内容检测:文件头,完整性检测

自带函数过滤:参考uploadlabs函数
自定义函数过滤:function check_file(){ }
WAF防护产品:宝塔,云盾,安全公司产品等

小迪渗透&WEB漏洞(叁-贰)_第18张图片

涉及资源

https://github.com/fuzzdb-project/fuzzdb
https://github.com/TheKingOfDuck/fuzzDicts

你可能感兴趣的:(html5,html,c#)