dava靶场远程命令执行
Dvwa命令执行:
低难度:
页面提示为ping设备,直接填入本机测试IP查看返回结果为正常icmp测试

联合逻辑符号&带入其他命令查看可以执行,此处带入的是ip查看命令
测试命令为127.0.0.1 & ipconfig

源码分析:

php_uname()返回的是php运行环境的系统信息s选项是操作系统名称
Stristr()是检索字符串首次出现的位置并返回剩余内容
中难度:
源码分析:

array_keys()用法是提取参数的键组成新的数组
str_replace()作用匹配字符串后作替换处理,可以过滤定义在数组的&&和;命令
通关思路和低难度一样用未过滤的字符&执行后续命令
高难度:
先分析源码:

和中难度一样的过滤方法,过滤的内容增加了尝试双写执行||||带入执行成功
最高难度:
此处未完成仅仅作分析
源码分析如下
checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' ); 传入token
$target = $_REQUEST[ 'ip' ]; 接收IP
$target = stripslashes( $target ); 删除’\‘
$octet = explode( ".", $target ); 以.分割生成新字符串数组
if( ( is_numeric( $octet[0] ) ) && ( is_numeric( $octet[1] ) ) && ( is_numeric( $octet[2] ) ) && ( is_numeric( $octet[3] ) ) && ( sizeof( $octet ) == 4 ) )
is_numeric检查是否是数字字符串 sizeof检查数组元素的数目
{ $target = $octet[0] . '.' . $octet[1] . '.' . $octet[2] . '.' . $octet[3]; 拼接重新构造IP
if( stristr( php_uname( 's' ), 'Windows NT' ) ) {
$cmd = shell_exec( 'ping ' . $target );
}
else {
$cmd = shell_exec( 'ping -c 4 ' . $target );
}
echo "<pre>{$cmd}</pre>";
}
else {
echo '<pre>ERROR: You have entered an invalid IP.</pre>';
}
}
generateSessionToken();
?>
更多推荐



所有评论(0)