ssl新闻资讯

文档中心

Charles鎶撳寘绁炲櫒鎵嬫妸鎵嬫暀浣犲鍑篠SL璇佷功(鍚疄鎴樻渚?

时间 : 2025-09-27 15:43:17浏览量 : 3

2Charles鎶撳寘绁炲櫒鎵嬫妸鎵嬫暀浣犲鍑篠SL璇佷功(鍚疄鎴樻渚?

作为一名网络安全工程师,我经常需要使用Charles等抓包工具分析HTTPS流量。今天我要分享的是一个非常实用的技巧 - 如何从Charles导出SSL证书。这个操作看似简单,但在实际渗透测试和漏洞挖掘中能发挥重要作用。

一、为什么要导出Charles的SSL证书?

想象一下这样的场景:你正在测试一个金融类APP,发现它使用了证书固定(Certificate Pinning)技术。这意味着即使你在手机上安装了Charles的根证书,APP也会拒绝与"不认识的"Charles建立安全连接。这时就需要:

1. 导出目标服务器的原始SSL证书

2. 用Charles的证书替换其中的公钥

3. 重新打包证书后导入手机

这样APP就会认为是在与"可信"服务器通信,而实际上流量正通过Charles代理。

真实案例:2025年某银行APP漏洞挖掘中,安全团队就是通过这种方法绕过了证书固定保护,发现了关键API未授权访问漏洞。

二、详细导出步骤(图文版)

方法1:从已捕获的HTTPS会话导出

1. 启动Charles并访问目标网站(比如https://example.com)

2. 在左侧会话列表找到对应的HTTPS请求

3. 右键点击 → Save SSL Certificates...

4. 选择保存位置(默认会保存为PEM格式)

![Charles导出SSL证书操作截图](https://example.com/charles-export.png)

*小技巧*:如果看不到HTTPS请求内容(显示为乱码),说明需要先安装Charles根证书到你的信任库。

方法2:直接从Charles根证书派生

```

菜单栏 → Help → SSL Proxying → Save Charles Root Certificate...

这会导出Charles的根证书(通常用于安装到手机或浏览器)

三、实战应用场景

场景1:移动端渗透测试

我在测试某电商APP时发现:

1. APP使用了双向TLS认证(mTLS)

2. 服务器端会验证客户端提供的证书

3. 通过导出服务器证书后分析发现:

- 证书中包含了关键的API域名信息

- OCSP响应暴露了内部域名结构

- 最终通过这些信息发现了未文档化的管理后台

场景2:漏洞挖掘中的中间人攻击

2025年某CVE漏洞挖掘过程:

1. 目标系统使用自定义CA签发客户端证书

2. 通过Charles导出服务器证书后:

- 使用openssl分析发现弱签名算法(SHA1WithRSA)

- CA私钥长度只有1024位

- 最终实现了伪造客户端证书绕过认证

```bash

openssl x509 -in exported.crt -text -noout

四、安全防护建议

作为防御方,应该如何防范这类技术被滥用?

1. 强化Certificate Pinning实现

- Google推荐使用Network Security Configuration

- iOS端应采用ATS严格模式

示例Android配置:

```xml

example.com

7HIpactkIAq2Y49orFOOQKurWxmmSFZhBCoQYcRhJ3Y=

fwza0LRMXouZHRC8Ei+4PyuldPDcf3UKgO/04cDM1oE=

2. 定期轮换服务器证书

- AWS ACM等云服务可设置自动轮换

- Let's Encrypt建议90天有效期策略

3. 监控异常CA使用情况

```sql

-- SIEM检测规则示例

SELECT * FROM ssl_certs

WHERE issuer_cn LIKE '%Charles%'

AND event_time > NOW() - INTERVAL '1 hour'

```

五、高级技巧扩展

对于安全研究人员,还可以:

1. 批量导出多域名证书

使用Charles的Map Remote功能配合脚本自动化处理

2. 解码预埋证书

某些APP会将CA公钥硬编码在资源文件中:

```java

// Android代码片段示例

KeyStore ks = KeyStore.getInstance("BKS");

InputStream in = context.getResources().openRawResource(R.raw.cert);

3. 与Burp Suite联动

将导出的PEM格式转换为DER供Burp使用:

```bash

openssl x509 -outform der -in charles.pem -out burp.crt

希望这篇技术分享对你有帮助!在实际工作中运用这些技巧时,请务必遵守法律法规和道德准则。如果你有更多关于SSL/TLS分析的问题,欢迎留言讨论。

TAG:charles ssl 证书导出,ssl证书怎么导入,如何导出ssl证书,ssl证书cer获取crt及key,ssl证书导入,charles