Xepor:一款针对逆向工程和安全分析的Web路由框架

关于Xepor

Xepor是一款专为逆向分析工程师和安全研究专家设计的Web路由框架,该工具可以为研究人员提供类似Flask
API的功能,支持以人类友好的方式拦截和修改HTTP请求或HTTP响应信息。

该项目需要与mitmproxy一起结合使用,用户可以使用Xepor来编写脚本,并在mitmproxy中使用下列命令来运行脚本:

mitmproxy -s your-script.py

功能介绍

1、使用@api.route()来编码,和Flask类似,支持在一个脚本中完成所有任务。

2、支持处理多条URL路由,甚至可以在一个InterceptedAPI实例中处理多台主机。

3、针对每个路由,可以选择在连接到服务器之前修改请求,或者在转发给用户之前修改响应。

4、支持黑名单模式或白名单模式。

5、支持正则表达式匹配。

6、通过主机重映射定义跟匹配URL路径。

7、结合mitmproxy实现更强大的功能。

使用场景

1、通过MitM实现AP安全测试和网络钓鱼测试;

2、通过iptables+透明代理嗅探来自特定设备的流量,使用Xepor动态修改Payload;

3、用大约100行代码编写复杂的网络爬虫…

工具下载

源码下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/xepor/xepor.git

pip安装

pip install xepor

工具使用

我们以项目中[ examples/httpbin](https://github.com/xepor/xepor-
examples/tree/main/httpbin/)内的脚本为例给大家演示该工具的使用:

mitmweb --web-host=\* --set connection_strategy=lazy -s example/httpbin/httpbin.py

在这个离职中,我们配置mitmproxy服务器的地址为127.0.0.1,你也可以将其修改为设备的其他IP地址。如果需要让mitmproxy服务器以反向、上游和透明模式运行的话,则需要设置下列参数:

--set connection_strategy=lazy

此时Xepor将会正常功能工作,我们也建议设置该选项以保证工具的稳定运行。

接下来将浏览器HTTP代理设置为“http://127.0.0.1:8080”,并在浏览器中访问“http://127.0.0.1:8081/”

然后,通过“http://httpbin.org/#/HTTP_Methods/get_get”发送一个GET请求,然后你将可以通过Xepor的mitmweb接口、浏览器开发者工具或Wireshark对数据请求进行修改。

httpbin.py会做下列两件事情:

1、当用户访问“http://httpbin.org/get”时,向HTTP请求中注入一个查询字符串参数“payload=evil_param”;

2、当用户访问“http://httpbin.org/basic-auth/xx/xx/”时,从HTTP请求中嗅探“Authorization”
Header,并将密码打印给研究人员;

任务其实和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]

网络安全工程师企业级学习路线

这时候你当然需要一份系统性的学习路线

如图片过大被平台压缩导致看不清的话,可以在文末下载(无偿的),大家也可以一起学习交流一下。

一些我收集的网络安全自学入门书籍

一些我白嫖到的不错的视频教程:

上述资料【扫下方二维码】就可以领取了,无偿分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值