文件上传漏洞 分析与利用
Posted xingyuner
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件上传漏洞 分析与利用相关的知识,希望对你有一定的参考价值。
文件包含和文件上传 俩个漏洞结合起来的利用
文件上传漏洞使用 将图片头复制过来 伪造图片 然后将恶意代码嵌入 将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]
常见编辑器漏洞和利用
以上是关于文件上传漏洞 分析与利用的主要内容,如果未能解决你的问题,请参考以下文章