首页 > 其他分享 >CTF中文件包含漏洞

CTF中文件包含漏洞

时间:2023-11-30 17:14:36浏览次数:36  
标签:文件 php 包含 require 漏洞 CTF PHP include

0x01 什么是文件包含漏洞

通过PHP函数引入文件时,传入的文件名没有经过合理的验证,从而操作了预想之外的文件,就可能导致意外的文件泄漏甚至恶意代码注入。


0x02 文件包含漏洞的环境要求
allow_url_fopen=On(默认为On) 规定是否允许从远程服务器或者网站检索数据
allow_url_include=On(php5.2之后默认为Off) 规定是否允许include/require远程文件

0x03 常见文件包含函数
php中常见的文件包含函数有以下四种:

include()
require()
include_once()
require_once()
include与require基本是相同的,除了错误处理方面:

include(),只生成警告(E_WARNING),并且脚本会继续
require(),会生成致命错误(E_COMPILE_ERROR)并停止脚本
include_once()与require_once(),如果文件已包含,则不会包含,其他特性如上

0x04 PHP伪协议
PHP 提供了一些杂项输入/输出(IO)流,允许访问 PHP 的输入输出流、标准输入输出和错误描述符, 内存中、磁盘备份的临时文件流以及可以操作其他读取写入文件资源的过滤器。

一、php://input
php://input可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。从而导致任意代码执行。


Example1

 

 

注:利用php://input还可以写入php木马,即在post中传入如下代码:

<?php  fputs(    fopen('shell.php','w')   ,     '<?php @eval($_POST[cmd])?>'     )    ;?>

二、

标签:文件,php,包含,require,漏洞,CTF,PHP,include
From: https://www.cnblogs.com/smallhuang/p/17867789.html

相关文章

  • vulhub中spring的CVE-2018-1273漏洞复现
    ​ 1.影响版本SpringDataCommons1.13-1.13.10(IngallsSR10)SpringDataREST2.6-2.6.10(IngallsSR10)SpringDataCommons2.0to2.0.5(KaySR5)SpringDataREST3.0-3.0.5(KaySR5)2.漏洞原理SpringData是一个用于简化数据库访问,并支持云服务的开源框......
  • 【渗透工具】红蓝对抗重点OA系统漏洞利用工具新年贺岁版 发布!
    免责声明本公众号的技术文章与工具仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责......
  • Nacos 认证绕过漏洞
    Nacos认证绕过漏洞(CVE-2021-29441)Nacos是阿里巴巴推出的一个新开源项目,是一个更易于构建云原生应用的动态服务发现,配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。该......
  • 解决VS编译C++时,该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Uni
    使用VS编译C++时,报错: warningC4819:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为Unicode格式以防止数据丢失。利用VS的高级保存选项,修改合适的编码规则即可解决,最新版VS需要手动添加高级保存选线的命令,方法如下:打开工具-->自定义 选择命令-->选择添......
  • [SUCTF2018]followme
    [SUCTF2018]followme看起来像是在做渗透测试的时候抓的包,导出所有HTTP对象大部分是类似这种的文件login%3f_=6975b9a9f7a359d322e06c0e28db112blogin.php%3freferer=http%3A%2F%2F192.168.128.145%2Fbuild%2Fadmin%2F<!DOCTYPEHTML><htmlclass="no-js"><head>......
  • XCTF-pwn-hello_pwn
    这几天在尝试入门,学习pwn的知识点,这是我关于pwn入门做的第一道题目,学习pwn需要很多的前置知识,并且需要一些环境,这里大概描述一下需要什么拥有C语言基础看懂简单的汇编代码拥有一些python基础,需要使用到pwntools拥有linux的基础,能够正常使用linux终端简单熟悉ida拥有上面的......
  • DASCTF 2023 & 0X401七月暑期挑战赛-web复现
    别问为什么不复现十一月的那个比赛,因为不会wwwww。EzFlask进去就有源码了,先cv到编辑规范看一下:importuuidfromflaskimportFlask,request,session,jsonfromsecretimportblack_listapp=Flask(__name__)app.secret_key=str(uuid.uuid4())defcheck(data):......
  • Web_XCTF_WriteUp | baby_web
    题目提示:想想初始页面是哪个题目:分析看到提示首先想到的是把/1.php删掉:但还是回到这里。打开F12再跑了一遍,拦截到三个包:检查每个包,在302状态码包里找到flag:Flagflag{very_baby_web}参考HTTP状态码-菜鸟教程......
  • ISCTF 逆向题解
    ISCTF逆向题解用一个晚上的时间看了看ISCTF,有的题还蛮难的(毕竟得嘎嘎猜出题人想法)CrackMewinhex打开exe,修改标识头PFX为UPX然后放进UPXshell里面试试脱了,放进ida,直接反编译得到flagEasyReexeinfo看看这个是什么64位,放进ida反编译得到一段很清晰的逻辑反转+异或+单表代换。。。......
  • SQLSERVR 查询包含某个字符的存储/视图/表
    selectnamefromsysobjectso,syscommentsswhereo.id=s.idandtextlike'%是否生成SN%'ando.xtype='P'--查询特定的表(字段或者文字)在哪些存储过程中被使用SELECTDISTINCTOBJECT_NAME(id)--,textFROMsyscommentsWHEREidIN(SELECTidFROMsysobjectsWHEREt......