欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

命令执行漏洞

程序员文章站 2022-05-26 07:51:07
...
先来查看一下dvwa中命令执行漏洞源码:
<?php
if( isset( $_POST[ 'submit' ] ) ) {
$target = $_REQUEST[ 'ip' ];//对输入没有任何过滤

// Determine OS and execute the ping command.
if (stristr(php_uname('s'), 'Windows NT')) { 
// 这句话说明操作系统是windows

    $cmd = shell_exec( 'ping  ' . $target );
    echo '<pre>'.$cmd.'</pre>';
    
} else { 

    $cmd = shell_exec( 'ping  -c 3 ' . $target );//linux系统ping3次·
    echo '<pre>'.$cmd.'</pre>';
    
	}
}
?> 

stristr() 函数搜索字符串在另一字符串中的第一次出现。
php_uname() 返回了运行 PHP 的操作系统的描述。php_uname(‘s’)返回操作系统名称。
shell_exec():通过shell执行命令并将完整输出作为字符串返回。
exec():执行外部命令,可以传递一个可选变量,用于接收一组输出行。

命令执行漏洞利用原理:
无论是windows系统还是linux系统都可以通过&&执行多条命令。

连接符的使用:
command1 && command2:先执行command1,再执行command2
command1 & command2:两个命令同时执行,顺序先后不一定
command1 || command2:command1执行失败,执行command2
command1 | command2:只执行command2

1 在靶机上执行who命令:

命令执行漏洞
在靶机上测试:
命令执行漏洞

2 在靶机上执行ls:

命令执行漏洞| ls:只执行ls
ls:查看目标系统当前目录的内容

相关标签: web渗透