我一直在寻找将特殊URL重定向到远程服务器以进行一些XSS测试的语法.有任何想法吗?
import SimpleHTTPServer import SocketServer class myHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): print self.path if self.path == '/analog': -------------------->return "http://12b.dk/analog"??? return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self) theport = 1234 Handler = myHandler pywebserver = SocketServer.TCPServer(("", theport), Handler) print "Python based web server. Serving at port", theport pywebserver.serve_forever()
Dan Andreatt.. 21
对于重定向,您必须返回代码301和Location
标题.可能你会尝试类似的东西:
class myHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): self.send_response(301) self.send_header('Location','http://www.example.com') self.end_headers()
Cody.. 8
这是一个完整的代码重定向,保存此文件并将其作为python程序运行.终止,ctrl + c.
import SimpleHTTPServer import SocketServer class myHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): print self.path self.send_response(301) new_path = '%s%s'%('http://newserver.com', self.path) self.send_header('Location', new_path) self.end_headers() PORT = 8000 handler = SocketServer.TCPServer(("", PORT), myHandler) print "serving at port 8000" handler.serve_forever()
Bruno Bronos.. 7
Python 3
在python3
它做得非常类似于其他的答案,但足以证明显示不同。
这是一个脚本,除了监听作为参数1传递的端口并发送302(“ Found”,也称为Temporary)重定向到作为参数2传递的URL之外,什么都不做。(并且有一条用法消息。)
#!/usr/bin/env python3 import sys from http.server import HTTPServer, BaseHTTPRequestHandler if len(sys.argv)-1 != 2: print(""" Usage: {}""".format(sys.argv[0])) sys.exit() class Redirect(BaseHTTPRequestHandler): def do_GET(self): self.send_response(302) self.send_header('Location', sys.argv[2]) self.end_headers() HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
您这样称呼它:
sudo ./redirect.py 80 http://jenkins.example.com:8080/
该示例应该给您足够的编写所需的功能的信息。
对于重定向,您必须返回代码301和Location
标题.可能你会尝试类似的东西:
class myHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): self.send_response(301) self.send_header('Location','http://www.example.com') self.end_headers()
这是一个完整的代码重定向,保存此文件并将其作为python程序运行.终止,ctrl + c.
import SimpleHTTPServer import SocketServer class myHandler(SimpleHTTPServer.SimpleHTTPRequestHandler): def do_GET(self): print self.path self.send_response(301) new_path = '%s%s'%('http://newserver.com', self.path) self.send_header('Location', new_path) self.end_headers() PORT = 8000 handler = SocketServer.TCPServer(("", PORT), myHandler) print "serving at port 8000" handler.serve_forever()
在python3
它做得非常类似于其他的答案,但足以证明显示不同。
这是一个脚本,除了监听作为参数1传递的端口并发送302(“ Found”,也称为Temporary)重定向到作为参数2传递的URL之外,什么都不做。(并且有一条用法消息。)
#!/usr/bin/env python3 import sys from http.server import HTTPServer, BaseHTTPRequestHandler if len(sys.argv)-1 != 2: print(""" Usage: {}""".format(sys.argv[0])) sys.exit() class Redirect(BaseHTTPRequestHandler): def do_GET(self): self.send_response(302) self.send_header('Location', sys.argv[2]) self.end_headers() HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
您这样称呼它:
sudo ./redirect.py 80 http://jenkins.example.com:8080/
该示例应该给您足够的编写所需的功能的信息。