dvwa小马上传大马php,集训第六天:文件上传漏洞
韩舒学姐(相当温柔)今天给我们讲解了文件上传漏洞,以及Anrwsord和Cknife等工具的使用。
上传的文件不进行限制,有可能会被利用于上传可执行文件、脚本到服务器上,并且通过脚本文件可以获得执行服务器端命令的能力
木马
根据语言分类,有PHP、ASP、JSP、ASP.NET等不同语言下的木马;根据作用分类,有大马和小马
PHP一句话木马:
ASP一句话木马:
ASP.NET一句话木马:
shell_exec()
通过环境执行命令,并且将完整的输出以字符串的方式返回
eval()
把字符串作为PHP代码执行执行a接收到的内容
Cknife(菜刀)
超级强大的网站管理工,分为客户端和代码两部分
只要将那简短的一句话代码放到网站上去就可以取得网站的权限
运行环境:安装了JRE1.7+环境的所有操作系统
主要功能:文件管理、虚拟终端、数据库管理
DVWA’s File Upload
low level的测试一下,源码中没有对任何文件格式进行过滤:
写出一句话木马
用菜刀连接的一句话木马:
直接在网页下通过GET的一句话木马:
在网页下用hackbar通过POST的一句话木马:
上传一句话木马直接在网页查到文件
get
post
Cknife连接
连接后可以得到目标服务器下所有文件
源码:
if (isset($_POST[‘Upload’])) {
$target_path =
DVWA_WEB_PAGE_TO_ROOT."hackable/uploads/";
//上传路径为../../hackable/uploads/
$target_path = $target_path . basename( $_FILES['uploaded']['name']);
//上传路径加上上传的文件名
if(!move_uploaded_file($_FILES['uploaded']['tmp_name'],$target_path)) {
//对是否上传成功做出判断,因此所有格式的文件都能上传
echo '
';
echo 'Your image was not uploaded.';
echo '
';
} else {
echo '
';
echo $target_path . ' succesfully uploaded!';
echo '
';
}
}
?>
文件上传漏洞检测
客户端javascript检测:通常在本地检测文件的扩展名
服务端MIME类型检测:通常检测的是Content-Type内容
服务端目录路径检测:通常根path参数相关的内容
服务端文件扩展名检测:通常检测跟文件extension相关的内容
服务端文件内容检测:检测文件内容是否合法或含有恶意代码
客户端javascript检测
在客户端使用js对不合法图片进行检查
绕过:
禁用页面js
先把文件改成符合条件的文件格式上传,在抓包,修改文件的后缀名
服务端检测绕过(MIME类型检测)
通过判断$_FILES[‘userfile’][‘type’]!=”imgae/gif”来保证上传的文件类型为gif
绕过:通过burp抓包,将原来的Content-Type类型改为符合要求的类型
Content-Type: application/octet-stream
application/octet-stream即为PHP文件的文件类型格式
服务端目录路径检测
上传路径为“/image/20160704”时,可以通过修改为“image/20160704/eval.PHP%00filename.gif”
通过%00截断最终导致存储的文件名为eval.PHP
服务端文件扩展名检测
分为黑名单检测和白名单检测
黑名单检测
接收上传的文件做对比,如果匹配到黑名单中的后缀名,则不允许上传
绕过:
后缀名大小写绕过,例如:将Burpsuite截获的数据包中的文件名“evil.PHP”改“evil.PHP”
名单列表绕过,尝试使用非黑名单内的后缀名,如PHP5,PHP7等
特殊文件名绕过(只适用windows,将文件名改为“evil.PHP.”或“evil.PHP”(注意这里有一个空格)。在windows下,不允许这样的命 名,所以会将.和空格自动去掉)。
0x00截断绕过:在上传的时候,当文件系统读到0x00时,会认为文件已经结束。例如:“1.PHP%00.jpg”,验证扩展名是“.jpg”,但写入的时候是“1.PHP”文件
白名单检测
接收上传的文件做扩展名匹配,匹配上的白名单中的扩展名的文件才能上传
绕过:
0x00阶段绕过
解析漏洞绕过:(1)apache解析文件名是从右到左识别扩展名,如“eval.PHP.jpg”,文件为PHP文件,不能解析jpg会向前解析PHP
(2)IIS6.0目录名包含“.asp、.asa、.cer”的话,则该目录下的所有文件都将按照asp解析。
(3)IIS6.0不解析;后面的,所以提交“evil.asp;.html”解析为asp类型
(4)Nginx解析漏洞:将PHP文件换成其他可以通过的文件后缀,访问的时候在后面加上“eval.PHP.jpg”,如“evil.jpg/.PHP”,“evil.jpg”会解析为PHP的格式
服务端文件内容检测
图像类文件内容检测
文件幻数检测(图片头格式检测):
(1)jpg内容头value= FF D8 FF E0 00 10 4A 46 49 46
(2)gif内容头value= 47 49 46 38 39 61
(3)png内容头value= 89 50 4E 47
绕过:在文件头后加上一句话木马就能绕过
dvwa小马上传大马php,集训第六天:文件上传漏洞相关推荐
- 微信小程序之使用vant-3组件Uploader文件上传
效果图: 微信小程序之使用vant-3组件Uploader文件上传 1.把vant的weapp包加进来 2.在app.json文件里面"usingComponents"加载进来才能 ...
- 微信小程序开发之——录音播放及文件上传下载-示例(2)
一 概述 开始播放和暂停播放按钮,演示音频的播放和暂停功能 开始播放时,先下载服务器上的文件(1.mp3),然后进行播放 录音.停止.回放按钮,演示录音API的相关功能 上传按钮将录音文件上传到后台h ...
- 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录
将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...
- php dw文件上传下载,使用PHP实现文件上传
这里使用PHP实现文件的上传,由在浏览器这边选择文件,上传到服务器.其中,在上传文件中,考虑到对上传文件大小的限制.类型限制等问题.(当然可以根据我们需要修改对上传的文件的限制,而一般而言php自身也 ...
- lumen 支持多文件上传及php 原生多文件上传
1.webform (注意:name后面一定要加[]号) <form method="post" enctype="multipart/form-data" ...
- themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...
实现文件上传和回显 1.新建一个SpringBoot项目,选择 Spring Web 和 thymeleaf 依赖 .pow.xml文件下的依赖如下 2.根据下图,创建如下文件 3.直接上代码 配置文 ...
- 解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题
解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题 问题描述 java程序,使用阿里云oss文件上传服务,在测试时偶然发现,我用苹果手机开启高清进行摄像,将原图通过qq传到电脑上,在电 ...
- jquery 文件上传插件_10个jQuery文件上传插件
jquery 文件上传插件 这篇热门文章于2016年7月更新,以反映文件上传插件的当前状态. 有关旧文章的评论已删除. 使用Ajax实施文件上传可能非常困难,特别是如果您需要拖放支持,图像预览或进度条 ...
- 上传txt生成字典 java_文件上传漏洞fuzz字典生成脚本小工具分享
前言 学习xss的时候翻阅资料发现了一个文件上传漏洞fuzz字典生成脚本小工具,试了试还不错,分享一下 配置 需要python2环境 使用方法 $ python upload-fuzz-dic-bui ...
最新文章
- 梯度算法求步长的公式_LM(Levenberg-Marquarelt)算法
- 为什么AI的翻译水平还远不能和人类相比?
- Template Method (C++实现)
- html5页面常用的代码,最全的 HTML5 知识汇总
- BigDecimal去除末尾多余的0
- 设置调试PHP,debug php输出所有错误信息
- 下拉菜单,防鼠标反复触发
- Java并发编程-BlockingQueue阻塞队列
- python怎么设置为中文-python怎么变成中文版
- 用CSS实现花里胡哨的按钮切换效果
- 二分查找边界问题总结
- 跟着Vam一起学习Typescript(第一期)
- 前沿技术,目前为止功能最全最强大的PLC智能远程模块,物联网模块
- [开源]爱发布类似fir.im和蒲公英的App发布平台
- 【Linux】echo打印命令
- 【HTML基础】第一课、Web前端的概述
- 蓝桥杯真题:分巧克力
- 增长率超 100%!东软数据可视化到底什么样?
- js MD5的6种实现方式
- 百度(baidu)、bing、sogo、360关键字 - 图片批量下载