chapter4--HTTP协议和抓包


大部分在网络安全基础知识学过,只补充知识点。

Http协议

...
** GET请求 **

GET /demo01/getNotice HTTP/1.1 CRLF(\r\n)回车换行符 //请求行
Host:www.dtasecurity.cn(\r\n) //请求头
(\r\n) //请求空行


GET /demo01/getWallpaper?classify=yzmn&limit=1 HTTP/1.1
Host:www.dtasecurity.cn

...
** POST请求**

POST /demo01/getWallpaper HTTP/1.1
Host:www.dtasecurity.cn
Content-length:21 //发送请求体长度
Content-type:application/x-www-from-urlencoded //请求类型 from表单

calssify=yzmn&limit=1
** 响应 **
HTTP/1.1 200 OK //响应行
Content-Type: application/json
Transfer-Encoding: chunked
Date: Mon, 27 Dec 2021 07:26:52 GMT

82 //82个字节
{"title":"软件进入提示:","message":"欢迎大家报名学习大数据安全课程,当前系统时间:2021-12-27 03:26:52"}
0 //结束

使用netcat/telnet模拟http协议
wireshark使用

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。通过与其他工具结合和重定向,你可以在脚本中以多种方式使用它。使用netcat命令所能完成的事情令人惊讶。
netcat所做的就是在两台电脑之间建立链接并返回两个数据流,在这之后所能做的事就看你的想像力了。你能建立一个服务器,传输文件,与朋友聊天,传输流媒体或者用它作为其它协议的独立客户端。

两者区别

telnet可以实现的功能:
连接服务器端口,并进行通信 登录远程telnet服务器,使用命令行对其进行控制
nc可以实现的功能:
监听服务器端口,并与客户端通信(最多只能接收一个客户端) 对指定服务器进行端口扫描 作为客户端连接到远程服务器进行通信

选中网卡
在这里插入图片描述
命令访问 网站某个端口

nc www.dtasecurity.cn 18080

过滤ip,可以看到139.227.253.52返回了三次,tcp三次握手。
在这里插入图片描述
使用GET请求,报错了,为什么呢,需要回车换行
在这里插入图片描述
在这里插入图片描述

使用 -C 发送 CRLF ,两次空格结束。可以看到响应。
在这里插入图片描述
wrieshark 右键Follow TCP Stream查看
在这里插入图片描述
telnet使用
在这里插入图片描述
ctrl+] 设置crlf
在这里插入图片描述

抓包

项目生成的apk
在这里插入图片描述
肉丝大佬写的抓包工具r0capture(hook)

python r0capture.py -h

在这里插入图片描述

首先需要frida-srver 文件 push到手机上

adb push 命令使用

adb push /root/Desktop/frida-server/frida-server-12.8.0-android-arm /dat/local/tmp

报错,我手机还没弄好,等我刷个机回来。
在这里插入图片描述
刷好了
r0capture使用需要在手机上安装frida-server
先检查一下连接

adb devices

查看本机frida版本

frida --version
#改变版本
pyenv local 3.8.0      版本 3.8.0是frida12.8.0

在这里插入图片描述

adb push frida-server-12.8.0-android-arm64 /data/local/tmp
#进入手机shell
adb shell
#运行
cd /data/local/tmp
 ./frid-server-12.8.0-android-arm64
#提示can't execute: Permission denied没有执行权限
#chmod给权限
chmod 777 ./frid-server-12.8.07-android-arm64
#在运行一次,还是不行提示Permission denied,没有权限
#需root运行
su
#由$变成#
#在一次执行
./frid-server-12.8.0-android-arm64


开启android studio 开启调试
在这里插入图片描述

需要知道包名
在这里插入图片描述

python r0capture.py com.intyt.my_wallpaper -U
#提示缺少hexdump库
pip install hexdump

在这里插入图片描述
在这里插入图片描述
ctrl+z
为了方便导入到文档去

python r0capture.py com.intyt.my_wallpaper -U >> wallpaper.out

在这里插入图片描述

手机配置Charles抓包(中间人)

虚拟机需要设置成桥接模式,因为需要手机ping通手机。
不能上网查看一下配置
在这里插入图片描述

#进入到charles /bin目录 运行
./charles
#虚拟机连上手机
scrcpy 

手机和虚拟机连同一个路由,然后手机开启代理
在这里插入图片描述
在这里插入图片描述
代理ip虚拟机,端口和charles一致。
在这里插入图片描述
然后没反应
用burp试试。

java -jar burploader.jar 

没问题啊
在这里插入图片描述

我灌个鸡重启试试
网络没问题
在这里插入图片描述
重新设置
在这里插入图片描述
出现请求了,点击allow
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述