Xepor ( /ˈzɛfə/ 、ゼファーと発音) は、リバース エンジニアおよびセキュリティ研究者向けの Web ルーティング フレームワークです。これは、ハッカーが人間に優しいコーディング スタイルで HTTP リクエストや HTTP レスポンスを傍受し、変更するための Flask のような API を提供します。
このプロジェクトは 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()を使用してすべてをコーディングします。すべてを1 つのスクリプトで記述し、 if..elseもう必要ありません。InterceptedAPIインスタンス内の複数のホストも含む) を処理します。mitmproxy / mitmweb + regular / transparent / socks5 / reverse:SPEC / upstream:SPEC ) が完全にサポートされています。 このプロジェクトでは SSL ストリッピングは提供されていません。
pip install xepor例として、examples/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 2 つのことを行います。
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 ]