💞利用CF的Workers实现反向代理钓鱼
2023-6-14
| 2023-6-13
0  |  0 分钟
type
status
slug
tags
category
icon
password
Property
Jun 13, 2023 07:47 PM
date
summary
看到同事在弄nginx反向钓鱼,看了下教程也太麻烦了,突然想到之前使用过CF的Workers实现过反向代理,就想说是不是直接使用CF的Workers反向代理钓鱼就好了

🤔 前言

为啥要使用反向代理钓鱼?
因为反向代理出来的网站,本质就是将流量转发,效果和真实网站无异,具有很高的可交互性
 
cf的Workers免费用户没有log功能要怎么记录用户请求呢?
在翻阅Workers文档有看到关于持久化存储问题,官网的解决方案就是使用数据库,个人感觉数据库有点太重。后面又想到通过异步post请求的方式,这样要用多一台服务器太麻烦了。最后看到cf有免费的KV存储,所以这个方案就使用cf官网的KV存储
 

📝先看效果

反向代理某OA系统,测试效果完全可交互,登陆提示完全正常
notion image
 
用户登录提交后可以在KV数据库看到数据包,cookie和请求数据等
notion image

🤗过程

首先前往cloudflare 创建一个Workers
notion image
 
创建一个hello world应用,名字随便取
notion image
 
创建完成后会有一个链接🔗访问如果提示hello world 就是创建成功了
notion image
 
然后返回刚刚创建的Workers,点击编辑
notion image
 
进入编辑页面后,点击下面按钮
notion image
 
跟着文档执行就好了,就是把项目拉到本地
 
打开电脑终端,安装wrangler
 
安装完成后执行下面的授权登录
 
初始化项目,无特殊需求,一路回车就行了
 
初始化
notion image
 
如果在最后面Deploying时候提示下面错误,就是没有index.ts文件
notion image
 
将文件复制一份就好了
 
这样就不会报错了
notion image
 
这时候创建KV数据库
 
创建成功,记住复制的binding和id
notion image
 
打开项目文件夹,编辑wrangler.toml文件,在中间粘贴如下内容
 
如下
notion image
 
然后编辑src/index.ts文件,复制下面代码,全部替换
 
 
编辑457,458行替换对应的域名和协议
notion image
 
最后修改501行将 env.xxxx.put 中的xxxx替换成 binding 就是上面创建的
notion image
 
全部保存完成后,通过wrangler deploy 命令部署,最后访问一下看看效果
notion image
 
 
可以访问,可以登录,查看kv存储
notion image
 
 
查看KV 通过前缀key搜索, 默认key就是 路径(/替换成_) + 时间戳 。成功抓到请求包
notion image
 
绑定自定义域名,直接通过cf自带的costom domains域名
notion image
 
自定义域名访问,也是没问题
notion image
 
 

改用D1数据库

强烈建议使用D1数据库,sql语句查询更方便,而且每天免费10万次写入,根本用不完
 
使用命令创建d1数据库
 
notion image
 
修改wrangler.toml文件复制上面粘贴即可
 
格式如下
notion image
 
 
修改代码将原来的501行改成下面的即可
 
这样
notion image
 
在网页中进入刚刚创建的数据库,新建数据库表三个字段time path log
notion image
 
创建完成之后执行
 
 
看看效果 select * from proxylog where path like "%checkLogin%"; 支持数据库语句用起来是比KV方便
 
notion image
 
 
 

🍪总结

 

📚参考文章

 
技术分享
  • Pentesting
  • 【C/S架构安全测试】客户端安全测试小结某内部攻防靶场经验分享
    目录