当前位置: 首页 > news >正文

2000块的活嫌低?这个 6 位数的项目,你可不能错过哟!

2000块钱嫌低?这个6位数的项目,你可不能错过,关注有好礼。

最近写了一篇“接了一个2000块钱的活,大家看看值不值”的文章,发现流量和大家互动的热情出奇的高,可能是跟有钱有关的缘故,大家不是奔着技术来的,更多是想看看这个2000块钱的项目到底是啥,到底值不值这个价?

接了一个2000块的小活,大家进来看看值不值,附源码-CSDN博客

先别管这个项目他到底值不值吧,至少呢,这篇文章给我的公&号至少博得了100个新粉丝,CSDN更是冲击到了地区榜前3,哈哈,有点小意外。真的非常感谢大家!希望大家继续关注和互动,增加我输出的动力(另外别忘了关注我的公&号:新质程序猿,会有额外惊喜,那里也可以直接找到我,CSDN 私信只能回复 5 个陌生人/天)。

为了迎合大家的口味呢,今天我又把我古董级的,曾经为我挣了 6 位数的小项目分享给大家,今天先不介绍之前具体做了啥,纯粹是先把这个重量级的小项目先分享出来,今天只讲技术,后续我再分享如何挣钱的(您的留言互动关注是我持续输出的源泉哟,让我找到成就感,才更有动力)。

想必大家都知道 fiddler 吧?就是一款流行的抓包工具(如果不知道的话,可以留言求分享,后续也可以简单介绍一下)。

今天我要分享给大家的不是 fiddler, 而是通过 Java 实现了 fiddler 部分功能的一个开源项目:

https://github.com/bytesops/jProxyicon-default.png?t=N7T8https://github.com/bytesops/jProxy

项目介绍

jProxy 是一个 JAVA 编写的 HTTP 代理服务器类库,支持 HTTP、HTTPS、Websocket 协议,并且支持 MITM(中间人攻击大家可以自己搜一下,HTTPS劫持算其中的一个具体实现,直白点理解就是:你原本想和小花说“我爱你”,但是一天,小强带着假发来到你身边,冒充小花,你就把这句话告诉了小强,然后小强又带上面具冒充你,跟小花说了一句“我讨厌你”,然后,就没有然后了),可以对 HTTP、HTTPS 协议的报文进行捕获和篡改。

熟悉 fiddler 的都知道 fiddler 可以截获 https 的内容,本项目的价值区别于 fiddler 的点就是可以实现程序代码介入 http 请求的全过程,至于能做什么,大家可以自由想象,欢迎留言区互动。

为了把技术讲的清楚一点,还是从网上抄点干货吧(抄书不算抄,至少我筛选过的,如有错误,大家赶紧指正)。

HTTPS协议

首先来回顾下https协议的ssl握手(看不懂的也可以跳过,不过建议好好看一下,面试很有用)

简单叙述下ssl 握手,上面只是单向验证过程(大多我们访问网站都是单向的,除非一些银行网站或服务器之间会用到双向验证)

  1. 客户端(左侧)向服务器发出ssl握手,发送client-random 随机数

  2. 服务器返回 ssl 证书和 server-randon 随机数

  3. 客户端校验 ssl 证书,校验通过,再生成一个premaster-secret 随机数用服务器证书里的公钥加密发送,这个时候客户端已经可以通过三个随机数算出对称加密的密钥了

  4. 服务器用私钥解密 premaster-secret,也拿到了三个随机数算出对称加密的密钥

  5. 两边都用算出来的对称密钥进行报文加密和解密,传输中的信息都是密文

注意第 3 步非常关键,ssl 证书是采用信任链的方式来验证 ssl 证书是否有效,在计算机中都会内置好许多受信任的 CA 证书(见下图 电脑查找设置- 管理计算机证书 ),而只有受信任的 CA 证书签发的 ssl 证书来访问浏览器才会验证通过,不然就会提示证书不安全。

计算机内置的,我们大体上认为是权威的(不过也发生过 权威机构 证书泄露的事件),那么我们是不是可以伪造一个呢?现在有请小强。

自定义根证书

我们可以借助 openssl 自签一个 ca 证书,并安装到自己的电脑里,并且选择信任它(相信小强是小花)。

注:如果为了快速验证上面的小项目,不必自己生成,可以直接使用项目里的 ca.crt 安装,下面了解即可,如遇到项目里的 ca 证书过期了,可以尝试自行生成,也可以留言,我来更新。

# key 的生成,生成 RSA 密钥,openssl 格式,2048位强度,ca.key 是密钥文件名
openssl genrsa -out ca.key 2048# crt 的生成,通过-subj 选项可以自定义证书的相关信息
openssl req -sha256 -new -x509 -days 365 -key ca.key -out ca.crt \-subj "/C=CN/ST=GD/L=SZ/O=byteops/OU=study/CN=jProxyRoot"

生成了 ca.crt 即 ca 证书,双击可以安装(优先安装项目里的,方便演示

HTTPS拦截

安装证书后,需要重启一下计算机,不然证书可能有缓存,浏览器不识别。 重启后,执行项目里的

https://github.com/bytesops/jProxy/blob/main/src/main/java/com/github/bytesops/jproxy/HttpProxyServerApp.java

main函数,启动项目

/*** 测试 main*/
public class HttpProxyServerApp {public static void main(String[] args) {System.out.println("start proxy server");HttpProxyServerConfig config = new HttpProxyServerConfig();config.setHandleSsl(true);new HttpProxyServer().serverConfig(config).proxyInterceptInitializer(new HttpProxyInterceptInitializer() {@Overridepublic void init(HttpProxyInterceptPipeline pipeline) {pipeline.addLast(new FullResponseIntercept() {@Overridepublic boolean match(HttpRequest httpRequest, HttpResponse httpResponse, HttpProxyInterceptPipeline pipeline) {// 在匹配到百度首页时插入jsreturn HttpUtil.checkUrl(pipeline.getHttpRequest(), "^www.baidu.com$")&& HttpUtil.isHtml(httpRequest, httpResponse);}@Overridepublic void handleResponse(HttpRequest httpRequest, FullHttpResponse httpResponse, HttpProxyInterceptPipeline pipeline) {// 打印匹配到的 hostString host = httpRequest.headers().get(HttpHeaderNames.HOST);System.out.println(host);// 修改响应头和响应体httpResponse.headers().set("handle", "edit head");httpResponse.content().writeBytes("<script>alert('hello jproxy')</script>".getBytes());}});}}).start(9999);}
}

开启代理

启动项目后,需要开启代理才能拦截到请求(目前还做不过 fiddler 的自动,也欢迎大家提 PR 一起改进),代理开启也很简单,电脑网络配置,代理,手动配置代理(记得点保存哟):

访问网站

打开浏览器,访问百度首页:

https://www.baidu.com

即会弹出:

F12 打开控制台,也可以刷新页面,可以看到 响应头 中多了一条记录:

关注有后续

大家记得三连哈,我的博文绝不会设置收费或者关注才能查看全文的,分享你就好好分享,耍什么小伎俩啊(虽然说涨粉确实效果不错,但我真的觉得恶心),大家愿意关注就关,不愿意拉倒。

另外,也希望大家多多关照我的公&号(自愿):新质程序猿,上面的推文可能更实时,不迷路,不强求,不过我准备的有福利,大家可以领完再取关都行(小心我托梦打你,哈哈哈)。

这个小项目就分享到这里吧,后续再具体介绍我是如何通过这个项目挣到 6 位数的,大家也可以尝试互动起来,说不定有好项目可以一起做。

相关文章:

2000块的活嫌低?这个 6 位数的项目,你可不能错过哟!

2000块钱嫌低&#xff1f;这个6位数的项目&#xff0c;你可不能错过&#xff0c;关注有好礼。 最近写了一篇“接了一个2000块钱的活&#xff0c;大家看看值不值”的文章&#xff0c;发现流量和大家互动的热情出奇的高&#xff0c;可能是跟有钱有关的缘故&#xff0c;大家不是奔…...

【Postman工具】

一.接口扫盲 1.什么是接口&#xff1f; 接口是系统之间数据交互的通道。拿小红到沙县点餐为例&#xff1a;小红想吃鸭腿饭。她要用什么语言来表达&#xff1f;跟谁表达&#xff1f;通过什么表达&#xff1f;按照生活习惯应该是&#xff1a;小红根据菜单对服务员用中文表达她想要…...

全网超详细攻略-从入门到精通haproxy七层代理

目录 一.haproxy概述 1.1 haproxy简介 1.2 haproxy的主要特性 1.3 haproxy的优缺点 二.负载均衡介绍 2.1 什么是负载均衡 2.2 为什么用负载均衡 2.3 负载均衡类型 2.3.1 四层负载均衡 2.3.2 七层负载均衡 2.3.3 四层和七层的区别 三.haproxy的安装及服务 3.1 实验环…...

AI编程辅助工具:CodeGeeX 插件使用

CodeGeeX 插件使用 前言1.支持的平台2.安装步骤3.启用插件4.代码生成5.代码优化 前言 CodeGeeX 是一款基于 AI 技术的编程助手插件&#xff0c;旨在帮助开发者提高编程效率和代码质量。它能够智能生成代码、优化现有代码、自动生成文档以及回答编程相关的问题。无论您是初学者…...

sql注入实战——thinkPHP

sql注入实战——thinkPHP sql注入实战——thinkPHPthinkPHP前期环境搭建创建数据库开始寻找漏洞点输入SQL注入语句漏洞分析 实验错误 sql注入实战——thinkPHP thinkPHP前期环境搭建 下载thinkPHP文件 解压&#xff0c;将framework关键文件放到think-5.0.15中&#xff0c;改…...

MySQL 迁移 OceanBase 的 Oracle模式中,实现自增主键的方法

本文作者&#xff1a;赵黎明&#xff0c;爱可生 MySQL DBA 团队成员&#xff0c;熟练掌握Oracle、MySQL等数据库系统&#xff0c;擅长对数据库性能问题的诊断&#xff0c;以及事务与锁机制的分析等。负责解决客户在MySQL及爱可生自主研发的DMP平台日常运维中所遇到的各种问题&a…...

【C++ 面试 - 基础题】每日 3 题(十一)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…...

ESP8266在线升级OTA固件

OTA的基本实现方式&#xff1a; ESP8266 的 OTA 实现有几种方式&#xff0c;常用的方式包括&#xff1a; 1、Arduino OTA&#xff1a;使用Arduino IDE提供的OTA功能&#xff0c;可以直接通过Arduino IDE上传固件到ESP8266。 2、Web OTA&#xff1a;ESP8266运行一个简易的Web服…...

精通C++ STL(六):list的模拟实现

目录 类及其成员函数接口总览 结点类的模拟实现 构造函数 迭代器类的模拟实现 迭代器类存在的意义 迭代器类的模板参数说明 构造函数 运算符的重载 --运算符的重载 运算符的重载 !运算符的重载 *运算符的重载 ->运算符的重载 list的模拟实现 默认成员函数 构造函数 拷贝…...

《雅思口语真经总纲1.0》话题实战训练笔记part1——6. Music

《雅思口语真经总纲1.0》笔记——第四章&#xff1a;口语素材大全&#xff08;part1、part2、part3回答准则及练习方法&#xff0c;不包括范例答案&#xff09;★★★★★ 文章目录 MusicWhen do you listen to music?20240804答评价注意事项1、在说到“no music”时&#xff…...

Python之赋值语句(多重赋值和交换赋值)

这是《Python入门经典以解决计算问题为导向的Python编程实践》73-74页关于赋值的内容。讲了Python中几种赋值方式。 赋值语句 1、最简单的赋值&#xff1a;ab2、多重赋值&#xff1a;a,b,c1,2,33、交换&#xff1a;a,bb,a 1、最简单的赋值&#xff1a;ab b可以是数字、字符串…...

网络协议七 应用层 HTTP 协议

应用层常见的协议 HTTP协议 1. 如何查看我们的http 协议全部的内容有哪些呢&#xff1f; 一种合理的方法是 通过 wireshark 软件&#xff0c;找到想要查看的HTTP --->追踪流--->HTTP流 来查看 结果如下&#xff1a;红色部分 为 发送给服务器的&#xff0c;蓝色部分为服务…...

uniapp vue 在适配百度小程序平台动态:style

uniapp vue 在适配百度小程序平台动态:style踩坑报错Unexpected string concatenation of literals 抖快平台动态style写法基本是 <view :style"{width: 686rpx, height: (setHeight 96) rpx}"> </view>这种写法在百度上会又解析报错&#xff1a; Une…...

【最小生成树】(二) Kruskal 算法

题目: 寻宝 题目描述 在世界的某个区域&#xff0c;有一些分散的神秘岛屿&#xff0c;每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路&#xff0c;方便运输。 不同岛屿之间&#xff0c;路途距离不同&#xff0c;国王希望你可以规划建公路的方案&#xf…...

haproxy最强攻略

1、负载均衡 负载均衡&#xff08;Load Balance&#xff0c;简称 LB&#xff09;是高并发、高可用系统必不可少的关键组件&#xff0c;目标是 尽力将网络流量平均分发到多个服务器上&#xff0c;以提高系统整体的响应速度和可用性。 负载均衡的主要作用如下&#xff1a; 高并发…...

XetHub 加入 Hugging Face!

我们非常激动地正式宣布&#xff0c;Hugging Face 已收购 XetHub &#x1f525; XetHub 是一家位于西雅图的公司&#xff0c;由 Yucheng Low、Ajit Banerjee 和 Rajat Arya 创立&#xff0c;他们之前在 Apple 工作&#xff0c;构建和扩展了 Apple 的内部机器学习基础设施。XetH…...

在编程学习的海洋中,如何打造高效的知识宝库

目录 在编程学习的海洋中&#xff0c;如何打造高效的知识宝库一、笔记记录的重要性&#xff1a;为知识设立灯塔二、快速记录的策略&#xff1a;抓住知识的核心三、系统化的整理&#xff1a;构建个人知识体系四、实用工具推荐&#xff1a;为知识管理添砖加瓦五、保持条理性的秘诀…...

string详解(1)

1.C语言中的字符串 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&#xff0c;C标准库中提供了一些str系列的库函数&#xff0c;但是这些库函数与字符串是分离开的&#xff0c;不太符合OOP的思想&#xff0c;而且底层空间需要用户自己管理&…...

Linux云计算 |【第二阶段】NETWORK-DAY4

主要内容&#xff1a; NAT 原理与配置&#xff08;私有IP地址、静态NAT转换、Easy IP&#xff09;、VRRP解析&#xff08;主路由器、备份路由器、虚拟路由器、优先级&#xff09; 一、NAT概述 NAT 网络地址转换&#xff08;Network Address Translation&#xff09;是一种网络…...

amazon linux使用密码登录或者root登陆

1. 首先要把创建root密码&#xff0c;如果原来的密码不记得了&#xff0c;可以直接用 sudo passwd -d root 删除原来的密码 然后创建root密码 sudo passwd root 2. 修改 sshd_config 文件 vim /etc/ssh/sshd_config 允许使用密码登录 PasswordAuthentication yes 允许root…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Java求职者面试指南:计算机基础与源码原理深度解析

Java求职者面试指南&#xff1a;计算机基础与源码原理深度解析 第一轮提问&#xff1a;基础概念问题 1. 请解释什么是进程和线程的区别&#xff1f; 面试官&#xff1a;进程是程序的一次执行过程&#xff0c;是系统进行资源分配和调度的基本单位&#xff1b;而线程是进程中的…...

并发编程 - go版

1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程&#xff0c;系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

密码学基础——SM4算法

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​专栏主页&#xff1a;密码学 &#x1f4cc; 【今日更新】&#x1f4cc; 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...

小智AI+MCP

什么是小智AI和MCP 如果还不清楚的先看往期文章 手搓小智AI聊天机器人 MCP 深度解析&#xff1a;AI 的USB接口 如何使用小智MCP 1.刷支持mcp的小智固件 2.下载官方MCP的示例代码 Github&#xff1a;https://github.com/78/mcp-calculator 安这个步骤执行 其中MCP_ENDPOI…...