【Web安全】文件上传漏洞原理分析
2021-06-14 18:02
标签:orm 分享 val image 头像 特定 color 编程语言 apach 0x01 文件上传漏洞简介 为了让用户将文件上传到网站,就像是给危机服务器的恶意用户打开了另一扇门。即便如此,在今天的现代互联网的Web应用程序,它是一种常见的要求,因为它有助于提高业务效率。企业支持门户,给用户各企业员工有效地共享文件。允许用户上传图片,视频,头像和许多其他类型的文件。向用户提供的功能越多,Web应用受到攻击的风险和机会就越大,这种功能会被恶意用户利用,获得到一个特定网站的权限,或危及服务器的可能性是非常高的。上传文件本身没有错,问题与漏洞在于服务器怎么处理上传的文件。 0x02 上传漏洞的危害 这个漏洞在DVBBS6.0时代被黑客们利用的最为猖獗,利用上传漏洞可以直接得到WEBSHELL,危害等级超级高,现在的入侵中上传漏洞也是常见的漏洞。 0x03 上传漏洞成因 上传文件的时候,如果服务器脚本语言,未对上传的文件进行严格的验证和过滤,就容易造成上传任意文件,包括上传脚本文件。如果是正常的PHP文件,对服务器则没有任何危害。PHP可以像其他的编程语言一样,可以查看目录下的文件,查看文件中的吗内容,可以执行系统命令等。上传文件的时候,如果服务器端脚本语言,未对上传的文件进行严格的验证和过滤,就有可能上传恶意的PHP文件,从而控制整个网站,甚至是服务器。 0x04 上传漏洞原理 index.html: upload.php: 我们提前准备一个上传的文件 1.php 1.php的源码如下: 然后我们在本地搭建网站上传测试一下:
上传成功,我们来打开我们上传的文件
成功打开我们的文件,这时再查看我们的网站根目录:
0x05 解析漏洞 接下来为大家列举一些比较常用的解析漏洞: nginx解析漏洞: IIS7.0/7.5解析漏洞: IIS6.0解析漏洞: Apache解析漏洞: 【Web安全】文件上传漏洞原理分析 标签:orm 分享 val image 头像 特定 color 编程语言 apach 原文地址:http://www.cnblogs.com/superye/p/7278924.html 1 html>
2 head>
3 meta charset="utf-8">
4 title>文件上传漏洞 - 烨title>
5 head>
6 body>
7 center>
8 h2>文件上传漏洞h2>
9 p>2017.7.30 By.烨p>
10 p>
11 文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。br>
12 这种攻击方式是最为直接和有效的,“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。br>
13 如果服务器的处理逻辑做的不够安全,则会导致严重的后果。br>
14 p>
15 hr>
16 h2>漏洞演示h2>
17 form action="upload.php" method="post" onsubmit="checkFile()" enctype="multipart/form-data">
18 input type="file" name="file" id="file">
19 input type="submit" value="上传文件" name="submit">
20 form>
21 center>
22 body>
23 html>
1 php
2 error_reporting(0); //抑制所有错误信息
3 @header("content-Type: text/html; charset=utf-8"); //语言强制
4 ob_start();
5
6 if(isset($_POST["submit"])){
7 $name = $_FILE[‘file‘][‘name‘];
8 $name = md5(date(‘Y-m-d h:m:s‘)).strrchr($name,".");//上传文件重命名
9 $size = $_FILES[‘file‘][‘size‘];
10 $tmp = $_FILES[‘file‘][‘tmp_name‘];
11 move_uploaded_file($tmp,$name);
12 echo "文件上传成功!path:".$name;
13 }
14 ?>
php
phpinfo()
?>
http://www.xxxx.com/1.jpg/a.php
http://www.xxxx.com/1.jpg%00.php
http://www.xxxx.com/UploadFiles/image/1.jpg/.php
http://www.xxxx.com/UploadFiles/image/1.jpg;x.php
http://www.xxxx.com/test.php.x1.x2.x3