charles请求转发_Charles应用实践之篡改请求和响应

本文介绍了如何使用Charles工具进行HTTP请求的拦截、篡改和响应检查,以测试服务端校验和安全漏洞。通过设置断点,修改上传文件的请求参数,观察数据库中是否保存篡改后的数据,以此判断程序是否存在安全问题。同时,文章还提到了域名映射、弱网测试、请求过滤以及抓取移动端网络包的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

?如能帮到你,下方为我们点个 a2c0165b9a18846a064a747701f9b684.gif?推荐:干货,接口测试面试题

通常我们在测试过程中可以使用Charles拦截请求,篡改请求和响应,检查服务端是否有校验的情况;检查是否存在漏洞,就看拦截之后修改过的数据是否写进了数据库。

使用方法:

举例一:上传文件

1、先打开charles工具(如下图,第4个开放断点的按钮要打开)——然后去浏览器中输入我们要访问的地址——会发现charles中会出现浏览器中访问的地址(这个时候你在浏览器操作,charlse就会记录下来)

4b86b884d0602d465a27e8fc4465fb46.png

2、然后到你需要设置断点或拦截请求的页面后——在需要拦截请求的那一步操作之前(比如上传一个材料的操作,先点击上传材料按钮,然后就去抓包工具里面打断点),给访问地址文件夹设置断点(右键--Breakpoints,不要对具体的某个请求设置断点,而是整个访问地址文件夹)

3、如果只是拦截请求,就回到浏览器中去刷新下——会发现charles中这个地址前面变红,无论浏览器中做什么操作,charles中都不改变,并且浏览器中会一直转圈圈,访问不了

4、如果需要拦截请求并篡改请求,跳过第3步,(步骤:打开charles——浏览器访问网页——访问到网页中需要拦截的那一步——charles打断点——浏览器中进行操作(比如上传某个文件)——回到charles进行篡改)

4.1、在浏览器页面操作上传文件,比如1.txt

692b99588092a7d33d7f8d8911498d7b.png

4.2、然后会自动跳转到或手动打开charles断点操作页面Breakpoints的概述,右侧会出现Edit Request的编辑框——点击Edit Request

f5a69cc578b1cf914f82e342cd32f673.png

4.3、点击Text,对上传的文件进行修改,比如改成1.asp这个文件

06459f2d3345b4bec170b9582d0cc23f.png

4.4、点击1次execute,进入到Edit Response页面中,点击JSON Text可以查看到,刚刚我们修改过的文件后缀已经变成了asp这个后缀

0e24bb76eb3e951dbe656dacd31a1e49.png

4.5、再次点击Execute,再回到网页上去看,刚刚上传的1.txt是否变成了你修改过后的名字,并且去看下数据库里面是否有插入一条你修改过后的数据,如果有,则表示请求被篡改了,需要修改

909f62753dce63a07a6f251994ad1bd9.png

其实4.4的步骤中已经看到上传.asp这个文件的情况了,展示的情况就是数据库里面展示的文件名之类的,大家可以去数据库,也可以去附件存储路径里面能查到.asp文件

5、如果需要拦截请求并篡改响应:跳过第3步,直接在页面操作上传文件1.txt,然后会自动跳转到或手动打开charles断点操作页面Breakpoints的概述,右侧会出现Edit Request的编辑框——直接点击Execute——会出现Edit Reponse——找到响应中的JSON Text输出结果,进行修改,点击Execute,浏览器是会输出篡改后的请求,数据库里面是篡改之前的,这个是正常的情况,(感觉这个篡改响应没什么用)

总结:看这个程序有没有问题,就看数据库到底有没有入库

如果篡改请求后,得到的响应结果和实际结果不一致,则表示是有问题的

举例二:检查密码是否密文传输,在Edit Request的Text里面可以看到是否加密处理了

7cbe9eaedaee84b1c40aae0a1edc9af9.png

1、域名映射

请求地址a会快速到达请求地址b上,一般是为了快速把请求转发到另外一个环境上,比如正式环境的接口和测试环境的接口不一样时,测试环境测试通过之后需要用到正式环境的接口去进行测试,开发重新打包比较浪费时间,可以采用这种域名映射

使用方法:

Tools——Map Remote——勾选Enable Map Remote——Add添加后,输入from的域名,和to的域名,如果必要要写请求协议,点击OK再去访问from的域名会发现,访问的是a的地址,但是页面是b的页面

注意:访问完成之后,Enable Map Remote前面的勾选框一定要去掉,不要勾选

fe2834bd039bc5921237a513a7a9a696.png

2、弱网测试

使用方法:

Proxy--Throttle Settings--勾选--设置弱网测试

f59192abeedf1a84bab9ac8bb75d8609.png

3、过滤请求

只想看你想看的域名,就可以设置包括include的内容

使用方法:

Proxy——Recording Settings——Include——域名输入*sss*,一定要加通配符——网页中只要域名中包含sss的,在charles中都能抓到

4、抓手机的包

通过配置后,手机访问浏览器,charles工具也可以抓到信息

使用方法:

①、确定手机和电脑在同一个局域网,能互相ping通(charles中Help--Local Ip Address查看)

②、手机在连wifi的地方设置代理,配置代理改为手动--服务器ip连1中查看到的ip,端口默认是8888,点击右上角的存储--charles中会弹框说是否允许--允许后手机端访问浏览器,抓包工具中就会出现抓包信息

———————  End  ———————

人员招聘 / 岗位内推:

请加微信 1327239410 或 QQ1327239410

行业交流 / 加入“软件测试高端人才”微信交流群:

请加群主微信 wycwyn0711 或 ninanboy

内容投稿:

请发邮箱 wangpinqing@testin.cn

a91384f8a362ff61279265bb3ab6420e.png

如能帮到你,为我们点个哦 a2c0165b9a18846a064a747701f9b684.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值