搜索
您的当前位置:首页正文

Python网络包拦截并修改response

来源:步旅网

原文:

1.首先将站点指向本地 使用

2.使用脚本

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler

HOST = "127.0.0.1"
PORT = 80

class RequestHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        self.send_response(200)
        self.send_header("Content-Type", "text/html")
        self.end_headers()
        self.wfile.write("<html>hello</html>")

def run_server():
    server = HTTPServer((HOST, PORT), RequestHandler)
    server.serve_forever()

if __name__ == "__main__":
    # redirect www.x.x.x to 127.0.0.1 in hosts
    run_server()


原理:
修改host文件后访问原始网站变成了访问本地,因此本地需要一台服务器。工具1干的就是这个事情,用ApateDNS 修改的是全局的,没这个必要。
工具2做的就是充当服务器的事情。目前只处理了http的请求,当然也可以加上post等handler。果然python大法好,这个server模块也是自带的。

这种方式对于突破网络验证来说,在知道请求应该返回什么样的数据达到目的时,非常好用。

但是工具1太重了。其实完全可以通过python的方式修改host文件。等到测试结束之后,将host文件再copy过去,用管理员运行即可。有时间的话完善下吧。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top