首页 > 编程语言 >Web_XCTF_WriteUp | Web_php_include

Web_XCTF_WriteUp | Web_php_include

时间:2023-12-04 14:44:21浏览次数:47  
标签:Web include 博客园 PHP php 代码

题目

分析

对 php 代码进行分析:

<?php                                        // php开头
show_source(__FILE__);                       // 对当前源文件进行高亮显示
echo $_GET['hello'];                         // 收集get表单中hello的数据输出
$page=$_GET['page'];                         // 将get表单中page的数据赋给变量page
while (strstr($page, "php://")) {            // 当page变量中含有字符串“php://”则进入循环。strstr查找“php://”在page变量中是否存在
    $page=str_replace("php://", "", $page);  // 将page变量中的“php://”删去
}
include($page);                              // 在服务器执行PHP文件之前插入page变量内容
?>                                           // php结尾

代码中有 include() 函数,猜测是文件包含漏洞。


代码里有对 PHP 流 php:// 的过滤,虽然不清楚这里的 PHP 版本,但先试试 data:// 封装器:

URL 编码一次:

提交执行:

确定当前 PHP 版本为 5.3.10。


通过 data:// 数据流 + php 命令执行函数查询当前工作目录下的内容(二选一):

URL 编码后执行:


根据文件名猜测 flag 在 fl4gisisish3r3.php 文件中,更改 php 命令打开文件:

编码执行结果:

拿到 flag。

使用 system() 命令同理。


看大佬的 WP 提到可以根据 strstr()str_replace() 对大小写的敏感差异采用 PHP:// 绕过过滤,试了一下发现不行,原因不明:

Flag

ctf{876a5fca-96c6-4cbd-9075-46f0c89475d2}

参考

PHP 教程-菜鸟教程
PHP 代码审计-CTF Wiki
PHP伪协议总结-我汤姆要报警了-SegmentFault思否
当我们看到phpinfo时在谈论什么-春告鳥-博客园
PHP中常见的命令执行函数与代码执行函数_-passthru-CSDN
CTF-WEB:PHP 伪协议-乌漆WhiteMoon-博客园
攻防世界-Web_php_include (四种解法)-笑花大王-博客园

标签:Web,include,博客园,PHP,php,代码
From: https://www.cnblogs.com/Guanz/p/17864620.html

相关文章

  • ESXI6.0怎样使用web登陆
    在一次巡检发现Esxi主机证书快要过期了,准备刷新证书的时候才发现,Esxi6.0主机默认是没有开启web管理界面的,通过web访问,只有vSphere下载,没有openwebclient。在网上找了不少资料才发现,原来Esxi6.0使用web界面需要先安装对应的插件才行。如果可以联网,则开启SSH后可以直接安装先......
  • unity里也能输出 webgl的项目,怎么看出这个项目是不是unity输出的,还是纯web技术写的项
    在Unity中输出为WebGL项目后,可以通过以下几种方式来判断一个项目是不是由Unity输出的:1.文件结构:Unity输出的WebGL项目通常会生成一些特定的文件和文件夹,例如"Build"文件夹、"index.html"文件等。如果你在项目文件夹中看到这些文件和文件夹,那么很可能是Unity输出的WebGL项目。2.......
  • 《最新出炉》系列初窥篇-Python+Playwright自动化测试-35-处理web页面定位toast-上篇
    1.简介在使用appium写app自动化的时候介绍toast的相关元素的定位,在WebUI测试过程中,也经常遇到一些toast(出现之后一闪而过,不留下一点点痕迹),那么这个toast我们这边如何使用playwright进行定位测试呢?今天宏哥就分两篇介绍一下。2.什么是toast?Android中的Toast是一种简易的消......
  • JavaWeb实现文件上传和下载
    环境配置:导入依赖jar包。commons-fileupload-1.4.jarcommons-io-2.6.jar上传表单的enctype属性enctype属性规定在发送到服务器之前应该如何对表单数据进行编码。语法<formenctype="value">1属性值值 描述application/x-www-form-urlencoded 在发送前编码所有字符(默认)multipart/......
  • php8自定义扩展
    1:进入php源码目录下的ext.如/usr/local/php-8/ext2.生成自定义扩展的名字phpext_skel.php--extpython3.撰写函数原型,编辑python.stub.php3.1默认是test1,test2<?php/**@generate-function-entries*/functionall(array$arr):bool{}function......
  • kore可扩展安全的Web 应用程序框架
    kore是基于c开发的web框架,可以让我们使用c以及python开发webapi,主要的特点是安全以及可扩展主要特性SNI支持http1.1支持websocket支持默认TLS支持可选后台任务内置参数校验基于acme的自动https权限分离设计可选异步pg访问模块热加载worker进程沙箱支持(基于pledge以及s......
  • 一些基于webassembly 的serverless 框架
    基于webassembly的一些serverless框架是比较多的,以下是以下参考,基本上基于rust开发的比较多,当然也有基于golang的参考资料https://wasmcloud.com/https://scale.sh/https://github.com/loopholelabs/scalehttps://github.com/wasmCloud/wasmCloudhttps://github.com/vmware-lab......
  • Spin 基于rust 开发的开源运行基于webassembly serverless 工具
    spin是基于rust开发的,可以用来开发以及运行基于webassemblyserverless服务的工具包含的特性提供了周边扩展 默认wasm只提供了基本类型的支持,wasm提供了不少扩展可以方便的支持不同语言的调用(比如网络,数据库访问)提供了快速应该开发的cli提供了服务部署的能力 包含了本地测试......
  • wasmer 基于webassembly 的平台
    wasmer基于webassembly的平台,目前包含了runtime,registry,edge等组件说明wasmer属于一个插件化的设计,目前支持wasix,wasi以及Emscripten,同时还提供了不少语言sdk方便代码嵌入同时wasmer也提供了就很不错的性能,很值得学习试用下参考资料https://docs.wasmer.io/https://docs.wa......
  • PHP中对象是按值传递还是按引用传递?
    PHP中对象是按值传递还是按引用传递?1.首先,什么是按值传递和按引用传递?按值传递就是仅仅把值传递过去,相当于传递的是值的拷贝,而按引用传递传递的是内存的地址。在PHP中,如果按引用传递,就是将zval的地址赋给另一个变量,这时,两个变量都指向同一个zval。而按值传递则是复制一个......