1.代码
<?php
if( isset( $_POST[ 'Submit' ] ) ) {
// Get input
$target = $_REQUEST[ 'ip' ];
// Determine OS and execute the ping command.
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
// Windows
$cmd = shell_exec( 'ping ' . $target );
}
else {
// *nix
$cmd = shell_exec( 'ping -c 4 ' . $target );
}
// Feedback for the end user
$html .= "<pre>{$cmd}</pre>";
}
?>
提交后从post请求中得到参数ip,php_uname()返回操作系统的类型,参数s是返回系统名称。
其他参数介绍:
‘a’:此为默认。包含序列 “s n r v m” 里的所有模式。
’s’:操作系统名称。例如: FreeBSD。
‘n’:主机名。例如: localhost.example.com。
‘r’:版本名称,例如: 5.1.2-RELEASE。
‘v’:版本信息。操作系统之间有很大的不同。
‘m’:机器类型。例如:i386
如果当前系统是’window nt’,cmd命令执行ping ip。
如果是其他系统,执行 ping -c 4 ip 命令(发送指定数量的数据包)。
函数 string shell_exec ( string $cmd
),通过shell环境执行命令,结果以字符串的方式返回。
2.windows命令拼接
A | B:不管A成功还是失败,两个命令都会执行,但只输出B的结果
A & B: A、B都会执行并输出
A || B: 先执行命令A,如果失败则再执行命令B。但是如果A成功,就不执行B
A && B: 如果命令A成功执行,则执行命令B,并输出两个结果. 如果命令A没有执行成功,就不会执行命令B.
3.靶场实验