开门见山,不说废话
判断条件
是否符合通信的特征
请求加密的数据和响应包加密的类型一致
是否一直向同一个url路径发送大量符合特征的请求,并且具有同样加密的响应包
一 、蚁剑
特征为带有以下的特殊字段
第一个:@ini_set("display_errors","0");
第二个:eval
在编码器和解码器都是default的状态下,是最容易看出来的一种情况
可以看到在下图中,请求包和返回包都是明文。也就是说一眼就能看出来是蚁剑的流量
实际上在antword中只要编码器为default,那么请求包均为明文。
antword的编码器共有以下几种模式:default、base64、chr、chr16、rot12
在连接php的webshell时,不论编码器处于那种模式,都会出现eval字段
加密为base64:
加密为chr:
加密为chr16:
加密为rot13:
二、冰蝎
总结特征:
Accept: application/json, text/javascript, */*; q=0.01 #q=0.01
最新版本请求包没有content-type,老版本Content-Type: application/octet-stream
返回字符串和请求字符串都是加密,在拥有密钥的情况下可以使用工具解密流量(当然加密也是一种特征)
加密为default_image的时候,具有png的请求头,但是请求包中可能会出现java字样的字符
如果是json加密就是
{
"id":"1",
"body":"{
"user":"加密的payload"
}"
}
加密为default_aes
header
Accept: application/json, text/javascript, */*; q=0.01
请求相应包都是AES加密
加密为default_image
加密为default_json
json结构
{
"id":"1",
"body":"{
"user":"payload"
}"
}
加密为aes_imagic
三、哥斯拉
探活数据包:
aes_base64: 请求包POST传参pass,响应包为空
java_raw: 请求包POST传参raw数据,Content-Type: application/octet-stream,探活数据包为空
cookie的最后面有个 ;
加密为JAVA_AES_BASE64
-
第一个通信包使用post请求发送pass参数探活,响应包为空
-
响应包前后有各拆分为一半的大写32位MD5值
加密为JAVA_RAW
-
探活数据包,响应包为空,请求content-type为Content-Type: application/octet-stream