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系统,测试效果完全可交互,登陆提示完全正常
用户登录提交后可以在KV数据库看到数据包,cookie和请求数据等
🤗过程
首先前往cloudflare 创建一个Workers
创建一个hello world应用,名字随便取
创建完成后会有一个链接🔗访问如果提示hello world 就是创建成功了
然后返回刚刚创建的Workers,点击编辑
进入编辑页面后,点击下面按钮
跟着文档执行就好了,就是把项目拉到本地
打开电脑终端,安装wrangler
安装完成后执行下面的授权登录
初始化项目,无特殊需求,一路回车就行了
初始化
如果在最后面Deploying时候提示下面错误,就是没有index.ts文件
将文件复制一份就好了
这样就不会报错了
这时候创建KV数据库
创建成功,记住复制的binding和id
打开项目文件夹,编辑wrangler.toml文件,在中间粘贴如下内容
如下
然后编辑src/index.ts文件,复制下面代码,全部替换
编辑457,458行替换对应的域名和协议
最后修改501行将 env.xxxx.put 中的xxxx替换成 binding 就是上面创建的
全部保存完成后,通过
wrangler deploy
命令部署,最后访问一下看看效果可以访问,可以登录,查看kv存储
查看KV 通过前缀key搜索, 默认key就是 路径(/替换成_) + 时间戳 。成功抓到请求包
绑定自定义域名,直接通过cf自带的costom domains域名
自定义域名访问,也是没问题
改用D1数据库
强烈建议使用D1数据库,sql语句查询更方便,而且每天免费10万次写入,根本用不完
使用命令创建d1数据库
修改wrangler.toml文件复制上面粘贴即可
格式如下
修改代码将原来的501行改成下面的即可
这样
在网页中进入刚刚创建的数据库,新建数据库表三个字段time path log
创建完成之后执行
看看效果
select * from proxylog where path like "%checkLogin%";
支持数据库语句用起来是比KV方便