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


