韩舒学姐(相当温柔)今天给我们讲解了文件上传漏洞,以及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,集训第六天:文件上传漏洞相关推荐

  1. 微信小程序之使用vant-3组件Uploader文件上传

    效果图: 微信小程序之使用vant-3组件Uploader文件上传 1.把vant的weapp包加进来 2.在app.json文件里面"usingComponents"加载进来才能 ...

  2. 微信小程序开发之——录音播放及文件上传下载-示例(2)

    一 概述 开始播放和暂停播放按钮,演示音频的播放和暂停功能 开始播放时,先下载服务器上的文件(1.mp3),然后进行播放 录音.停止.回放按钮,演示录音API的相关功能 上传按钮将录音文件上传到后台h ...

  3. 将文件上传至ftp服务器,FTP文件上传工具类,将文件上传至服务器指定目录

    将文件上传至ftp服务器,传入File对象,将文件上传至ftp服务器 需要配置修改的点: 1. 服务器ip端口(服务器ip 端口22/21). 2. 服务器账号密码(服务器登录用户名密码). 3. 上 ...

  4. php dw文件上传下载,使用PHP实现文件上传

    这里使用PHP实现文件的上传,由在浏览器这边选择文件,上传到服务器.其中,在上传文件中,考虑到对上传文件大小的限制.类型限制等问题.(当然可以根据我们需要修改对上传的文件的限制,而一般而言php自身也 ...

  5. lumen 支持多文件上传及php 原生多文件上传

    1.webform (注意:name后面一定要加[]号) <form method="post" enctype="multipart/form-data" ...

  6. themyleaf 图片上传_javaEE --springboot #实现图片上传和回显 #单文件上传 #多文件上传 #ajax异步文件上传 (非常详细,从创建项目开始)...

    实现文件上传和回显 1.新建一个SpringBoot项目,选择 Spring Web 和 thymeleaf 依赖 .pow.xml文件下的依赖如下 2.根据下图,创建如下文件 3.直接上代码 配置文 ...

  7. 解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题

    解决阿里云oss文件上传部分MP4格式视频文件上传导致上传崩溃问题 问题描述 java程序,使用阿里云oss文件上传服务,在测试时偶然发现,我用苹果手机开启高清进行摄像,将原图通过qq传到电脑上,在电 ...

  8. jquery 文件上传插件_10个jQuery文件上传插件

    jquery 文件上传插件 这篇热门文章于2016年7月更新,以反映文件上传插件的当前状态. 有关旧文章的评论已删除. 使用Ajax实施文件上传可能非常困难,特别是如果您需要拖放支持,图像预览或进度条 ...

  9. 上传txt生成字典 java_文件上传漏洞fuzz字典生成脚本小工具分享

    前言 学习xss的时候翻阅资料发现了一个文件上传漏洞fuzz字典生成脚本小工具,试了试还不错,分享一下 配置 需要python2环境 使用方法 $ python upload-fuzz-dic-bui ...

最新文章

  1. 梯度算法求步长的公式_LM(Levenberg-Marquarelt)算法
  2. 为什么AI的翻译水平还远不能和人类相比?
  3. Template Method (C++实现)
  4. html5页面常用的代码,最全的 HTML5 知识汇总
  5. BigDecimal去除末尾多余的0
  6. 设置调试PHP,debug php输出所有错误信息
  7. 下拉菜单,防鼠标反复触发
  8. Java并发编程-BlockingQueue阻塞队列
  9. python怎么设置为中文-python怎么变成中文版
  10. 用CSS实现花里胡哨的按钮切换效果
  11. 二分查找边界问题总结
  12. 跟着Vam一起学习Typescript(第一期)
  13. 前沿技术,目前为止功能最全最强大的PLC智能远程模块,物联网模块
  14. [开源]爱发布类似fir.im和蒲公英的App发布平台
  15. 【Linux】echo打印命令
  16. 【HTML基础】第一课、Web前端的概述
  17. 蓝桥杯真题:分巧克力
  18. 增长率超 100%!东软数据可视化到底什么样?
  19. js MD5的6种实现方式
  20. 百度(baidu)、bing、sogo、360关键字 - 图片批量下载

热门文章

  1. 数美科技CEO唐会军受聘中国信通院互联网新技术新业务安全评估中心高级评估专家
  2. 工作型PPT设计的10大建议
  3. 东北师范大学文艺学考研成功上岸经验分享
  4. 网上阅卷软件测试初学者,如何对网上阅卷系统的进行比较测试
  5. [Linux入门系列].1.1.虚拟机
  6. 简单易用的PDF转SVG程序
  7. 2021-08-27 python 安装
  8. html5中的表格和表单总结
  9. unity--期末大作业--3D汽车模拟驾驶
  10. java 传递对象_关于Java对象作为参数传递是传值还是传引用的问题