xepor
v0.6.0
Xepor(發音為/ˈzɛfə/ , zephyr)是一個針對逆向工程師和安全研究人員的 Web 路由框架。它為駭客提供了類似 Flask 的 API,以人性化的編碼風格攔截和修改 HTTP 請求和/或 HTTP 回應。
該專案旨在與 mitmproxy 一起使用。使用者使用xepor
編寫腳本,並使用mitmproxy -s your-script.py
在mitmproxy 中執行腳本。
如果您想從 PoC 進入生產,從演示(例如 http-reply-from-proxy.py、http-trailers.py、http-stream-modify.py)到可以用 WiFi Pineapple 取出的東西,那麼Xepor 適合您!
@api.route()
編寫所有內容,就像 Flask 一樣!將所有內容寫在一個腳本中,不再使用if..else
。InterceptedAPI
實例中處理多個主機。mitmproxy
/ mitmweb
+ regular
/ transparent
/ socks5
/ reverse:SPEC
/ upstream:SPEC
)。 該項目不提供 SSL 剝離。
pip install xepor
以 example/httpbin 中的腳本為例。
mitmweb -s example/httpbin/httpbin.py
將瀏覽器 HTTP 代理程式設定為http://127.0.0.1:8080
,並透過 http://127.0.0.1:8081/ 存取 Web 介面。
從 http://httpbin.org/#/HTTP_Methods/get_get 傳送 GET 請求,然後您可以在 mitmweb 介面、瀏覽器開發工具或 Wireshark 中看到 Xepor 所做的修改。
httpbin.py
做了兩件事。
payload=evil_param
。Authorization
標頭並將密碼列印給攻擊者。這正是 mitmproxy 一貫所做的,但程式碼是以xepor方式寫的。
# https://github.com/xepor/xepor-examples/tree/main/httpbin/httpbin.py
from mitmproxy . http import HTTPFlow
from xepor import InterceptedAPI , RouteType
HOST_HTTPBIN = "httpbin.org"
api = InterceptedAPI ( HOST_HTTPBIN )
@ api . route ( "/get" )
def change_your_request ( flow : HTTPFlow ):
"""
Modify URL query param.
Test at:
http://httpbin.org/#/HTTP_Methods/get_get
"""
flow . request . query [ "payload" ] = "evil_param"
@ api . route ( "/basic-auth/{usr}/{pwd}" , rtype = RouteType . RESPONSE )
def capture_auth ( flow : HTTPFlow , usr = None , pwd = None ):
"""
Sniffing password.
Test at:
http://httpbin.org/#/Auth/get_basic_auth__user___passwd_
"""
print (
f"auth @ { usr } + { pwd } :" ,
f"Captured { 'successful' if flow . response . status_code < 300 else 'unsuccessful' } login:" ,
flow . request . headers . get ( "Authorization" , "" ),
)
addons = [ api ]