charles 抓包问题 参考
一 抓包原理
Charles作为一个中间人代理,在客户端给服务器端发消息的时候,会截取客户端发送给服务器的请求,然后伪装成客户端与服务器进行通信;服务器返回数据时将截取的数据发送给客户端,伪装成服务器与客户端进行通信。
人话: 把charles当做一个代理
友情提示:手机设置了http代理后,如果charles关闭了手机将无法上网,记得把http代理取消。
二 为什么手机安装了Charles根证书后就能正常抓包呢?
其实Charles做的就是针对HTTPS的通信双方身份的真实性进行处理;
- 当客户端和服务器建立连接时,Charles会拦截到服务器返回的证书(服务器公钥)
- 然后动态生成一张伪造证书(Charles公钥/假公钥)发送给客户端
- 客户端收到Charles证书后,进行验证;因为之前我们手机设置了信任,所以验证通过;(只要手机不信任这种证书,HTTPS还是能确保安全的)
- 客户端生成会话密钥,使用Charles证书对会话密钥进行加密再传输给服务器
- Charles拦截到客户端传输的数据,使用自己的Charles私钥进行解密得到会话密钥
- 连接成功后,客户端和服务器通信,客户端对传输的数据使用会话密钥加密并使用公钥对数据摘要进行数字签名,一同传输给服务器;
- Charles拦截到通信的数据,使用之前获得的会话密钥解密就能得到原始数据;
- Charles同样也能篡改通信的数据:将篡改后的数据重新加密并重新生成摘要并使用之前获得的公钥进行数字签名,替换原本的签名,再传输给服务器;
- 服务器收取到数据,按正常流程解密验证;
- 服务器返回响应数据时,Charles也是类似拦截过程
大致流程图
image.png
二 crontab 定期执行程序的命令 参考
f1 f2 f3 f4 f5 program
- 其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表示要执行的程序。
- 当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其馀类推
- 当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
- 当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
- 当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 7) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
三 常见的 linux 操作
(1)Linux属性:
蓝色:目录文件
绿色:可执行文件
浅蓝色:链接文件
红色:压缩文件
灰色:其他文件
vim使用
vim三种模式:命令模式、插入模式、编辑模式。使用ESC或i或:来切换模式。
命令模式下:
:q 退出
:q! 强制退出
:wq 保存并退出
:set number 显示行号
:set nonumber 隐藏行号
/apache 在文档中查找apache 按n跳到下一个,shift+n上一个
yyp 复制光标所在行,并粘贴
h(左移一个字符←)、j(下一行↓)、k(上一行↑)、l(右移一个字符→)







网友评论