一、抓包&封包&协议&APP&小程序&PC应用&web应用
- APP&小程序&PC抓包HTTP/S数据——Charles、Fiddler、Burpsuit;
- 程序进程&网络接口&其他协议抓包——Wireshark、科来网络分析系统、TCPDump(linux);
- 通讯类应用封包分析发送接收——WPE四件套封包、科来网络分析系统。
- 模拟器:逍遥模拟器、雷电模拟器。
注意:雷电模拟器4.0会抓不到部分数据包,逍遥模拟器安游戏可能很卡。
工具相关证书安装指南:Charles、Fiddle
Charles不太友好,点一个按钮会高亮多个网址,Fiddler会好点。Burp抓小程序的包比较麻烦。
总的来说,APP、PC抓包还得是Burpsuit;小程序抓包则需要用Charles or Fiddle。
有些APP没有Web协议,该怎么办?
对于这种非web协议的APP,需要用WPE四件套封包、科来网络分析系统。
抓包与封包:一个回城动作可能会发送很多数据包,抓包与封包的区别在于:抓包会抓取实现回城这一动作的所有数据包,且分别显示;封包则是以动作为单位进行数据包抓取,最终呈现为抓取到"一个数据包"。
封包监听工具1.13(WPE三件套),该工具所有协议都会抓取。
WPE三件套的原理:apk机器人
将模拟器的流量转发给ccproxy
,wpe
监控cc进程,实现封包抓包。(不太好用,还得是封包监听工具1.13)
总结:
- 为什么要抓包?——抓包的意义在于,抓取应用的资产信息,并进行安全测试。
- 抓包对象有哪些?——APP、小程序、桌面应用等
- 协议区别?——有部分应用不走HTTP/S,需要用到全局协议抓包
- 封包和抓包的不同之处?——零散(抓包)和整体(封包)的区别,封包能精确到每个操作对应的数据包。
二、30余种加密编码进制&web&数据库&系统&代理
-
密码存储加密
- MD5值是32位或16位由数字“0-9”和字母"a-f"所组成的字符串;
- SHA1这种加密的密文特征跟MD5差不多,只不过位数是40位;
- NTLM是Windows的哈希密码,标准通讯安全协议;
- AES、DES、RC4是非对称性加密算法,引入密钥,密文特征与Base64类似。
MD5解密是通过碰撞进行解密的(简单的说就是已经得到密文,通过构造明文用MD5算法进行正向加密,然后拿着由明文得到的结果与最开始的密文进行对比),而不是从算法本身进行解密。
数据库中可能使用MD5加密,MD5+salt加密,数据库有独特的加密方式。
minikatz
是一款windows下获取密文和密匙的工具。
windows 7 之前密码的加密算法是LM
,windows 7z之后的加密算法是NTLM
;
-
传输数据编码:
- Base64、URL、HEX、ASCII
- Base64是由数字数字“0-9”和字母所组成的字符串,大小写敏感,结尾通常有符号
=
; - URL编码是由数字“0-9”和字母"a-f"组成的字符串,大小写敏感,通常以
%数字/字母
间隔; - HEX编码是计算机中数据的一种表示方法,将数据进行十六进制转换,有0-9、a-f组成;
- ASCII编码是将128个字符进行进制数来表示,常见的ASCII码表大小写规则:0-9
-
JS前端代码加密:
- 三种加密方式:JS颜文字、jother、JSFUCK;
- JS颜文字,又叫
AAencode
; - jother特征:只用
!、+、(、)、[、]、{、}
这八个字符就能完成对任意字符的编码 - JSFUCK特征:与jother像,只是少了
{、}
。
-
后端代码加密:
- 三种常见后端代码:PHP、.NET、JAVA
- PHP:乱码,头部会显示加密方式
- .NET:DLL封装代码文件,相应工具:
ILSpy
- JAVA:JAR&CLASS文件,相应工具:
IDEA
识别算法编码类型
- 看位数
- 看密文特征(数字、字符、大小写、符号等)
- 看当前密文存在的地方(web,数据库、操作系统等)
30余种加密类型
逆向资料:学逆向