【靶场训练_DVWA】Command Execution

匿名 (未验证) 提交于 2019-12-03 00:04:02

low

利用:

;ls ../../

 

 

 源码分析:

<?php  if( isset( $_POST[ 'submit' ] ) )  {     //将ip对应的值复制给target     $target = $_REQUEST[ 'ip' ];          if (stristr(php_uname('s'), 'Windows NT'))      {          //如果是winds就直接ping              $cmd = shell_exec( 'ping  ' . $target );         echo '<pre>'.$cmd.'</pre>';              }      else      {          //如果是Linux就默认ping 3个包         $cmd = shell_exec( 'ping  -c 3 ' . $target );         echo '<pre>'.$cmd.'</pre>';              }      } ?>
  • $_REQUEST[]具用$_POST[] $_GET[]的功能,但是$_REQUEST[]比较慢。通过post和get方法提交的所有数据都可以通过$_REQUEST数组获得
  • php_uname ― 返回运行 PHP 的系统的有关信息
  • stristr() 函数搜索字符串在另一字符串中的第一次出现
  • php_uname('s'):返回操作系统名称

 

Medium

利用:

|| 或者  &;& 或者 &

 

源码分析:

 就多了一点过滤,但是没过滤完整

<?php  if( isset( $_POST[ 'submit'] ) )  {      $target = $_REQUEST[ 'ip' ];      // 过滤了 &&,;命令分割符     $substitutions = array(         '&&' => '',         ';' => '',     );      $target = str_replace( array_keys( $substitutions ), $substitutions, $target );          // Determine OS and execute the ping command.     if (stristr(php_uname('s'), 'Windows NT')) {               $cmd = shell_exec( 'ping  ' . $target );         echo '<pre>'.$cmd.'</pre>';              } else {               $cmd = shell_exec( 'ping  -c 3 ' . $target );         echo '<pre>'.$cmd.'</pre>';              } }  ?>

High

无能为力了Orz,只有诸如“数字.数字.数字.数字”的输入才会被接收执行.

<?php  if( isset( $_POST[ 'submit' ] ) )  {      $target = $_REQUEST["ip"];          /*         stripslashes() 函数删除由 addslashes() 函数添加的反斜杠。      */          $target = stripslashes( $target );               // Split the IP into 4 octects     $octet = explode(".", $target);          // Check IF each octet is an integer     if ((is_numeric($octet[0])) && (is_numeric($octet[1])) && (is_numeric($octet[2])) && (is_numeric($octet[3])) && (sizeof($octet) == 4)  )      {          // If all 4 octets are int's put the IP back together.     $target = $octet[0].'.'.$octet[1].'.'.$octet[2].'.'.$octet[3];                   // Determine OS and execute the ping command.         if (stristr(php_uname('s'), 'Windows NT'))          {                   $cmd = shell_exec( 'ping  ' . $target );             echo '<pre>'.$cmd.'</pre>';                  }          else          {                   $cmd = shell_exec( 'ping  -c 3 ' . $target );             echo '<pre>'.$cmd.'</pre>';                  }          }     else     {         echo '<pre>ERROR: You have entered an invalid IP</pre>';     }      }  ?>

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!