萌新网安路之文件上传漏洞(一)(day3)

漏洞原理

用户可通过伪造后缀、文件类型等方式上传恶意代码/文件,一般来说通过上传webshell;

一般出现在,头像上传、用户个人信息、文件处理(交接、存储、管理)、注册、申请;

文件上传分类

黑名单:不允许上传文件类型

白名单:仅允许上传的文件类型

绕过

一.(JS绕过):

①:抓包重放

先上传允许的文件类型,然后再通过抓包改包的方式进行绕过

原理:检测方式为前端js进行文件后缀的校验,之后再通过数据侧进行传输,这是在数据侧进行绕过

方法:先上传一个允许上传的文件类型,然后通过抓包,更改数据包中上传文件的后缀,再在文件内容的部分更改要使用的代码

②:也可以在burp中,修改JS限制

方法:在burp 中,右键数据包,Do intercept —→response to this request ,然后找到其js代码,进行删除或修改 或者 直接在网页上删除对应的JS限制函数

③:直接使用限制JS禁用的网页插件

-------------------------------------------------------

二.(MIME type 限制,限制文件类型)

MIME 是一种标准,用来表示文档、文件或字节流的性质和格式。

比如:image/gif、image/png、image/jpeg (图片相关的类型)

改mime type类型即可在数据包 content - type 处

-------------------------------------------------------

三.(黑名单限制)

①尝试生僻后缀:.phtml、.php1-8(仅受中间件配置限制,需要在中间件内添加对应配置才能生效,否则无法解析生僻后缀)(fuzzdicts中有对应后缀名字典可以跑)

此方法并不是所有情况下都能用,只有在配置文件中添加了对应的配置才能使用

②:尝试大小写绕过

③:在末尾加点 , 空格或者两者连用或者其他空白符或者添加::$DATA

③:Windws特性 (仅限windows操作系统,偶尔能用的上):

I、对大小写不敏感

II、在生成文件的时候自动会去除空格、

III、在生成文件的时候自动处理文件名后缀的.(点)

IV、windows处理文件的时候”::$DATA“会把其之后的数据当作文件流处理,不会检测后缀名,同时保持其之前的文件名

IIV、利用php+windows先上传数据包(仅限于原文件名被保存,没有被二次更改原文件名的情况下可以用)

af8b5214a3a340eaa1166cb9e911dc62.jpg

此时会生成一个空文件 再次上传第二条数据包修改原有文件

7a482e1a7aa7449cbfe6f2f651237c69.jpg

此时会重新将文件内容添加进去,此方法适用于上传时源文件名不被修改的情况

四:(白名单限制)

①:00截断

当操作系统识别字符串读到\0字符时,意味者停止,结束,通过这个特性可达到00截断的目的,或某些waf的绕过

限制条件:php版本:小于5.3.29

                                   magic_quote_gpc:off

操作:

get请求中在url地址栏增加%00

UntitledUntitled

 

post请求则需要修改Hex请求为00

Untitled

 

 

Untitled

②配合图片马和文件包含漏洞

 

正常上传图片,在图片当中插入php代码即可(末尾)

Untitled

代码生成图片马

cmd中输入

copy old.png /b + yours.php new.png    (所有图片格式均适用)

若添加一句话木马可以直接通过Webshell管理工具进行连接

文件上传的修复
①黑名单方式:在前端后端均对 mime 类型(后台允许的类型)和文件后缀进行校验;
校验内容:不允许后台脚本语言后缀或配置文件上传至服务器( php phtml php5 jsp asp
aspx .htaccess 等)
②使用白名单,限制 mime 类型和后缀,避免其他漏洞(文件包含、逻辑漏洞【例:先上传文件存至服 务器后再移动或修改】)和文件上传配合
③尽量不回显文件名
④对上传的文件重新命名(建议使用随机数)
⑤给上传文件的文件夹赋予最小权限
⑥禁用危险函数,禁用危险方法

-----------------------------------------------------------------------------(如果文章内容有误,麻烦大佬们指点,我会及时改正,如果帮助到了您,麻烦点个赞呗,晚上回)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值