0x01.web请求、web环境、抓包技巧
网站搭建
- DNS解析
- 域名选择
- http/https
- 证书
- 服务器
web应用环境架构
操作系统
- linux
- windows
开发语言
- php
- java
- ASP/ASPX
- python等
程序源码
- CMS
- 开发框架等
中间件容器
- apache
- nginx
- IIS
- weblogic
- JBoss
- tomcat等
数据库类型
- Access
- mysql
- mssql
- oracle
- redis
- MongoDB等
第三方软件
- phpMyadmin,虽然这个插件方便了管理员,但是同时也方便的了攻击者。很多数据库会对ip做限制,关闭外联,但是使用phpmyadmin,可以直接绕过这些
- vnc等
web漏洞分类
- SQL注入
- XSS注入
- 未授权访问
- 越权逻辑
- 文件安全
- CSRF/SSRF/CRLF
- 弱口令
- RCE
- XXE
web请求
POST和GET
- get仅仅会检索url地址,明文传输
- post不仅会检索url地址,还会检索请求体的数据。在请求体中传输,post会向服务器提交表单,name是给服务器看的。
互联网是如何工作的?
客户端是典型的 Web 用户入网设备(比如,你连接了 Wi-Fi 的电脑,或接入移动网络的手机)和设备上可联网的软件(通常使用像 Firefox 和 Chrome 的浏览器)
服务器是存储网页,站点和应用的计算机。当一个客户端设备想要获取一个网页时,一个网页的拷贝将从服务器上下载到客户端的机器上来在用户浏览器上显示

浏览器如何通过互联网获取网页数据?
浏览器请求DNS服务器获取相应的域名的服务器IP
建立TCP连接,三次握手
浏览器发送HTTP请求到服务器拷贝一份网页到客户端
服务器响应,将网页文件以数据包形式传输到浏览器
这里面服务器可能有多台,需要一个负载均衡设备来平均分配
关闭TCP连接,四次挥手
用户浏览器,渲染相应页面
获取数据后,浏览器内部会发生什么?
在地址栏输入内容时,浏览器的UI线程会捕捉输入内容
如果是网址,则UI线程会启动一个网络线程来请求数据(如上)
如果不是网址,会调用默认的搜索引擎搜索

通过safebrowsing(谷歌内部的一套站点安全系统)是否安全
通过之后,会返回UI线程,UI线程会创建一个渲染器进程来渲染页面。浏览器进程通过IPC管道将数据传递给渲染器进程

渲染器开始干活,前端的事情

文章

- 代理

- 完整流程

请求包
- UA头
- Cookie
- X-Sign-Js:说明参数已经处理过了,所以生成了X-Sign-Js,故修改了参数之后,和原来处理后生成的X-Sign-Js匹配不上了,过不了校验。大部分是前端校验,需要找出密钥和加密函数,进行断点调试。后端校验的话,暂时没思路。
返回包
- server
- 状态码
- 文件判断:200存在,404不存在
- 文件夹判断:403存在,404不沉溺在
代理服务器
- 抓包分析
- 实现转发访问
抓包&封包
抓包抓到的是一些零散的,封包则是对一个完整的动作进行抓取,整体测试触发触发时间数据包(精确)
抓包
根据协议来分的话,可以分成两类:
- HTTP/HTTPS:charles、fiddler、burpsuite
- 其他协议(TCP/UDP等):科来、TCPDump、Wireshark
封包
- 封包傻瓜工具
- 远古封包三件套:代理机器人、CCproxy、WPE
抓包对象
app
思路:app抓包,找到web资产,进行测试。很多app不走http/https,最好直接用呆瓜封包软件
基本流程:
- 使用模拟器,强力推荐逍遥模拟器
- 配置工具证书
- 在模拟器设置代理
解决app抓不到包!!!!
如图,将证书只安装在用户证书中,app打开后无法正常使用。我们需要将证书安装在系统证书目录下

为什么会出现抓不到包?
- 安卓从7.0开始应用只会信任系统预装的CA证书,而不会信任用户安装的CA证书
解决方法
- 使用低于7.0的进行抓包
- 将使用的伪证书安装到系统证书目录中,伪装成系统证书
思路:
- 使用openssl将der证书转为pem证书,生成pem证书的hash,生成要使用的证书。
- 使用adb调试功能,将证书放到系统证书目录中。
具体步骤
- 导出证书,访问http://burp/,将burp.der保存到自己的kali中
- 打开kali终端,过程没有错误的话,生成的如下图
openssl x509 -inform der -in burp.der -out burp.pem//将der证书转为pem证书
openssl x509 -inform PEM -subject_hash_old -in burp.pem//生成pem证书的hash
cp burp.pem 9a5ba575.0//得到Hash值后,将证书文件修改名称为Hash值.0

- 将生成好的证书,放到模拟器的目录下,这里使用的是逍遥模拟器

- 依次执行,执行完成之后就可以抓包了
adb root // 提升到root权限
adb remount //重新挂载system分区
adb push 9a5ba575.0 /system/etc/security/cacerts/ //将证书放到系统证书目录
- 注:
主流安卓模拟器连接方式:
夜神模拟器:adb connect 127.0.0.1:62001
逍遥安卓模拟器:adb connect 127.0.0.1:21503
天天模拟器:adb connect 127.0.0.1:6555
海马玩模拟器:adb connect 127.0.0.1:53001
网易MUMU模拟器:adb connect 127.0.0.1:7555 MacOS:adb connect 127.0.0.1:5555
genymotion模拟器:adb connect 127.0.0.1:5555
谷歌原生模拟器:adb connect <设备的IP地址>:5555
charles
help--->register
Registered Name: https://zhile.io
License Key: 48891cf209c6d32bf4
proxy--->proxy setting,默认端口是8888

proxy--->SSL proxy setting,SSL代理

help-->SSL proxying-->Install Charles Root Certificate,安装证书!!!!选择本地计算机、受信任的根证书颁发机构

- 设置代理!!!,注意需要打开charles,代理主机名填写local IP Address,不清楚可以在charles的
help-->local IP Address查看

- 逍遥模拟器下载证书!!!!,输入
chls.pro/ssl

- 安装证书,
设置-->网络和互联网-->网络偏好设置-->安装证书命名成charles,成功抓包
fiddler
- 下载链接:
https://pan.baidu.com/s/14C0bOTICZADj03ZGx_eygw
提取码: chdi - 按照图片勾选,并且将证书导出

- 勾选该选项,可进行app抓包

- 设置代理,fiddler默认端口是8888

- 逍遥模拟器下载证书,输入
192.168.1.8:8888

- 自动安装证书,或者手动
设置-->网络和互联网-->网络偏好设置-->安装证书命名成fiddler
burp
- 在burp中设置ip和port

- 逍遥模拟器下载证书

- 下载好后,
文件管理器-->download将后缀改成cer

- 这时候会自己弹出安装证书,或者可以去设置那里手动安装证书,成功抓包
httpcanary
下载地址:链接: https://xiao6ming6.lanzouq.com/iQcB902w15pg 密码:4wby
设置----->SSL证书设置----->安装httpcanary根证书,抓包的时候开启右下角的小飞机
参考链接:https://blog.csdn.net/weixin_53891182/article/details/124739048

pc应用
这里的pc应用,指电脑应用程序,比如像有道词典
- 科来
- wireshark
- tcpdump
- 封包工具也可以试试
因为很多都不走http/https协议,大多是tcp/udp等,找到ip后,ip反查,扫端口,扫目录
小程序
proxifier+burp
- 设置本机ip,端口可以自己定,我这里选择8080

- burp中也设置本机ip,端口和proxifier一样

- 通过任务管理器,把这两个添加进来

封包
封包流程:
方法一:直接用呆瓜封包软件
- 这里是雷电模拟器,选LdVBoxHeadless.exe
对应进程:
雷电模拟器:LdBoxHeadless.exe
逍遥模拟器:MEmuHeadless.exe
夜神模拟器:NoxVMHandle.exe
天天模拟器:VBoxHeadless.exe

方法二:古老三件套
- 1. 关闭模拟器代理
- 2. 安装代理机器人

- 3. 点击ccproxy,进行如下两个地方设置,账号这里选择所有都抓



- 4. 设置好端口,端口和第四步的socks那同一个端口,然后开启代理

- 5. 打开WPE,选择CCproxy

Q&A
- 为什么抓包?
抓包应用的资产信息进行安全测试 - 抓包对象?
小程序、app、桌面应用
- 抓包协议区别工具?
有部分不走http/https协议,需要全局协议抓包 - 封包和抓包不同之处?
零散和整体的区别,封包能准确到每个操作的数据包
0x01.web请求、web环境、抓包技巧的更多相关文章
- Fiddler是最强大最好用的Web调试工具之一--网站抓包分析
Fiddler 教程 Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发 ...
- NetAnalyzer笔记 之 五 一些抓包技巧分享(不定期更新)
[创建时间:2016-03-12 10:00:00] [更新时间:2016-05-21 10:00:00] NetAnalyzer下载地址 前一段时间应为工作关系,NetAnalyzer笔记系列已经很 ...
- 【Fiddler学习】Fiddler抓包HTTPS请求和手机抓包
一.安装Fiddler 百度搜索:Fiddler抓包工具,然后安装即可. 然后打开Fiddler工具,打开浏览器随意输入任何网址,就可以在Fiddler看到抓包信息. 但是:默认情况下,Fiddler ...
- Linux环境抓包命令
有时候有些接口调用问题不好定位或者日志不够详细,那么我们往往会选择通过抓包来看详细的通讯过程.抓包有相关软件,这里说如何直接在环境里抓.假如现在我们在 Linux 下部署了 Tomcat 服务器,端口 ...
- 使用被动混合内容的方式来跨越浏览器会阻断HTTPS上的非安全请求(HTTP)请求的安全策略抓包详解
/*通过传入loginId在token中附加loginId参数,方便后续读取指定缓存中的指定用户信息*/ GET /multitalk/takePhone.php?loginId=4edc153568 ...
- Mac 环境 下使用Charles 抓包Http/Https请求
实现目标 在Mac 上 对 iOS 真机 和 模拟器 进行 Http/Https抓包 使用工具 Mac 上 Charles 4.2 安装 参考链接 1. 和 链接 2. 抓包 http 请求 (1 ...
- .net core使用HttpClient发送代理请求_程序内抓包_Fiddler抓包
前言: 通过Fiddler抓取浏览器请求数据,相信大家已经都会用了,我们知道Fiddler是通过在本机计算器添加一个默认的代理服务器来实现的抓包数据的,端口号为:8888. 其实当我们打开Fiddl ...
- HTTP抓包实战
HTTP:超文本传输协议 允许将HTTP文档从Web服务器传送到客户端的浏览器.HTTP请求报文分为3部分.第一部分叫做起始行(Request line).第二部分叫首部(Request Header ...
- IOS抓包工具Stream——让移动端的抓包变得轻而易举
有一天下晚班回家,在地铁上的时候,开发发来信息说,能不能把之前创建的bug再抓包看下数据.顿时心里就想,在地铁上,我上哪抓包去.之后百度了下,发现ios有一款非常实用的抓包工具,大家可以上App St ...
- 《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(10)-Fiddler如何设置捕获Firefox浏览器的Https会话
1.简介 经过上一篇对Fiddler的配置后,绝大多数的Https的会话,我们可以成功捕获抓取到,但是有些版本的Firefox浏览器仍然是捕获不到其的Https会话,需要我们更进一步的配置才能捕获到会 ...
随机推荐
- valgrind 配合 gdb 调试程序
在实际研发过程中,可能会遇到过这样的问题:测试通过 valgrind 验证当前代码存在变量未初始化的问题,但仅通过 valgrind 测试报告,研发无法确认具体的应用场景.本文将通过 valgrind ...
- 三维模型OSGB格式轻量化的数据压缩与性能平衡分析
三维模型OSGB格式轻量化的数据压缩与性能平衡分析 在三维模型应用中,OSGB格式轻量化处理是一种常见的技术手段,它可以通过数据压缩.简化.滤波等操作,降低三维模型数据的存储空间和传输带宽需求,提高应 ...
- 一键安装lnmp 环境
一键安装lnmp 环境 目录 一键安装lnmp 环境 操作步骤 1.添加网站(虚拟主机) 2.伪静态管理 3.上传网站程序 4.已存在虚拟主机添加ssl证书开启https 5.列出网站(虚拟主机) 6 ...
- IOS苹果应用IPA重签名软件手机版(苹果重签名,企业签名,安卓苹果平台,时间控制)
软件简介 IOS苹果应用IPA重签名软件手机版,可以在安卓或者苹果手机上,苹果应用IPA文件重新签名,无需MAC苹果电脑和配置XCODE开发环境,便可以直接对IPA文件进行签名,签名在本地进行,不消耗 ...
- 位图(bitmap)原理以及实现
大家好,我是蓝胖子,我一直相信编程是一门实践性的技术,其中算法也不例外,初学者可能往往对它可望而不可及,觉得很难,学了又忘,忘其实是由于没有真正搞懂算法的应用场景,所以我准备出一个系列,囊括我们在日常 ...
- BizSpring在线商城常见问题
一.什么是BizSpring在线商城? BizSpring在线商城是一个用java语言开发的完全开源的网络商城平台.该项目已经经历多次迭代升级是一个的成熟的在线商城解决方案,它具有轻量级,易于维护,操 ...
- 【动画进阶】神奇的背景,生化危机4日食 Loading 动画还原
最近,在 Steam 玩一款老游戏(生化危机 4 重置版),其中,每当游戏转场的过程中,都有这么一个有趣的 Loading 动画: 整个效果有点类似于日食效果,中间一圈黑色,向外散发着太阳般的光芒. ...
- 【v2v迁移】Xen2kvm 迁移-linux篇
迁移环境: 源平台:华为FusionComputeV100R006C10SPC101 目标平台:基于KVM虚拟化的云平台,本文以原生的libvirt为例 虚拟机:centos 7.6 具体操作步骤: ...
- 文心一言 VS 讯飞星火 VS chatgpt (117)-- 算法导论10.3 2题
二.用go语言,对一组同构对象用单数组表示法实现,写出过程ALLOCATE-OBJECT和FREE-OBJECT. 文心一言: 在Go语言中,我们通常使用指针和结构体来表示和操作复杂的数据结构.对于一 ...
- 大语言模型基础-Transformer模型详解和训练
一.Transformer概述 Transformer是由谷歌在17年提出并应用于神经机器翻译的seq2seq模型,其结构完全通过自注意力机制完成对源语言序列和目标语言序列的全局依赖建模. Trans ...