1
0

portscan.html 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta name="zoraxy.csrf.Token" content="{{.csrfToken}}">
  7. <meta name="apple-mobile-web-app-capable" content="yes" />
  8. <meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1"/>
  9. <meta name="theme-color" content="#4b75ff">
  10. <link rel="icon" type="image/png" href="./favicon.png" />
  11. <title>Port Scanner | Zoraxy</title>
  12. <link rel="stylesheet" href="../script/semantic/semantic.min.css">
  13. <script src="../script/jquery-3.6.0.min.js"></script>
  14. <script src="../script/semantic/semantic.min.js"></script>
  15. <script src="../script/tablesort.js"></script>
  16. <link rel="stylesheet" href="../main.css">
  17. <script src="../script/utils.js"></script>
  18. </head>
  19. </head>
  20. <body>
  21. <link rel="stylesheet" href="../darktheme.css">
  22. <script src="../script/darktheme.js"></script>
  23. <div class="ui container">
  24. <br>
  25. <div class="ui segment">
  26. <p>Enter the IP address you want to scan for open ports. This tool only scans for open TCP ports.</p>
  27. <div class="ui fluid action input">
  28. <input id="scanningIP" type="text" placeholder="IP Address">
  29. <button class="ui basic blue button" onclick="startScan()">Start Scan</button>
  30. </div>
  31. <div class="ui yellow message">
  32. <h4 class="ui header">
  33. <i class="exclamation triangle icon"></i>
  34. <div class="content">
  35. Port Scan Warning
  36. <div class="sub header">Please ensure that you only scan IP addresses that you own or have explicit permission to scan. Unauthorized scanning may be considered a network attack and could result in legal consequences.</div>
  37. </div>
  38. </h4>
  39. </div>
  40. <table class="ui celled compact table">
  41. <thead>
  42. <tr>
  43. <th>Port</th>
  44. <th>TCP Port Open</th>
  45. <th>Full Path</th>
  46. </tr>
  47. </thead>
  48. <tbody id="resultTable">
  49. <tr>
  50. <td colspan="3"><i class="ui green circle check icon"></i> Click the "Start Scan" to start port scan on given IP address</td>
  51. </tr>
  52. </tbody>
  53. </table>
  54. <button class="ui right floated basic button" onclick="exitTool();">Exit</button>
  55. <br><br>
  56. </div>
  57. </div>
  58. <br>
  59. <br>
  60. </div>
  61. <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
  62. <script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
  63. <script>
  64. //If the URL has a query parameter, fill the input box with that value
  65. $(document).ready(function(){
  66. let urlParams = new URLSearchParams(window.location.search);
  67. let ipToScan = urlParams.get("ip");
  68. if (ipToScan != null){
  69. $("#scanningIP").val(ipToScan);
  70. startScan();
  71. }
  72. });
  73. function startScan(button=undefined){
  74. let ipToScan = $("#scanningIP").val();
  75. ipToScan = ipToScan.trim();
  76. let table = $("#resultTable");
  77. table.empty();
  78. table.append($("<tr><td colspan='3'><i class='ui loading spinner icon'></i> Scanning</td></tr>"));
  79. if (button != undefined){
  80. button.addClass("loading");
  81. }
  82. $.get("/api/tools/portscan?ip=" + ipToScan, function(data){
  83. if (button != undefined){
  84. button.removeClass("loading");
  85. }
  86. if (data.error != undefined){
  87. alert(data.error);
  88. return;
  89. }else{
  90. table.empty();
  91. //Entries are in the form of {Port: 80, IsTCP: true, IsUDP: false}
  92. //if both TCP and UDP are open, there will be two entries
  93. for (let i = 0; i < data.length; i++){
  94. let row = $("<tr></tr>");
  95. row.append($("<td></td>").text(data[i].Port));
  96. row.append($("<td><i class='ui green check icon'></i></td>"));
  97. row.append($("<td></td>").html(`<a href="//${ipToScan + ":" + data[i].Port}" target="_blank">${ipToScan + ":" + data[i].Port}</a>`));
  98. table.append(row);
  99. }
  100. if (data.length == 0){
  101. table.append($("<tr><td colspan='3'><i class='ui green circle check icon'></i> No open ports found on given IP address</td></tr>"));
  102. }
  103. }
  104. console.log(data);
  105. });
  106. }
  107. function exitTool(){
  108. //Close the current window
  109. window.open('', '_self', '');
  110. window.close();
  111. }
  112. </script>
  113. </body>
  114. </html>