| 0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. | <?php
/*
PLUGIN
CGI Scaner
*/
include('menu.php');
echo "<br><table BORDER COLS=1 WIDTH=\"600\" NOSAVE >";
echo "<tr ALIGN=CENTER NOSAVE><td>------------------------=(<font color=\"#FF3333\">CGI Scaner</font>)=---------------------------</td></tr>";
echo "</table>";
$Server=$HTTP_GET_VARS['server'];
$Cgi=$HTTP_GET_VARS['cgi'];
$TimeOut=$HTTP_GET_VARS['timeout'];
$Port=$HTTP_GET_VARS['port'];
$tryme=$HTTP_GET_VARS['tryme'];
$i=0;
$slash=substr(getcwd(),0,1);
if ($slash != "/") {
$slash="\\";
}
if ($TimeOut == null) {
$TimeOut="2";
}
if ($Cgi == null) {
$Cgi=getcwd().$slash."cgibugs.txt";
}
if ($Port == null) {
$Port="80";
}
function menu ($Server,$Cgi,$Port,$TimeOut) {
echo "<form action=\"cgiscan.php\" method=\"get\">";
echo "<input type=\"text\" name=\"cgi\" value=\"$Cgi\"> :List of CGI bugs<br>";
echo "<hr width=\"300\">";
echo "<input type=\"text\" name=\"tryme\" value=\"$tryme\"> :Individual CGI test (example: <b>/cgi-bin/formail.pl</b>)<br>";
echo "<input type=\"text\" name=\"server\" value=\"$Server\"> :Web Server Hostname<br>";
echo "<input type=\"text\" name=\"port\" value=\"$Port\"> :Port (example: 80)<br>";
echo "<input type=\"text\" name=\"timeout\" value=\"$TimeOut\"> :Time Out<br>";
echo "<input type=\"submit\" value=\"Scan\">";
echo "</form>";
}
if (!$Server) {
echo "<br>Please, select web server hostname.<br>";
menu($Server,$Cgi,$Port,$TimeOut);
die;
}
if (!$Port) {
echo "<br>ERROR: Please, select web server port.<br>";
menu($Server,$Cgi,$Port,$TimeOut);
die;
}
if (!$Cgi) {
if (!$tryme) {
echo "<br>ERROR: Please, select path to list of cgibugs.<br>";
menu($Server,$Cgi,$Port,$TimeOut);
die;
}
}
if (!$TimeOut) {
echo "<br>ERROR: Please, select request TimeOut.<br>";
menu($Server,$Cgi,$Port,$TimeOut);
die;
}
echo "<b>Scaning....<br></b>";
$fs=fsockopen($Server,$Port);
if (!$fs) {
echo "<br>ERROR: Can't open $Server on $Port port.<br>";
die;
} else {
if (!$tryme) {
fclose($fs);
$fp=fopen($Cgi,"r");
while(!feof($fp)) {
$line=trim(fgets($fp,20000));
if (strlen($line)>1){
scan($Server,$line,$Port,$TimeOut);
}
}
fclose($fp);
} else {
$fs=fsockopen($Server,$Port);
socket_set_timeout($fs,$TimeOut);
fputs($fs,"GET $tryme HTTP/1.1\nHOST: LSA.cgi.test\n\n");
$res=fread($fs,4000000);
echo nl2br(htmlspecialchars($res));
fclose($fs);
}
echo "<br><b>The END:)</b>";
}
function scan ($Server,$line,$Port,$TimeOut) {
$fs=fsockopen($Server,$Port);
socket_set_timeout($fs,$TimeOut);
fputs($fs,"GET $line HTTP/1.1\nHOST: LSA.cgi.test\n\n");
$res=substr(trim(fgets($fs,30)),8);
if (stristr($res,"200")) {
$res="<font color=\"#FF0000\">$res</font>";
}
echo "$line : $res <br>";
fclose($fs);
}
?> |