一招迅速搞定无回显函数shell_exec

本文介绍了在CTF挑战中遇到无回显问题时,如何利用PHP的不同系统命令执行方法(system,shell_exec,exec,passthru)以及通过写入文件来获取命令输出。作者推荐使用写入文件的方式以简化问题解决过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天带大家学习一下在CTF命令执行时遇到无回显怎么办?

这里拿一道题目举例:

这道题是不是很简单,直接?cmd=tac fla???hp不就可以了吗?

后来发现没有回显,于是去查看了下:

PHP执行系统命令的4个方法 :

  1. system 函数:system 函数执行系统命令,并将输出直接打印到标准输出。它的返回值是命令的最后一行输出或者返回状态码(命令成功执行返回0)。

  2. shell_exec 函数shell_exec 函数执行系统命令,但它将命令的输出作为字符串返回,而不是打印到标准输出。如果命令没有输出,则返回空字符串。

  3. exec 函数:exec 函数执行系统命令,并将输出存储到一个数组中,每一行命令输出作为数组的一个元素。它的返回值是命令的最后一行输出或者返回状态码。

  4. passthru 函数:passthru 函数执行系统命令,并直接将命令的输出发送到标准输出。它不会返回任何输出结果,而是直接将输出显示在屏幕上。

这里既然遇到了无回显这个函数,你第一印象是不是NC反弹shell?这样确实可以,但是也太麻烦了些,使用写入文件方式可以迅速解决。

在PHP中  ">"  是表示把什么写入什么文件的意思。

比如这道题目,既然无回显,那我就把它写进一个文件,然后访问这个文件不就可以了

?cmd= tac fla???hp>1.txt(写进1.txt文件里)

接下来直接访问1.txt就解决了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值