文件上传漏洞(总结)

文件上传漏洞是什么

文件上传必须满足的条件

文件上传漏洞的危害

文件上传的种类

无验证

前端验证

.htaccess

文件头检查

MiMe绕过

双写后缀


文件上传漏洞是什么

指的是用户上传了一个可以执行的脚本,运行此脚本后获得执行服务器端命令的权限,一般用作与于在上传图片或者文件处,用户通过一些手段绕过检测机制,从而上传恶意代码并且执行

文件上传必须满足的条件

1.可以上传该文件

2.上传的路径可以知道并且可以访问

3.可执行该上传的文件

文件上传漏洞的危害

文件上传相对于SQL注入危害更大。

SQL注入利用没有对SQL命令插入到URL或请求查询字符串进行一个严格的过滤的原理,最终欺骗服务器执行SQL命令,窃取数据,从而脱库洗库。如果 Web应用程序存在上传漏洞,也没有对上传的文件进行严格过滤,服务器解释并执行了用户上传的脚本,导致代码执行

通过这个文件的上传攻击者可以植入webshell,可能进行一系列钓鱼,木马等等

文件上传的种类


无验证

原理:未对文件前端,后缀,头文件等等进行任何检测,直接上传一句话木马

<?php @eval($_REQUEST['password']);?>

上传之后用蚁剑连接

 

得到flag


前端验证

只允许上传.jpg/.png/.gif后缀的文件

这里在前端会直接对后缀进行验证,只允许后缀为.jpg/.png/.gif的文件上传,我们先把文件名改为1.gif,然后上传的时候进行抓包,然后改包为.php后缀,再重放

进行抓包,然后重放

重放成功后,用蚁剑连接,得到flag 


.htaccess

全称Hypertext Access(超文本入口),通过.htaccess文件,可以帮我们实现用户重定向、自定义错误页面、更改扩展名、以及使用其他文件作为index文件等等,如果一个web应用允许上传.htaccess文件,那就意味着,攻击者可以利用这个漏洞进行更改Apache的配置

首先上传一个.htaccess文件

上传这个文件

上传成功,然后再上传一个一句话木马【注意:这里的一句话木马没有后缀,重命名为ganyu,ganyu是随便写的,取决于.htaccess文件的第一句话里的内容】

上传成功,用蚁剑连接,拿flag


文件头检查

文件头、文件头检测是什么?文件头就是描述一个文件的一些重要的属性,它告诉了打开并运行该文件的程序这个文件的文件类型是什么,文件头检测是指当浏览器上传到服务器的时候,白名单会进行的文件头检测,符合的话允许上传,否则不允许上传。

这里我们用GIF8(GIF89a也可以)做示例

在1.txt文档内,在一句话木马前添加一句GIF8

 

然后,将文件后缀更改为.jpg后缀

上传,抓包后,更改后缀为1.php,重放,蚁剑连接得到flag 

上传,抓包后,更改后缀为1.php,重放,蚁剑连接得到flag

类似GIF8的还有

File

Type

ExtensionsHeader

JPEG

Jpg/jpeg

0xFFD8FF

PNG

png

0x89504E470D0A1A0A

GIF

gif

GIF89a

TIFF

Tif/tiff

0x49492A00


MiMe绕过

MiMe是什么:MIME由一串简单的字符串组成,初期标识了邮件e-mail的附件的类型,后来在html文件中可以使用content-type属性表示,描述了这个文件类型的。

MiMe常见的格式

audio/wav

wave音频流媒体文件

audio/webm

webm音频文件格式

audio/ogg

ogg多媒体文件格式的音频文件

audio/mpeg

mpeg多媒体文件格式的音频文件

image/gif

gif图片

image/jpeg

jpeg图片

image/png

png图片

image/svg+xml

svg矢量图片

application/json

json格式

当我们上传一个1.php文件的时候,content-type会自动将我们这个文件类型标识为php,从而与上传机制不符阻止了上传

我们在这里进行抓包,将属性改为允许上传的格式,如image/gif、image/png等等,再重放

上传成功,用蚁剑连接,得到flag


双写后缀

这里我们发现如果上传1.php的话会直接把php删除,如果我们上传一个以.pphp结尾的文件呢?

只过滤了php,而没有过滤p,利用这个漏洞,我们编写一个后缀为为pphphp的文件

上传成功,其实这里上传的后缀有很多种,比如1.pphpphphp、1.Pphphp等等,我们现在用蚁剑连接,就得到flag

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值