渗透测试-CS架构客户端

网络架构模式

B/S和C/S都是随着互联网的发展而出现的一种网络结构模式,而其用的非常广泛,在我们生活中都很常见。那它们到底是什么呢?接下来就详细的介绍一下B/S和C/S。
渗透测试-CS架构客户端

B/S架构

B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”的首字母,即服务器的意思。B/S就是“Browser/Server”的缩写,即“浏览器/服务器”模式。

B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互。
渗透测试-CS架构客户端
这下是不是明白了“B/S”结构是什么了呢?大家是不是每天都在使用这种结构呢?在手机或电脑上用浏览器上百度搜索、看新闻等就是在使用“B/S”结构进行数据交互。

B/S架构的优点:

  • 客户端无需安装,有Web浏览器即可;
  • BS架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强;
  • BS架构无需升级多个客户端,升级服务器即可。

B/S架构的缺点:

  • 表现要达到CS程序的程度需要花费不少精力;
  • 在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题;
  • 客户端服务器端的交互是请求-响应模式,通常需要刷新页面,这并不是客户乐意看到的(在Ajax风行后此问题得到了一定程度的缓解)。

C/S架构

C是英文单词“Client”的首字母,即客户端的意思,C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。

C/S结构是一种软件系统体系结构,也是生活中很常见的。比如我们手机或电脑中安装的微信、QQ、腾讯视频、酷狗音乐等应用程序就是C/S结构。
渗透测试-CS架构客户端
C/S 架构也可以看做是胖客户端架构。因为客户端需要实现绝大多数的业务逻辑和界面展示。这种架构中,作为客户端的部分需要承受很大的压力,因为显示逻辑和事务处理都包含在其中,通过与数据库的交互(通常是SQL或存储过程的实现)来达到持久化数据,以此满足实际项目的需要。

C/S 架构的优点:

  • C/S架构的界面和操作可以很丰富;
  • 安全性能可以很容易保证,实现多层认证也不难;
  • 由于只有一层交互,因此响应速度较快。

C/S 架构的优缺点:

  • 适用面窄,通常用于局域网中;
  • 用户群固定。由于程序需要安装才可使用,因此不适合面向一些不可知的用户;
  • 维护成本高,发生一次升级,则所有客户端的程序都需要改变。

PC客户端抓包

渗透测试遇到的抓包场景大致可分为三类:

  1. PC端浏览器网页抓包:Web站点这个简单,在浏览器设置代理,并通过BurpSuite、Fiddler即可抓包;
  2. 手机APP/小程序抓包:APP抓包和PC上Web站点抓包方式差不多,但手机端要和PC在同一个局域网,并在手机Wifi设置代理;
  3. PC客户端(C/S)抓包 :即抓windows平台下客户端的包,如PC版腾讯视频,C/S程序抓包可以借助Proxifer+Fiddler。

显然,本文的重点是讲述PC客户端抓包。

Proxifier代理

针对PC客户端(C/S架构)的渗透测试,相比于B/S架构,它所使用到的通讯协议有多种,如TCP、HTTP(S)、TDS等。如何实现PC客户端抓包呢,常使用的工具有Wireshark、iptool、WSExplorer、Proxifier+Fiddler等。

Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作的网络程序能通过HTTPS或SOCKS代理或代理链(Proxifier下载地址)。

由于一般的C/S客户端不能设置代理,所以我们Fiddler检测不到数据,我们可以通过Proxifer来实现把所有的请求抓发给Fiddler,这样我们就可以在Fiddler分析客户端请求。

Proxifer的设置

下载完打开,配置很简单,如下几步即可:

1、打开软件,依次选择,配置文件–>高级–>HTTP代理服务器–>启用HTTP代理服务器支持(Proxifier默认是关闭HTTP协议的,需要手动开启);
渗透测试-CS架构客户端
2、设置代理服务器和Fiddler代理设置匹配,配置文件–>代理服务器->添加。
渗透测试-CS架构客户端3、设置代理规则:默认的Default规则可忽略,点击添加规则并打开系统中Fiddler的应用程序文件目录选择Fiddler.exe,目标主机和目标端口选择“任意” 。
渗透测试-CS架构客户端

Fiddler 抓包

Fiddler也要经过简单的设置:

1、打开Fiddler->Tools->Options->HTTPS,然后全勾上,注意要选择“从所有进程”;
渗透测试-CS架构客户端
2、连接->Fiddler监听端口:8888 ,注意这个端口要和Proxifier的代理端口保持一致。
渗透测试-CS架构客户端
3、设置完毕,在Proxifer可以看到通讯过程及协议;
渗透测试-CS架构客户端
4、在Fiddler获取PC端“腾讯视频”客户端的请求的具体数据:
渗透测试-CS架构客户端渗透测试-CS架构客户端5、电脑上所有的C/S客户端都可以通过此方法抓到包。但是这时候Proxifer打开的时候浏览器会连接不了网络,可以通过设置代理规则,添加浏览器执行程序文件,确认后即可上网,如下图所示:
渗透测试-CS架构客户端

关于PC客户端(CS架构)的渗透测试,更多内容可以参考博文:PC客户端(CS架构)客户端渗透测试指南