php - 执行带有 "Program execution Functions"的二进制字符串(exec、system 等...)

标签 php c exec passthru halt

是否可以使用“程序执行函数”(exec、system 等...)执行二进制字符串?

http://php.net/manual/en/ref.exec.php

例如,以下文件是一个带有二进制“hello, world”程序的 php 脚本。它最初是用 C 编写的:

<?php
$file = fopen(__FILE__, 'rb');
fseek($file, __COMPILER_HALT_OFFSET__);
$lastLineFromResult = exec(stream_get_contents($file), $output, $returnVar);
print_r([$lastLineFromResult, $output, $returnVar]);
__halt_compiler();
ELF\00\00\00\00\00\00\00\00\00\00>\00\00\00\00@\00\00\00\00\00@\00\00\00\00\00\00\00\A8\00\00\00\00\00\00\00\00\00\00@\008\00\00@\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00@\00@\00\00\00\00\00@\00@\00\00\00\00\00\C0\00\00\00\00\00\00\C0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00@\00\00\00\00\00\DC\00\00\00\00\00\00\DC\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\E0\00\00\00\00\00\00\E0`\00\00\00\00\00\E0`\00\00\00\00\000\00\00\00\00\00\008\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\F8\00\00\00\00\00\00\F8`\00\00\00\00\00\F8`\00\00\00\00\00\D0\00\00\00\00\00\00\D0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00@\00\00\00\00\00D\00\00\00\00\00\00\00D\00\00\00\00\00\00\00\00\00\00\00\00\00\00P\E5td\00\00\00\B4\00\00\00\00\00\00\B4@\00\00\00\00\00\B4@\00\00\00\00\004\00\00\00\00\00\00\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00Q\E5td\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00/lib64/ld-linux-x86-64.so.2\00\00\00\00\00\00\00\00\00\00GNU\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00GNU\00\91pd;4T\A3\9F\DF-\B68LF&U\8E\F3\C1\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00$\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00libc.so.6\00printf\00__libc_start_main\00__gmon_start__\00GLIBC_2.2.5\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00ui    \00\00\003\00\00\00\00\00\00\00\C8`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E8`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F0`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F8`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00H\83\ECH\8B \00H\85\C0t\E8C\00\00\00H\83\C4\C3\00\00\00\00\00\00\00\00\00\00\00\00\00\00\FF5 \00\FF% \00@\00\FF% \00h\00\00\00\00\E9\E0\FF\FF\FF\FF%\FA \00h\00\00\00\E9\D0\FF\FF\FF\FF%\F2 \00h\00\00\00\E9\C0\FF\FF\FF1\EDI\89\D1^H\89\E2H\83\E4\F0PTI\C7\C0\90@\00H\C7\C1 @\00H\C7\C7@\00\E8\B7\FF\FF\FF\F4fD\00\00\B8    `\00UH- `\00H\83\F8H\89\E5v\B8\00\00\00\00H\85\C0t]\BF  `\00\FF\E0f\84\00\00\00\00\00]\C3fffff.\84\00\00\00\00\00\BE    `\00UH\81\EE    `\00H\C1\FEH\89\E5H\89\F0H\C1\E8?H\C6H\D1\FEt\B8\00\00\00\00H\85\C0t]\BF    `\00\FF\E0\00]\C3fD\00\00\80=I \00\00uUH\89\E5\E8n\FF\FF\FF]\C66 \00\F3\C3@\00\BF\F0`\00H\83?\00u\EB\93\00\B8\00\00\00\00H\85\C0t\F1UH\89\E5\FF\D0]\E9z\FF\FF\FFUH\89忤@\00\B8\00\00\00\00\E8\C7\FE\FF\FF\B8\00\00\00\00]\C3AWA\89\FFAVI\89\F6AUI\89\D5ATL\8D%\A8 \00UH\8D-\A8 \00SL)\E51\DBH\C1\FDH\83\EC\E8U\FE\FF\FFH\85\EDt\84\00\00\00\00\00L\89\EAL\89\F6D\89\FFA\FF\DCH\83\C3H9\EBu\EAH\83\C4[]A\A]A^A_\C3ff.\84\00\00\00\00\00\F3\C3\00\00H\83\ECH\83\C4\C3\00\00\00\00\00hello, world\00\00\00\00;0\00\00\00\00\00\00\FE\FF\FF|\00\00\00\\FE\FF\FFL\00\00\00R\FF\FF\FF\A4\00\00\00l\FF\FF\FF\C4\00\00\00\DC\FF\FF\FF\00\00\00\00\00\00\00\00\00zR\00x\90\00\00\00\00\00\00\FE\FF\FF*\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00zR\00x\90\00\00$\00\00\00\00\00\00\98\FD\FF\FF@\00\00\00\00FJw\80\00?;*3$"\00\00\00\00\00\00\00D\00\00\00\A6\FE\FF\FF\00\00\00\00A\86C
U\00\00\00D\00\00\00d\00\00\00\A0\FE\FF\FFe\00\00\00\00B\8FE\8EE \8DE(\8CH0\86H8\83M@l8A0A(B BBB\00\00\00\00\AC\00\00\00\C8\FE\FF\FF\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E0@\00\00\00\00\00\C0@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\A8@\00\00\00\00\00
\00\00\00\00\00\00\00\94@\00\00\00\00\00\00\00\00\00\00\00\00\E0`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E8`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F5\FE\FFo\00\00\00\00`@\00\00\00\00\00\00\00\00\00\00\00\00\E0@\00\00\00\00\00\00\00\00\00\00\00\00\80@\00\00\00\00\00
\00\00\00\00\00\00\00?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\D0`\00\00\00\00\00\00\00\00\00\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00`@\00\00\00\00\00\00\00\00\00\00\00\00H@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00   \00\00\00\00\00\00\00\00\00\00\00\00\00\00\FE\FF\FFo\00\00\00\00(@\00\00\00\00\00\FF\FF\FFo\00\00\00\00\00\00\00\00\00\00\00\F0\FF\FFo\00\00\00\00 @\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F8`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E6@\00\00\00\00\00\F6@\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00GCC: (Debian 4.9.1-19) 4.9.1\00GCC: (Debian 4.8.3-13) 4.8.3\00\00.symtab\00.strtab\00.shstrtab\00.interp\00.note.ABI-tag\00.note.gnu.build-id\00.gnu.hash\00.dynsym\00.dynstr\00.gnu.version\00.gnu.version_r\00.rela.dyn\00.rela.plt\00.init\00.text\00.fini\00.rodata\00.eh_frame_hdr\00.eh_frame\00.init_array\00.fini_array\00.jcr\00.dynamic\00.got\00.got.plt\00.data\00.bss\00.comment\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00<@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00`@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\80@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E0@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 @\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00(@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00  \00H@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00`@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\A8@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\D0@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\94@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\A0@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\B4@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E8@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E0`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E8`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F0`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F8`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\C8`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\D0`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00  `\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00  `\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F1\FF\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F0`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00@@\00\00\00\00\00\00\00\00\00\00\00\00\00.\00\00\00\00
\00\80@\00\00\00\00\00\00\00\00\00\00\00\00\00A\00\00\00\00
\00\C0@\00\00\00\00\00\00\00\00\00\00\00\00\00W\00\00\00\00\00  `\00\00\00\00\00\00\00\00\00\00\00\00f\00\00\00\00\00\E8`\00\00\00\00\00\00\00\00\00\00\00\00\00\8D\00\00\00\00
\00\E0@\00\00\00\00\00\00\00\00\00\00\00\00\00\99\00\00\00\00\00\E0`\00\00\00\00\00\00\00\00\00\00\00\00\00\B8\00\00\00\00\F1\FF\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F1\FF\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\BC\00\00\00\00\00\D8@\00\00\00\00\00\00\00\00\00\00\00\00\00\CA\00\00\00\00\00\F0`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F1\FF\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\D6\00\00\00\00\00\00\E8`\00\00\00\00\00\00\00\00\00\00\00\00\00\E7\00\00\00\00\00\F8`\00\00\00\00\00\00\00\00\00\00\00\00\00\F0\00\00\00\00\00\00\E0`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\D0`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00
\00\90@\00\00\00\00\00\00\00\00\00\00\00\00)\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00E\00\00 \00\00\00   `\00\00\00\00\00\00\00\00\00\00\00\00\00P\00\00\00\00   `\00\00\00\00\00\00\00\00\00\00\00\00\00W\00\00\00\00\94@\00\00\00\00\00\00\00\00\00\00\00\00\00]\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00q\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\90\00\00\00\00\00  `\00\00\00\00\00\00\00\00\00\00\00\00\00\9D\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\AC\00\00\00 `\00\00\00\00\00\00\00\00\00\00\00\00\00\B9\00\00\00\00\A0@\00\00\00\00\00\00\00\00\00\00\00\00\C8\00\00\00
\00 @\00\00\00\00\00e\00\00\00\00\00\00\00\D8\00\00\00\00   `\00\00\00\00\00\00\00\00\00\00\00\00\00\DD\00\00\00
\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\E4\00\00\00\00  `\00\00\00\00\00\00\00\00\00\00\00\00\00\F0\00\00\00
\00@\00\00\00\00\00\00\00\00\00\00\00\00\F5\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00   `\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00/\00\00\00\00\A8@\00\00\00\00\00\00\00\00\00\00\00\00\00\00crtstuff.c\00__JCR_LIST__\00deregister_tm_clones\00register_tm_clones\00__do_global_dtors_aux\00completed.6661\00__do_global_dtors_aux_fini_array_entry\00frame_dummy\00__frame_dummy_init_array_entry\00h.c\00__FRAME_END__\00__JCR_END__\00__init_array_end\00_DYNAMIC\00__init_array_start\00_GLOBAL_OFFSET_TABLE_\00__libc_csu_fini\00_ITM_deregisterTMCloneTable\00data_start\00_edata\00_fini\00printf@@GLIBC_2.2.5\00__libc_start_main@@GLIBC_2.2.5\00__data_start\00__gmon_start__\00__dso_handle\00_IO_stdin_used\00__libc_csu_init\00_end\00_start\00__bss_start\00main\00_Jv_RegisterClasses\00__TMC_END__\00_ITM_registerTMCloneTable\00_init\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00#\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\001\00\00\00\00\00\00\00\00\00\00\00\00\00<@\00\00\00\00\00<\00\00\00\00\00\00$\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00D\00\00\00\F6\FF\FFo\00\00\00\00\00\00\00`@\00\00\00\00\00`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00N\00\00\00\00\00\00\00\00\00\00\00\00\00\80@\00\00\00\00\00\80\00\00\00\00\00\00`\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00V\00\00\00\00\00\00\00\00\00\00\00\00\00\E0@\00\00\00\00\00\E0\00\00\00\00\00\00?\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00^\00\00\00\FF\FF\FFo\00\00\00\00\00\00\00 @\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00k\00\00\00\FE\FF\FFo\00\00\00\00\00\00\00(@\00\00\00\00\00(\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00z\00\00\00\00\00\00\00\00\00\00\00\00\00H@\00\00\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\84\00\00\00\00\00\00B\00\00\00\00\00\00\00`@\00\00\00\00\00`\00\00\00\00\00\00H\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\8E\00\00\00\00\00\00\00\00\00\00\00\00\00\A8@\00\00\00\00\00\A8\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\89\00\00\00\00\00\00\00\00\00\00\00\00\00\D0@\00\00\00\00\00\D0\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\94\00\00\00\00\00\00\00\00\00\00\00\00\00@\00\00\00\00\00\00\00\00\00\00\00\82\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\9A\00\00\00\00\00\00\00\00\00\00\00\00\00\94@\00\00\00\00\00\94\00\00\00\00\00\00    \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\A0\00\00\00\00\00\00\00\00\00\00\00\00\00\A0@\00\00\00\00\00\A0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\A8\00\00\00\00\00\00\00\00\00\00\00\00\00\B4@\00\00\00\00\00\B4\00\00\00\00\00\004\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\B6\00\00\00\00\00\00\00\00\00\00\00\00\00\E8@\00\00\00\00\00\E8\00\00\00\00\00\00\F4\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\C0\00\00\00\00\00\00\00\00\00\00\00\00\00\E0`\00\00\00\00\00\E0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\CC\00\00\00\00\00\00\00\00\00\00\00\00\00\E8`\00\00\00\00\00\E8\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\D8\00\00\00\00\00\00\00\00\00\00\00\00\00\F0`\00\00\00\00\00\F0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\DD\00\00\00\00\00\00\00\00\00\00\00\00\00\F8`\00\00\00\00\00\F8\00\00\00\00\00\00\D0\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\E6\00\00\00\00\00\00\00\00\00\00\00\00\00\C8`\00\00\00\00\00\C8\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\EB\00\00\00\00\00\00\00\00\00\00\00\00\00\D0`\00\00\00\00\00\D0\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\F4\00\00\00\00\00\00\00\00\00\00\00\00\00\00    `\00\00\00\00\00\00 \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\FA\00\00\00\00\00\00\00\00\00\00\00\00\00  `\00\00\00\00\00    \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\FF\00\00\00\00\00\000\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00 \00\00\00\00\00\00:\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00J   \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00X
\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00-\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00   \00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00p\00\00\00\00\00\005\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00\00

输出:

sh: 2: ELF: not found
Array
(
    [0] => 
    [1] => Array
        (
        )

    [2] => 127
)

更新:

我已将二进制字符串写入文件:

<?php
$file = fopen(__FILE__, 'rb');
fseek($file, __COMPILER_HALT_OFFSET__);
$temporaryFile = tempnam(sys_get_temp_dir(), null);
file_put_contents($temporaryFile, preg_replace('~^\s+~', null, stream_get_contents($file)));
chmod($temporaryFile, 0700);
echo exec($temporaryFile);
unlink($temporaryFile);
__halt_compiler();
ELF\00\00\00\00\00\00\00\00\00\00>\00\00\00\00@\00\00\00\00\00@\00\00\00\00\00\00\00\A8\00\00\00\00\00\00\00\00\00\00@\008\00\00@\00\00\00\00\00\00\00\00
...

注意删除第一个换行符的 preg_replace 调用。没有它,执行将无法进行。

输出:

Array
(
    [0] => hello, world
    [1] => Array
        (
            [0] => hello, world
        )

    [2] => 0
)

最佳答案

现代 CPU 内核在硬件或微代码中都具有称为“数据执行预防”的功能。这是一项重要的安全功能,因为它可以防止最初作为数据加载的内容(完全无害)在 RAM 中一次转换为可执行代码(即防止恶意软件被网页下载为文本或图像,然后作为程序运行) .要执行上面的二进制字符串,您必须首先将其作为“程序”加载,或者使用恶意软件使用的同类漏洞(即解决操作系统中的错误)。

关于php - 执行带有 "Program execution Functions"的二进制字符串(exec、system 等...),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26755778/

相关文章:

php - PDO 支持多个查询(PDO_MYSQL、PDO_MYSQLND)

php - 使用 PHP 监控外部 ftp 上传

c - 使用c编程运行shell脚本

javascript - 捕获 execSync 错误

php - 进行安全登录

php - 如何在PHP中将多个数组平均为一个?

c - 如何突破fgets?

c++ - 使用符号构建字符串

c - 为什么 K&R `NUMBER` 中的 "Reverse Polish Calculator"在 gdb 中显示为无效?

C - execvp 无法使用有效输入