Web安全-文件上传漏洞入门看篇就够了

★★免责声明★★
文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

1、简介

任意文件上传漏洞是由于对上传文件未作过滤或过滤机制不严谨(文件后缀或类型),导致恶意用户可以上传脚本文件,通过上传文件可达到控制网站权限的目的。主要有这些危害:攻击者可获得网站控制权限、攻击者可获得网站控制权限、通过提权漏洞可获得主机权限。

2、Webshell

Webshell是一种网页后门,以asp、php、jsp等网页文件形式存在的一种命令执行环境。也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。

Webshell可划分为3类:大马、小马和一句话木马。大马特征是体积大,功能齐全,通常会调用系统的关键函数,以代码加密进行隐藏。小马的特征是体积小,功能小,只有一个上传功能。一句话木马的特征是代码短,只有一行代码,使用非常方便,可单独做一个文件,也可插入其他正常文件中,安全性高、隐匿性强、可变形免杀,基本框架不变,数据执行或数据传递。在文件上传漏洞常用的就是一句话木马。

# php的一句话木马
<?php @eval($_POST['pass']);?>
# asp的一句话木马
<%eval request ("pass")%>
# aspx的一句话木马
<%@ Page Language="Jscript"%> <%eval(Request.Item["pass"],"unsafe");%>

3、漏洞利用

攻击者要满足3个条件才能够成功入侵:

1.木马上传成功且未被杀;

2.知道木马的路径在哪;

3.上传的木马能正常运行(解析)。

部分网站带有文件上传功能,如果这个功能不做过滤或过滤机制不严谨,就能够上传任意文件至服务器。利用这个功能上传木马至服务器,就能够控制对应的服务器。木马上传成功后返回包一般会返回上传木马的路径和文件名。如果上传的是一句话木马,用菜刀或者C刀就可以控制服务器。

对于一些网站有进行上传过滤机制,我们通常可以通过4个方面去绕过:

1.绕过JS验证:

纯前端的验证,利用Burp Suite直接删除掉JS代码之后就可以绕过JS验证,或者利用浏览器的审查工具剔除JS之后,保存为新文件然后进行文件上传。

2.绕过MIME-Type验证:

服务端MIME类型检测是通过检查http包的Content-Type字段中的值来判断上传文件是否合法的。部分网站上传功能只对文件类型做了判断,抓包修改文件类型可绕过限制。如果只允许上传图片,则文件类型可为image/jpeg, image/png等。利用Burp Suite工具截断HTTP请求,在Repeater重放修改MIME-Type类型绕过验证。

3.绕过黑名单验证:

基于文件后缀名验证,只针对黑名单中没有的后缀名的文件才能上传成功。

4.绕过白名单验证:

基于文件后缀名验证,只针对白名单中有的后缀名的文件才能上传成功。

4、webshell管理工具使用

4.1、蚁剑

安装按照文档操作已成功,启动时点/AntSword-Loader-v4.0.3-win32-x64/AntSword.exe , 在主界面的数据管理右击可以添加数据,输入URL/密码,先点测试连接验证一句话木马是否上传成功。
在这里插入图片描述
在这里插入图片描述

4.2、菜刀

不需要安装,解压即可,双击解压目录下的chopper.exe,在主界面添加URL和密码添加,然后双击进入到目标服务器。

注意:菜刀对应连接的网站使用的php版本需要5.x,如果是7.x会连接不成功。蚁剑没有这个问题,如图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5、以DVWA靶场文件上传做实验

5.1、木马上传成功

安全等级选择Low

创建一个onehack.php,内容填充一句话木马

<?php@eval($_POST['自定义密码'])
?>

在这里插入图片描述

5.2、知道木马路径

获取上传的文件路径

http://192.168.242.6/dvwa/hackable/uploads/onehack.php
5.3、木马内容可被解析、执行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6、资料获取

请关注我的公众号:大象只为你,后台回复:webshell管理工具,获取蚁剑和菜刀。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/328955.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【深度学习:Domain Adversarial Neural Networks (DANN) 】领域对抗神经网络简介

【深度学习&#xff1a;Domain Adversarial Neural Networks】领域对抗神经网络简介 前言领域对抗神经网络DANN 模型架构DANN 训练流程DANN示例 GPT示例 前言 领域适应&#xff08;DA&#xff09;指的是当不同数据集的输入分布发生变化&#xff08;这种变化通常被称为共变量变…

【Spring Cloud】关于Nacos配置管理的详解介绍

&#x1f389;&#x1f389;欢迎来到我的CSDN主页&#xff01;&#x1f389;&#x1f389; &#x1f3c5;我是Java方文山&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;推荐给大家我的专栏《Spring Cloud》。&#x1f3af;&#x1f3af; &am…

Linux学习记录——삼십유 传输层TCP协议(1)

文章目录 1、TCP协议报文1、报头和有效载荷的分离2、TCP可靠性3、序号和确认序号4、16位窗口大小5、6个标志位和紧急指针 2、TCP可靠性1、应答机制2、超时重传机制3、连接管理机制握手挥手 3、流量控制 1、TCP协议报文 UDP属于TCP/IP协议族。 1、报头和有效载荷的分离 从头…

Unity中Shader雾效在场景中的调节技巧

文章目录 前言一、修改棋盘格Shader的Cull可以在属性面板控制1、在属性面板定义CullMode2、在SubShader中&#xff0c;使用CullMode3、这样就可以在不同剔除情况下使用棋盘格场景了 二、调节天际线颜色和雾融为一体1、在摄像机设置不渲染天空盒&#xff0c;渲染单一颜色2、采样…

qt自定义控件的封装

刚学了一个很有意思的东西,前面学了list,Tree,Table三大控件和一部分常用基础控件,但感觉没啥意思,就是用别人的直接用,刚学了一个自定义控件的封装,流程如下: 想把两个不相关的组件封装在一块,直接用ui不行,所以先新添加了qt设计师页面,新添加了一个SmallWidget *ui 在smal…

一篇五分生信临床模型预测文章代码复现——Figure 10.机制及肿瘤免疫浸润(十)——Cibersort——完结

之前讲过临床模型预测的专栏,但那只是基础版本,下面我们以自噬相关基因为例子,模仿一篇五分文章,将图和代码复现出来,学会本专栏课程,可以具备发一篇五分左右文章的水平: 本专栏目录如下: Figure 1:差异表达基因及预后基因筛选(图片仅供参考) Figure 2. 生存分析,…

Mybatis-Plus的条件构造器QueryWrapper UpdateWrapper详解

文章目录 1. 引言2. Mybatis-Plus简介3. QueryWrapper3.1 基本用法3.2 动态条件拼接3.3 Lambda表达式的高级用法 4. UpdateWrapper4.1 基本用法4.2 动态条件拼接4.3 Lambda表达式的高级用法 5. 拓展功能与未来展望5.1 动态SQL的使用5.2 自定义条件构造器 6. 总结 &#x1f389;…

DQL命令查询数据(三)

本课目标 掌握MySQL的多表查询 SQL语句的综合应用 多表连接查询 通过各个表之间共同列的关联性&#xff08;例如&#xff1a;外键&#xff09;来查询的 分类&#xff1a; 内连接(INNER JOIN) &#xff0c;可简写为 JOIN&#xff1b;左外连接(LEFT OUTER JOIN)&#xff0c;…

VScode 画图插件

开源免费的插件 随着http://draw.io开源vs code插件之后&#xff0c;它一跃成为最强大的流程图工具。 目前http://draw.io支持3种文件后缀&#xff0c;你只需要新建3种后缀之一的文件就可以在vs code中画流程图&#xff0c;它们分别是&#xff1a; *.drawio*.dio*.drawio.sv…

docker部署simpleDocker

1&#xff0c;安装docker&#xff0c;请参考 linux安装docker 2&#xff0c;安装docker-compose&#xff0c;请参考 Docker-Compose 3&#xff0c;安装simpleDocker 准备docker-compose.yml文件 version: 3 services:redis:container_name: redisimage: redis:latestweb:conta…

7+非肿瘤+WGCNA+机器学习+诊断模型,构思巧妙且操作简单

今天给同学们分享一篇生信文章“Platelets-related signature based diagnostic model in rheumatoid arthritis using WGCNA and machine learning”&#xff0c;这篇文章发表在Front Immunol期刊上&#xff0c;影响因子为7.3。 结果解读&#xff1a; DEGs和血小板相关基因的…

Python笔记02-基础概念、数据类型及字符串格式化

文章目录 字面量注释变量数据类型标识符运算符字符串数据输入 字面量 在代码中&#xff0c;被写下来的固定的值&#xff0c;称之为字面量 Python中常用的有6种值&#xff08;数据&#xff09;的类型 如下变量被直接写在程序中&#xff0c;称之为字面量包括 数字和字符串类型 …