CTFHub | php://input

0x00 前言

        CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。

        

        

0x01 题目描述

php://input:

        (无)

网页显示内容

        

        

0x02 解题过程

简单分析网页显示内容中的源代码,判断如果参数以 php:// 开头,那么执行 include 函数将参数值作为文件包含进来。否则,输出字符串 Hacker!!! 。

        

点击 phpinfo 超链接查看跳转到 php 版本页面。

        

使用 file 查看 php://input ,页面提示“我没有 shell ,我该怎么获得 flag 。”使用 file 查看 111 , 222 , phpinfo.php 都是跳转到这样的页面,说明网页可能存在文件包含。但是加上了 hacker!!! 因为我们没有用 php://input 去查看,所以会返回否则中的代码块。

http://challenge-989244bb6f61e22b.sandbox.ctfhub.com:10800/?file=php://input

        

其实这个文件包含漏洞,我们需要访问到对方目标文件的 flag 文件即可获得,我们需要使用 file 在目标 url 中访问 php://input 去执行文件包含。那么接下来就可以使用抓包工具抓取,并发送到重放器中。

         

在重放器中修改 GET 请求为 POST 请求,使用参数 <?PHP system("ls /"); ?> 就可以查看到目标站点中的文件,其中 system 是目标系统,括号中的内容执行命令。

<?PHP system("ls /"); ?>

        

使用 cat 命令查看 flag_20145 文件发现此题 flag 。

<?php system("cat /flag_20145"); ?>

         

         

0x03 php://input

0x1 相关 PHP 伪协议

        php://input 是 php 语言中一个只读的数据流,通过 "php://input" ,可以读取从 HTTP 客户端以 POST 方式提交的所有数据。

php://filter是 PHP 内置的过滤器流,可以读取源代码,并过滤输出
php://output是一个只写的数据流, 可以通过 print 和 echo 一样的方式写入到输出缓冲区。
php://input可以访问请求的原始数据的只读流,可以通过 POST 请求执行 PHP 代码

        注意:php://input 需要开放 allow_url_include 。

        

0x2 file://协议

file:// 协议主要用于访问本地文件,在双 off 的情况下也可以正常执行。

allow_url_fopen :off / on
allow_url_include:off / on

        

        

0x04 参考文献

[1].xq17. 浅析php文件包含及其getshell的姿势[EB/OL]. [2023-06-08]. https://xz.aliyun.com/t/5535.

[2].My_Dreams. php伪协议总结[EB/OL]. [2023-06-08]. https://www.cnblogs.com/zzjdbk/p/13030717.html.

        

        

0x05 总结

文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/29489.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

selenium:元素定位之xpath、css

元素定位是在做UI自动化测试中最重要的一环&#xff0c;要牢牢掌握定位的方法&#xff0c;才能更有效率的进行UI自动化测试。 常见的元素定位方式&#xff1a; idnametag_nameclass_namelink_textpartial_link_textxpathcss 其中id&#xff0c;name是具有唯一性的&#xff0…

用HTML5制作精美战机游戏

每天要被大学老师催H5作业&#x1f44f;&#x1f3fb;&#x1f44f;&#x1f3fb;&#x1f44f;&#x1f3fb; 不如看看本文&#xff0c;代码齐全&#xff0c;直接用来做参考案例&#x1f44c;&#x1f3fb; 干货满满不看后悔&#x1f44d;&#x1f44d;&#x1f44d; 代码…

最终版:1分钟自动部署数字人平台并提供web服务:唇形合成(wav2lip) + 超分修复(codeformer),

Demo效果 本文实现步骤:数字人形象(AI绘画) -> 文字转语音(谷歌tts) -> 表情迁移 -> 唇形合成 -> 视频超分 上述步骤所有技术均已在此专栏发布,可点击上方专栏查看具体博文 所有技术依赖环境及api接口均封装打包完毕,使用docker一键部署,预计耗时10分钟 原图 …

【unity】URP的shader开发中支持多光源,_ADDITIONAL_LIGHTS_VERTEX 和 _ADDITIONAL_LIGHTS 区别

项目里有一个其他同事实现的shader&#xff0c;美术那边希望能支持多个光源&#xff0c; 我一看代码里面&#xff0c; frag 函数里已经实现了 #ifdef _ADDITIONAL_LIGHTSuint pixelLightCount GetAdditionalLightsCount();for (uint lightIndex 0u; lightIndex < pixelL…

开源软件介绍——开源基金会和开源许可证

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来看一看世界范围内知名的开源基金会和开源许可证。 开源基金会 基金会是开源生态中的一个重要组成部分&#xff0c;用于资金的筹集与开源项目的前期资助与后期的发展。这里将介绍部分重要基金会&am…

阿里云备案服务码申请方法流程

阿里云备案服务码是什么&#xff1f;ICP备案服务码怎么获取&#xff1f;阿里云备案服务码分为免费和付费两种&#xff0c;申请备案服务码是有限制条件的&#xff0c;需要你的阿里云账号下有可用于申请备案服务码的云产品&#xff0c;如云服务器、建站产品、虚拟主机等&#xff…

Nginx+Tomcat负载均衡、动静分离群集

文章目录 NginxTomcat负载均衡、动静分离群集一.Nginx应用二.部署案例过程&#xff08;7层反向代理&#xff09;关闭防火墙与selinux 1.部署Nginx负载均衡器&#xff08;7-3&#xff09;2.部署Tomcat应用服务器&#xff08;7-2&#xff09;3.部署Tomcat多实例应用服务器&#x…

简单学生管理系统

简单学生管理系统(Java)_封奚泽优的博客-CSDN博客https://blog.csdn.net/weixin_64066303/article/details/130667107?spm1001.2014.3001.5501 转载请注明出处&#xff0c;尊重作者劳动成果。 目录 前期准备&#xff1a; 数据库的连接&#xff1a; 用户账号类&#xff1a;…

集权设施管理-AD域安全策略(二)

活动目录&#xff08;AD&#xff09;凭借其独特管理优势&#xff0c;从众多企业管理服务中脱颖而出&#xff0c;成为内网管理中的佼佼者。采用活动目录来管理的内网&#xff0c;称为AD域。 了解AD域&#xff0c;有助于企业员工更好地与其它部门协作&#xff0c;同时提高安全意…

【游戏编程扯淡精粹】工作第三年总结

工作第三年总结 文章目录 工作第三年总结#1 做了什么自研路线Lua 脚本系统ToolX #2 职业发展如何做事技术中台化内卷的职业市场个人成长 #3 心态建设Owner vs 打工人 今年仍然是个人成长视角更多一些&#xff0c;额外新学到的重点是&#xff0c;借助团队力量 先介绍两个词&…

python生成日报

目录 一&#xff1a;日报生成工具二&#xff1a;日报工具使用方式三&#xff1a;最终日报生成展示 一&#xff1a;日报生成工具 #!/usr/bin/python # coding:utf8class GetHtml(object):def __init__(self):self._html_head """<html><body style&qu…

线性神经网络

线性神经网络 我们应该从线性神经网络开始&#xff0c;去逐步了解深度神经网络&#xff08;深度学习&#xff09;的各种复杂结构和底层原理。 1. 线性回归 用一个线性的模型来拟合数据与它们的标签之间的映射&#xff0c;用于回归问题。 1.1 构造线性模型&#xff1a; y ω…

Hibernate框架【一】——HIbernate框架介绍

系列文章目录 Hibernate框架【三】——基本映射——一对一映射 Hibernate框架【四】——基本映射——多对一和一对多映射 Hibernate框架【五】——基本映射——多对多映射 Hibernate框架介绍 系列文章目录前言一、什么是HIbernate框架Hibernate架构图Hibernate提供的核心功能和…

MIT 6.S081 (BOOK-RISCV-REV1)教材第三章内容

MIT 6.S081 教材第三章内容 引言页表分页硬件内核地址空间物理内存分配代码&#xff08;物理内存分配&#xff09;kinit函数kfree函数kalloc函数 代码&#xff1a;创建一个地址空间kvminit 函数kvmmap函数walk函数kvminithart函数procinit函数 进程地址空间代码&#xff1a;sbr…

Java企业级开发学习笔记(4.4)Spring Boot加载自定义配置文件

一、使用PropertySource加载自定义配置文件 1.1 创建Spring Boot项目 创建Spring Boot项目 单击【创建】按钮 1.2 创建自定义配置文件 在resources里创建myconfig.properties文件 设置文件编码 设置学生的四个属性值 1.3 创建自定义配置类 在cn.kox.boot包里创建confi…

npm发布自己的包

按照上面流程操作

App 启动速度优化

前言​​​​​​​ APP打开的一瞬间速度快慢&#xff1b;就好比人的第一印象&#xff0c;快速的打开一个应用往往给人很舒服的体验。app经常性卡顿启动速度很慢&#xff0c;这无疑是对用户的流失。 启动方式介绍 APP启动的方式分为3种&#xff1a;冷启动、热启动、温启动。…

【服务器数据恢复】RAID5重建导致数据丢失的数据恢复案例

服务器数据恢复环境&#xff1a; HP某型号服务器&#xff0c;5块硬盘组建了一组raid5磁盘阵列。 服务器故障&分析&#xff1a; 服务器在工作过程中&#xff0c;raid5磁盘阵列中的一块磁盘掉线&#xff0c;由于raid5的容错特点&#xff0c;raid阵列未受影响&#xff0c;工作…

服务网格领域的百花齐放,是否存在一个更优解?

作者 lingsamuel&#xff0c;API7.ai 云原生技术专家&#xff0c;Apache APISIX Committer。作者 林志煌&#xff0c;API7.ai 技术工程师&#xff0c;Apache APISIX contributor。 服务网格是一种技术架构&#xff0c;它用于管理微服务系统中各个服务之间的通信&#xff0c;旨在…

Spring MVC入门笔记

Spring MVC基础知识 1. 创建web应用 新建Maven项目 点击File -> Project Structure -> Facets -> 号 -> Web 修改文件描述符路径为硬盘:\项目名\src\main\存储页面的文件夹&#xff08;如&#xff1a;webapp&#xff09;\WEB-INF\web.xml 修改Web页面路径为硬盘…