pymiproxy là một man-in-the-middle proxy nhỏ và ngọt ngào có khả năng làm HTTP và HTTP qua SSL.
Introduction
pymiproxy là một nhỏ, trọng lượng nhẹ, man-in-the-middle Proxy khả năng thực hiện HTTP và HTTPS (hoặc SSL) kiểm tra. Các proxy cung cấp một cơ quan chứng nhận được xây dựng trong đó có khả năng tạo chứng chỉ cho các điểm đến SSL dựa trên. Pymiproxy cũng được mở rộng và cung cấp hai phương pháp để mở rộng các proxy: phương pháp quá tải, và một giao diện pluggable. Đó là lý tưởng cho các tình huống mà bạn đang cần sự của một proxy mát mẻ để làm xáo trộn dữ liệu HTTP dùng ngoài trời và / hoặc bị ràng buộc.
Cài đặt
Chỉ cần chạy lệnh sau tại dấu nhắc lệnh:
& Nbsp; sudo python setup.py cài đặt
Cách sử dụng
Các mô-đun cung cấp một vài ví dụ trong các mã. Nói tóm lại, pymiproxy có thể chạy phải đi bằng cách phát hành các lệnh sau tại dấu nhắc lệnh:
& Nbsp; python -m miproxy.proxy
Điều này sẽ gọi pymiproxy với các plugin DebugInterceptor mà chỉ đơn giản là kết quả đầu ra 100 byte đầu tiên của mỗi yêu cầu và đáp ứng. Các proxy chạy trên cổng 8080 và lắng nghe tất cả các địa chỉ. Đi trước và cung cấp cho nó một thử.
Mở rộng hoặc thực hiện pymiproxy
Có hai cách để mở rộng các proxy:
- Xây dựng và đăng ký một plugin Interceptor; hoặc
- Quá tải các mitm_request, và phương pháp mitm_response trong lớp ProxyHandler.
Các quyết định về phương pháp nào bạn chọn để sử dụng là hoàn toàn phụ thuộc vào việc có hay không bạn muốn để đẩy dữ liệu bị chặn thông qua một tập hợp các máy bay đánh chặn hay không.
Interceptor Plugins
Hiện nay có hai loại plugins chặn:
- RequestInterceptorPlugins: thực hiện trước khi gửi yêu cầu đến máy chủ từ xa; và
- ResponseInterceptorPlugins: thực hiện trước khi gửi phản hồi lại cho khách hàng.
Các dòng sau đây được thực hiện bởi pymiproxy trong chế độ này:
1. Khách hàng yêu cầu nhận được
2. Khách hàng có yêu cầu phân tích cú pháp
3. Khách hàng yêu cầu chế thông / biến đổi bởi Request Interceptor plugins
4. Cập nhật theo yêu cầu gửi đến máy chủ từ xa
5. Đáp ứng được nhận bởi máy chủ từ xa
6. Đáp ứng chế biến / chuyển bằng ứng Interceptor plugins
7. phản ứng Cập nhật gửi đến khách hàng
Bạn có thể đăng ký nhiều plugin như bạn muốn. Tuy nhiên, hãy nhớ rằng bổ sung được thực hiện theo thứ tự mà chúng được đăng ký tại. Hãy cẩn thận trong cách bạn đăng ký bổ sung của bạn nếu kết quả của một plugin là phụ thuộc vào kết quả của người khác.
Sau đây là một mã số ví dụ đơn giản như thế nào để chạy các proxy với plugins:
từ miproxy.proxy RequestInterceptorPlugin nhập khẩu, ResponseInterceptorPlugin, AsyncMitmProxy
lớp DebugInterceptor (RequestInterceptorPlugin, ResponseInterceptorPlugin):
& Nbsp; def do_request (self, dữ liệu):
& Nbsp; print '>>% s'% repr (dữ liệu [: 100])
& Nbsp; trở lại dữ liệu
& Nbsp; def do_response (self, dữ liệu):
& Nbsp; print '>% s'% repr (dữ liệu [: 100])
& Nbsp; trở lại dữ liệu
& Nbsp; def mitm_response (self, dữ liệu):
& Nbsp; print '
Yêu cầu :
- Python
- pyOpenSSL
Bình luận không