目录

文件上传漏洞利用介绍

1.绕过js验证

2.绕过MIME-TYPE验证

3.绕过基于黑名单验证

基于文件后缀名验证介绍

基于文件后缀名验证方式的分类

基于黑名单验证代码分析

利用apache配置文件.htaccess进行绕过

大小写绕过

空格绕过

点号绕过

特殊符号绕过

路径拼接绕过

双写绕过

4.绕过白名单验证

00截断

5.图片webshell上传绕过


文件上传漏洞利用介绍

1.绕过js验证

js验证代码分析

burpsuit剔除js验证

对于js前端验证,直接删除js代码之后就可以绕过js验证

2.绕过MIME-TYPE验证

验证MEMI-TYPE代码分析

查看源代码分析,使用$_FILE["upload_file"]["type"]获取上传文件的MIME-TYPE类型。其中upload_file是在表单中定义的。

burpsuit绕过MIME-TYPE验证

利用burpsuit工具截断http请求,在repeater重放修改MIME-TYPE类型绕过验证。image/jpeg

3.绕过基于黑名单验证

基于文件后缀名验证介绍

对于文件上传模块来说,尽量避免上传可执行文件。为了防止上传脚本文件需要设置对应的验证方式。最简单的就是设置文件后缀名验证

基于文件后缀名验证方式的分类

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

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

基于黑名单验证代码分析

对于黑名单中的后缀名筛选。绕过黑名单可以通过寻找“漏网之鱼”,

寻找某些可以被作为脚本执行同时也不在黑名单中。

burpsuite绕过黑名单验证

利用burpsuite工具截断http请求,利用intruder模块进行枚举后缀名,寻找黑名单中没有过滤的后缀名。

利用apache配置文件.htaccess进行绕过

htaccess文件是apache服务器的一个配置文件,它负责相关目录下的网页配置。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件拓展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。

SetHandler application/x-httpd-php

设置当前目录下所有文件都使用PHP解析,那么无论上传任何文件,只要文件内容符合PHP语言代码规范,就会当作PHP执行,不符合则会报错。

配置http.conf文件

在apache中如果需要启动.htaccess,必须在http.conf中设置AllowOverride

在黑名单中,没有对.htaccess进行过滤,可以直接上传.htaccess来设置使用php解析任意文件。

制作图片phpinfo探针并上传

<?php

phpinfo();

?>

保存为1.jpg进行上传即可。

大小写绕过

windows系统下,对文件名大小写不敏感,例如:test.php和 TEST.phP是一样的。

linux系统下,对文件名的大小写敏感,例如:test.php和TEST.phP是不一样的。

基于黑名单验证的代码分析

没有利用 strtolower($file_ext)全部转换为小写

可以清晰的看出,黑名单中增加了.htaccess的检验,但是缺少了对上传文件名获取的小写转换

利用burpsuite修改文件名进行绕过

空格绕过

基于黑名单验证的代码分析

没有利用trim($file_ext)去除最后面得空格

windiws系统下,对文件名中空格会被作为空处理,程序中的检验代码却不能自动删除空格。从而绕过黑名单。

针对这样的情况需要使用burpsuite截断http请求后,修改对应的文件名 添加空格。

点号绕过

基于黑名单验证的代码分析

没有利用deldot($file_name)去掉最后面得点

windows系统下,文件后缀名最后一个点会被自动去除

例如 windows下新建一个1.php. 文件,会自动更正为1.php

特殊符号绕过

基于黑名单验证的代码分析

没有利用str_ireplace('::DATA',  ' ' ' ,$file_ext)去除特殊符号。

windwos系统下,如果上传的文件名中test.php::$DATA会在服务器上生成一个test.php的文件,其中内容和所上传的文件内容相同,并且被解析。

利用burpsuite修改文件名进行上传

路径拼接绕过

例如:

新建一个 1.php. .文件,deldot删除最后一个点之后,不能进行删除,trim删除空格,那么最终上传的文件名为1.php. ,利用windows自动去除最后一个点,导致成功上传1.php

双写绕过

基于黑名单验证的代码分析

str_ireplace()函数替换字符串中的一些字符(不区分大小写)

代码编写过程中,只对黑名单中的内容进行空替换,因为只替换一次所以造成双写绕过

例如:1.phphpp

4.绕过白名单验证

00截断

0x00是十六进制表示方法,是ascii为0的字符。在有些函数处理时,会把这个字符当作结束符。

系统对文件名读取时,如果遇到0x00,就会认为读取已结束。

在php5.3之后的版本中完全修复了00截断,并且00截断受限于GPC,addslashes函数。

GET型00截断

GET型提交的内容会被自动进行URL编码

POST型00截断

在POST请求中,%00不会被自动解码,需要在16进制中进行修改00

5.图片webshell上传绕过

在服务器的PHP代码中,对于用户上传的文件做文件类型检验,检查文件格式是否符合上传规范。可以检查文件二进制格式的前几个字节,从而判断文件类型是否正确。

针对这种情况直接新建1.jpg,其中代码内容如下

GIF98A

<?php

phpinfo();

?>

文件包含漏洞代码解析

在PHP中,使用include、require、include_once、require_once函数包含的文件都会被当作PHP代码执行,无论文件的名称是什么,

只要文件内容符合PHP代码规范,都会当作PHP代码执行。

图片webshell需要结合文件包含漏洞一起使用

文件上传漏洞利用介绍相关推荐

  1. kindeditor在服务器上上传图片显示叉叉,什么原因?,kindeditor=4.1.5 文件上传漏洞利用...

    kindeditor<=4.1.5 文件上传漏洞 - Kindeditor <=4.1.5 file upload vulnerability and use 漏洞存影响版本:小于等于4. ...

  2. 【《编辑器篇》kindeditor 文件上传漏洞利用】

    <编辑器篇>kindeditor 文件上传漏洞利用             一.漏洞描述 KindEditor是一套开源的HTML可视化编辑器,其采用的开发语言支持asp.aspx.php ...

  3. 常见文件上传漏洞利用

    常见文件上传漏洞利用 一.常见文件上传绕过方法 1.前端javascript校验文件名 2.MIME类型检测绕过 3.大小写绕过 4.双写.点.空格绕过 5.特殊后缀名绕过 6.文件内容检测 7.使用 ...

  4. FUSE挖掘文件上传漏洞(工具介绍)

    FUSE 简介 FUSE是一款强大的渗透测试工具,可以帮助测试人员在最短时间内找到目标软件系统中存在的文件上传漏洞 FUSE本质上是一个渗透测试系统,主要功能就是识别无限制可执行文件上传(UEFU)漏 ...

  5. [应用漏洞]KindEditor<=4.1.5 文件上传漏洞利用

    一.KindEditor KindEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果 二.漏洞介绍 影响版本:KindEditor 3.5.2~4.1 简介:K ...

  6. (21)【后端黑白名单绕过】【WEB 漏洞利用/原理】不懂原理都是没灵魂的方法躯壳?文件上传漏洞利用过程

    目录 后端黑名单绕过 特殊可解析后缀 原理:就是加上数字等,但是可以被当做原来的类型进行执行 利用过程: .htaccess解析 原理:上传.htaccess文件到指定的目录,重写当前目录下的解析规则 ...

  7. 《编辑器篇》kindeditor 文件上传漏洞利用

    前言~ 只要你静下心来 你能做好绝大多数事情 目录导航 漏洞描述 漏洞条件 实战利用 修补方案 一.漏洞描述 KindEditor是一套开源的HTML可视化编辑器,其采用的开发语言支持asp.aspx ...

  8. 上传漏洞(一句话木马、中国菜刀使用、DVWA文件上传漏洞利用)

    1.常见漏洞分类 2.常见验证手段 可抓包后修改扩展名为图片格式,再上传可绕过验证.如: 可以修改php文件后缀为其他,再上传.如test.php.xxx  可对图片文件添加一句话木马,再修改为.ph ...

  9. php伪协议漏洞,php文件包含+伪协议+文件上传漏洞利用实例

    1.上传文件过滤了后缀名和MIME类型,$_FILES['pic']['type']是由浏览器传输的文件类型决定,但是mime_content_type()是由php 内置方法判断文件类型: 支持文件 ...

最新文章

  1. 现在无法开始异步操作。异步操作只能在异步处理程序或模块中开始,或在页生存期中的特定事件过程中开始...
  2. 一块只要4美元,超廉价版树莓派诞生,还用上了自研芯片
  3. EF-CodeFirst-域模型配置
  4. 多层AOP 解决AOP执行顺序
  5. 大幅涨点!孙剑团队提出新激活层ACON和轻量级网络TFNet
  6. ios 自定义拍照页面_无需解锁也能使用的iOS实用小组件
  7. linux awk 教程,Linux awk使用案例教程
  8. org.apache.ibatis.builder.BuilderException: Could not find value method on SQL annotation
  9. 【POJ - 3026】Borg Maze(bfs预处理 + 最小生成树,建图)
  10. 想在“双十一”做“爆款”?你的数据库存能支撑吗?
  11. 听说你还不懂面向对象??
  12. https防止注入_【缺陷周话】第40期:JSON 注入
  13. 全面介绍单元测试 -转贴
  14. 如何解决mysql数据倾斜_什么是数据倾斜?如何解决数据倾斜?
  15. 广东高等学校计算机水平考试准考证打印,广东高考准考证打印系统
  16. 线程动画屏保小球碰撞c语言,线程小动画之屏保--模仿小球碰撞反弹(一)
  17. mac上禁用复制粘贴
  18. php违章查询源码,ThinkPHP聚合数据违章查询接口
  19. 【中级软考—软件设计师】2操作系统2.6段页式存储【**】:2.6.1页式存储
  20. python爬取网站新闻_Python爬取网站新闻

热门文章

  1. 智能扫地机器人好用吗?优选扫地机器人排名推荐
  2. postgres/pgadmin的使用
  3. 【毕业设计】答 辩 技 巧 一(以一个过来人的身份,祝各位答辩 过 过 过)
  4. androidの手机Email学习总结
  5. linux工作中软件运行安装常见问题
  6. 夜色总是匆匆降临...
  7. 回顾 | OpenAI 入门(一)- OpenAI 基础
  8. 码率控制(一):理解码率控制模式(x264,x264,vpx)
  9. 华为云服务权限在哪_华为云资源IAM精细控制权限实践
  10. 一篇让你熟练掌握Java常用工具包(全网最全)