赞
踩
测试工具:Burp Suite
浏览器:火狐
靶场:Pikachu
文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件名对应的文件response给浏览器,从而完成下载。 如果后台在收到请求的文件名后,将其直接拼进下载文件的路径中而不对其进行安全判断的话,则可能会引发不安全的文件下载漏洞。
此时如果攻击者提交的不是一个程序预期的的文件名,而是一个精心构造的路径(如…/…/…/etc/passwd),则很有可能会直接将该指定的文件下载下来。 从而导致后台敏感信息(密码文件、源代码等)被下载。
文件上传功能在web应用系统很常见,比如很多网站注册的时候需要上传头像、上传附件等等。当用户点击上传按钮后,后台会对上传的文件进行判断 比如是否是指定的类型、后缀名、大小等等,然后将其按照设计的格式进行重命名后存储在指定的目录。 如果说后台对上传的文件没有进行任何的安全判断或者判断条件不够严谨,则攻击者可能会上传一些恶意的文件,比如一句话木马,从而导致后台服务器webshell。
(1)删除前端验证
(2)上传一句话木马system.php
<?php system($_GET[x]);?>
(3)访问木马,控制后台服务器
(1)MIME介绍
MIME(Mutipurpose Internet Mail Extensions)多用途互联网邮件扩展类型。是设定某种扩展名的文件
用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来
打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。
每个MIME类型由两部分组成,前面是数据的大类别,例如声音audio、图象image等,后面定义具体的种类。常见的MIME类型,比如:
超文本标记语言文本.html,.html text/html
(2)上传xxx.php提示"上传的图片只能是jpg,jpeg,png格式的!"
(3)在【Burp Suite】-> 【重发器】中,将Content-Type: application/octet-stream改为Content-Type: image/png,点击重发,显示路径表示上传成功。
(1)Getimagesize ( ) 返回结果中有文件大小和文件类型,如果用这个函数来获取类型,从而判断是否是图片的话,会存在问题。
(2)图片木马的制作:
方法1 :直接伪造头部GIF89A
方法1.CMD: copy /b ai.png+system.php ccc.png
方法2.使用GIMP (开源的图片修改软件), 通过增加备注,写入执行命令
(3)上传ccc.png
(4)这是需要文件包含漏洞来执行木马(需要猜测木马的位置)
1、不要在前端使用JS实施上传限制策略
2、通过服务端对上传文件进行限制:
2、通过服务端对上传文件进行限制:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。