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
如果是错误命令,服务器不执行,时间会在两者之间。
根据时间的长短就能判断服务器是否执行了注入的命令
防御代码与 上一个命令注入相同。