DVWA-Command Injection(Low)

Command Injection(low)

代码分析
<?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>";
}

?>

语句

if( stristr( php_uname( 's' ), 'Windows NT' ) )

PHP stristr() 函数
php_uname

函数表达
php_uname(‘s’)获取服务器的操作环境
php_uname(‘n’)返回主机名
php_uname(‘r’)返回版本名称
php_uname(‘v’)返回版本信息
php_uname(‘m’)返回机器类型

服务器通过判断操作系统执行不同ping命令,但是对ip参数并未做任何的过滤,导致了严重的命令注入漏洞。

$cmd = shell_exec( 'ping  ' . $target );

shell_exec
通过 shell 环境执行命令,并且将完整的输出以字符串的方式返回。也就是说, PHP先运行一个shell环境, 然后让shell进程运行你的命令, 并且把所有输出已字符串形式返回, 如果程序执行有错误或者程序没有任何输出, 则返回null。

    //函数用法
    shell_exec ( string $cmd ) : string
漏洞利用

功能ping我们提供的IP,一般可用
;
|
||
&
&&
来连接命令执行
window和linux系统都可以用&&来执行多条命令
输入 127.0.0.1&&net user在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值