多选题

exec (args, $arr) - 无回显(仅返回最后一行):

A、

回显:无直接回显,函数本身仅返回命令执行的最后一行结果;

B、

关键参数:第二个参数$arr是数组,会存储命令执行的所有行结果(核心利用点);

C、

利用方法:必须通过echo输出返回值,或遍历数组输出所有结果。

D、

下载APP答题
由4l***8i提供 分享 举报 纠错

相关试题

多选题 popen (handle, mode) - 无回显(资源句柄读取)

A、

本质:打开一个 “命令进程的管道”,返回资源句柄(非直接执行结果);

B、

模式:r(读取命令执行的输出)、w(向命令输入内容);

C、

利用方法:需配合fread()/fgets()读取资源句柄的内容。

D、

多选题 任意命令执行的函数有哪些?

A、

system(),passthru()

B、

exec()

C、

shell_exec(),反引号`

D、

popen()

E、

proc_open()

多选题 shell_exec (args) - 无回显(返回所有行结果:

A、

回显:无直接回显,函数返回命令执行的所有行结果(字符串形式);

B、

差异:和exec()相比,无需数组,直接返回完整结果,但仍需echo输出;

C、

利用方法:echo shell_exec(命令)即可看到完整结果。 示例(你的截图对应)

D、

多选题 任意命令执行漏洞怎么判断存在的?

A、靶机是 Linux,http://x.x.x.x/1.php?cmd=ls # 查看当前目录类推
B、靶机是 Win10,http://x.x.x.x/1.php?cmd=dir # 查看当前目录类推
C、 判定标准:页面返回上述命令的原生执行结果(如 dir 显示文件列表、ipconfig 显示网卡信息),说明后端直接将cmd参数的值传给了系统命令解释器(如 Win 的cmd.exe)执行,漏洞存在。
D、Web 命令执行漏洞的本质:是后端代码使用了危险的命令执行函数,PHP 危险命令执行函数:exec()、system()、passthru()、shell_exec()、popen()、proc_open()

多选题 proc_open (cmd, descriptors, pipes) - 无回显(双向管道):

A、

最复杂:创建 “主进程 - 子进程” 的双向管道,支持读写命令的输入 / 输出;

B、

参数: cmd:要执行的命令;

descriptors:文件描述符数组(定义标准输入 / 输出 / 错误);

pipes:存储管道句柄的数组;

C、

利用方法:通过stream_get_contents()读取管道输出。

D、

多选题 反引号 命令 - 无回显(等价 shell_exec):

A、

本质:反引号不是函数,是 PHP 的 “执行运算符”,等价于shell_exec();

B、

回显:无直接回显,执行结果返回为字符串,需echo输出;

C、

利用方法:将命令用反引号包裹,echo 输出即可。

D、

多选题 system简单拼接--双引号包裹参数(需闭合引号)---单引号包裹参数(同理闭合)---实战利用?

A、

B、

C、

D、

多选题 passthru (args) - 纯输出(有回显,适配二进制输出:

A、

回显:直接输出命令执行结果(和system()类似,但无额外处理);

B、

差异:passthru()更适配 “二进制输出”(如执行ls -l的原始字节流),system()会对换行等做格式化;

C、

利用方法:和system()完全一致,Payload 可直接复用;

D、