OS Command Injection - Blind
先上代码,他判断了win还是linux然后进行了ping但是结果并没有返回。
1 <div id="main"> 2 3 <h1>OS Command Injection - Blind</h1> 4 5 <form action="<?php echo($_SERVER["SCRIPT_NAME"]);?>" method="POST"> 6 7 <p> 8 9 <label for="target">Enter your IP address:</label> 10 <input type="text" id="target" name="target" value=""> 11 12 <button type="submit" name="form" value="submit">PING</button> 13 14 </p> 15 16 </form> 17 <?php 18 19 if(isset($_POST["target"])) 20 { 21 22 $target = $_POST["target"]; 23 24 if($target == "") 25 { 26 27 echo "<font color=\"red\">Please enter your IP address...</font>"; 28 29 } 30 31 else 32 { 33 34 echo "Did you captured our GOLDEN packet?"; 35 36 if(PHP_OS == "Windows" or PHP_OS == "WINNT" or PHP_OS == "WIN32") 37 { 38 39 // Debugging 40 // echo "Windows!"; 41 42 // Increasing the PING count will slow down your web scanner! 43 shell_exec("ping -n 1 " . commandi($target)); 44 45 } 46 47 else 48 { 49 50 // Debugging 51 // echo "Not Windows!"; 52 53 // Increasing the PING count will slow down your web scanner! 54 shell_exec("ping -c 1 " . commandi($target)); 55 56 } 57 58 } 59 60 } 61 62 ?> 63 64 </div>
看反应时间,没有任何ping,只是返回一个信息,服务器的执行速度最快
当服务器正常ping一次后,反应是17
当有命令注入时,多执行了一个命令,所以反应的时间会长,是25
如果是错误命令,服务器不执行,时间会在两者之间。
根据时间的长短就能判断服务器是否执行了注入的命令
防御代码与 上一个命令注入相同。