预备知识
1.HTTP调试代理工具原理
HTTP调试代理工具广泛应用于web程序开发、安全测试、流量分析等工作。HTTP调试代理工具工作于TCP/IP参考模型中的应用层,浏览器连接HTTP调试代理工具设置的代理端口后所有满足自定义规则的发往服务器的请求将发送至该工具,用户可以通过该工具确定该流量是否发送至服务器,同时可以修改请求数据(HTTP Request data)和响应数据(HTTP Response data)。HTTP数据流向如图1所示,其中实线表示HTTP请求,虚线表示HTTP响应。从功能实现角度来看,HTTP调试代理工具需要实现如下4项功能:1.解析HTTP数据,如:解析HTTP请求数据和响应数据;2.修改HTTP数据,如:在设置断点后,可修改浏览器发送过来的请求数据,或者修改服务器响应的数据;3.重定向请求,如:利用本地文件替换远程文件,调试线上的js/css代码;4.构造请求,如:构造请求发送数据,比如可以构造畸形HTTP数据来测试网站安全性。
2.Charles简介
Charles是一款常用的HTTP调试代理工具,除了Charles以外常见的HTTP调试代理工具还有有burp suite和fiddler。三种不同的HTTP调试代理工具有不同的优点,相比较而言:burp suite的优势在于功能强大、流量过滤规则丰富;fiddler的优势在于功能简单、流量过滤规则设置方法简单;Charles的优势在于用户交互性能更友好,既可以将流量按照时间序列分组也可以按照域名分组。除此之外,随着更多的网站启用HTTPS,在网络调试过程中捕获HTTPS数据包的场景越来越多,使用burp suite和fiddler都需要先处理好SSL证书的问题,但是Charles工具内置了SSL证书处理机制,几步简单的操作即可添加SSL证书到根证书,使得捕获HTTPS数据更加便捷。
实验目的
通过本实验了解HTTP调试代理工具的运行原理,掌握Charles常见功能使用方法。
实验环境
实验拓扑图:
攻击主机/漏洞主机:win7,IP地址:10.1.1.10。
辅助工具:xampp、Charles。
Charles工具请在实验机内下载使用:http://tools.hetianlab.com/tools/charles.zip。
实验步骤一
本实验从介绍Charles的基本配置开始到详细讲解Charles的捕包、重复发包、文件映射、DNS欺骗等功能的使用方法,最后介绍如何使用Charles完成文件上传绕过攻击。
1.Charles基本配置与基本功能介绍。
2.Charles的数据包修改、重复发包、文件映射、DNS欺骗和模拟慢速网络等功能的使用。
3.使用Charles完成文件上传绕过攻击。
任务描述:介绍Charles的基本配置信息和基本功能。
1.Charles界面如下: