今天带大家学习一下在CTF命令执行时遇到无回显怎么办?
这里拿一道题目举例:
这道题是不是很简单,直接?cmd=tac fla???hp不就可以了吗?
后来发现没有回显,于是去查看了下:
PHP执行系统命令的4个方法 :
-
system
函数:system
函数执行系统命令,并将输出直接打印到标准输出。它的返回值是命令的最后一行输出或者返回状态码(命令成功执行返回0)。 -
shell_exec
函数:shell_exec
函数执行系统命令,但它将命令的输出作为字符串返回,而不是打印到标准输出。如果命令没有输出,则返回空字符串。 -
exec
函数:exec
函数执行系统命令,并将输出存储到一个数组中,每一行命令输出作为数组的一个元素。它的返回值是命令的最后一行输出或者返回状态码。 -
passthru
函数:passthru
函数执行系统命令,并直接将命令的输出发送到标准输出。它不会返回任何输出结果,而是直接将输出显示在屏幕上。
这里既然遇到了无回显这个函数,你第一印象是不是NC反弹shell?这样确实可以,但是也太麻烦了些,使用写入文件方式可以迅速解决。
在PHP中 ">" 是表示把什么写入什么文件的意思。
比如这道题目,既然无回显,那我就把它写进一个文件,然后访问这个文件不就可以了
?cmd= tac fla???hp>1.txt(写进1.txt文件里)
接下来直接访问1.txt就解决了