文件上传漏洞 分析与利用

文件包含和文件上传 俩个漏洞结合起来的利用

文件上传漏洞使用  将图片头复制过来 伪造图片  然后将恶意代码嵌入    将jpg上传成功后  得到路径

就可以读取文件

所以,在设计文件上传功能时,一定要对传进来的文件进行严格的安全考虑。比如:

1.验证文件类型、后缀名、大小;

2.验证文件的上传方式;

3.对文件进行一定复杂的重命名;

4.不要暴露文件上传后的路径等

文件上传漏洞的防范措施

  1. 不要在前端使用js实施上传策略。

 2. 通过服务端对上传文件进行限制:

A)进行多条件组合检查:比如文件的大小,路径,扩展名,文件类型,文件完整性。

      B)对上传的文件在服务器上存储时进行重命名(制定合理的命令规则)。

  C)对服务器端上传文件的目录进行权限控制(比如只读),限制执行权限带来的危害。

 

首先复习一下之前自己写过的博客:

pikachu文件上传 : https://www.cnblogs.com/xingyuner/p/12310214.html

1、前端限制     在JS中限制 只允许上传jpg  在前端页面删除限制语句即可    上传成功后  而且在实际操作中  要知道上传的路径 才能进行操作

2、MIME TYPE   修改文件type   上传成功

3、图片木马制作 

   方法1 :直接伪造头部GIF89A 方法2:CMD: copy /b test.png + muma.php ccc.png

   方法3.使用GIMP (开源的图片修改软件) , 通过增加备注,写入执行命令

DVWA文件上传:      https://www.cnblogs.com/xingyuner/p/12292235.html

低: 直接上传php文件  菜刀链接

中:①之前的php文件改成png文件上传

  ②首先上传一个jpg文件,然后抓包上传文件的数据,修改其为php文件

  ③%00截断   .php%00.png

  在php版本小于5.3.4的服务器中,当Magic_quote_gpc选项为off时,可以在文件名中使用%00截断

  修改文件后缀名为.php%00.png

高:首先利用copy将一句话木马文件ghz.php与图片文件3.jpg合并

  cmd中   test.png + muma.php  ccc.png    就会执行成功

pikachu文件包含:https://www.cnblogs.com/xingyuner/p/12309934.html

本地文件包含

远程文件包含

 

DVWA文件包含:https://www.cnblogs.com/xingyuner/p/12285861.html

File Inclusion,意思是文件包含(漏洞),是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(include(),require()和include_once(),require_once())利用url去动态包含文件,此时如果没有对文件来源进行严格审查,就会导致任意文件读取或者任意命令执行。

文件包含漏洞分为本地文件包含漏洞与远程文件包含漏洞,远程文件包含漏洞是因为开启了php配置中的allow_url_fopen选项(选项开启之后,服务器允许包含一个远程的文件)。

文件上传检测控制方法

▪1、通过前端JavaScript检测文件扩展名

▪2、服务器端检测文件传输类型content-type

▪3、服务器端检测文件扩展名

▪4、服务器端文件内容检测

▪5、00截断的应用

中间件解析漏洞和利用:

IIS6.0解析漏洞

1、目录解析:

-在网站下建立文件夹的名字为.asp /.asa的文件夹,其目录内的任何扩展名的文件都被IIS当作asp文件来解析并执行。

-利用方法:建目录a.asp,目录中/a.asp/a.jpg 将会被按照正常的asp文件进行解析。

2、文件解析:

-在IIS6.0下,分号后面的不被解析,如a.asp;.jpg会被当做a.asp

-利用方法:上传文件名为xx.asp;.jpg格式

3、▪还有iis6.0默认的可执行文件除了asp还包含(常用来绕过黑名单检测)

  -.asa

  -.cer

  -.cdx

Apache2.0-2.2未知扩展名解析漏洞

Apache从右到左开始判断文件扩展名来解析文件,如果文件扩展名不被识别,就再往左判断,直到可以识别为止

▪例如udp.php.sss这个文件.sss后缀是apache不可识别解析,apache就会往前判断,当识别PHP时,就把udp.php.sss解析成php文件解析了。

Apache .htaccess配置文件

▪.htaccess文件是Apache服务器中的一个配置文件,它负责某一个目录下的网页配置配置,通过.htaccess可以实现分布式的配置。

▪通过htaccess文件,可以实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能

IIS平台上不存在该文件,

htaccess配置文件的开启

▪Vim /etc/httpd/conf/httpd.conf  

▪该文件默认开启,启用和关闭在httpd.conf文件中配置。

Apache .htaccess配置文件解析利用

▪1、建立.htaccess文件,写入-AddTypeapplication/x-httpd-php .jpg-可以实现将.jpg的文件按照php解析执行

▪2、上传.htaccess到服务器的目录(马在.htaccess在同目录或者子目录即可

▪3、上传.jpg的图片马,访问图片即可执行

Nginx解析漏洞

Nginx 主要有这两种漏洞

-1、低版本的Nginx 可以在任意文件名后面添加%00.php 进行解析攻击。如:test.jpg%00.php -影响版:0.5.,0.6., 0.7 <= 0.7.65, 0.8 <= 0.8.37

-2、一个是对任意文件名,在后面添加/任意文件名.php的解析漏洞。如:test.jpg/x.php(php-cgi的漏洞,本质与nginx无关的)

-漏洞场景IIS+php或Nginx+php▪测试版本-nginx0.5.* [Success]-nginx0.6.* [Success]-nginx0.7 <= 0.7.65 [Success]-nginx0.8 <= 0.8.37 [Success]

常见编辑器漏洞和利用

 

原文地址:https://www.cnblogs.com/xingyuner/p/12853040.html