lwthiker / curl-impersonate

curl-impersonate: A special build of curl that can impersonate Chrome & Firefox
MIT License
3.46k stars 229 forks source link

presharedkey Extension support. #112

Closed wengooooo closed 1 year ago

wengooooo commented 1 year ago

Right now i see using extension "41" pre_shared_key is not possible, And session_ticket is empty

Test by https://tools.scrapfly.io/api/fp/ja3?extended=1

Chrome 103

{
    "digest": "47af82656a77020aa0c0b504ee770291",
    "ja3": "772,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513-41,0-1-2-3,0",
    "tls": {
        "version": "0x304 - TLS 1.3",
        "ciphers": [
            "GREASE (0x2A2A)",
            "TLS_AES_128_GCM_SHA256",
            "TLS_AES_256_GCM_SHA384",
            "TLS_CHACHA20_POLY1305_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
            "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
            "TLS_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_RSA_WITH_AES_128_CBC_SHA",
            "TLS_RSA_WITH_AES_256_CBC_SHA"
        ],
        "curves": [
            "Unknown curve 0",
            "sect163k1 (1)",
            "sect163k1 (2)",
            "sect163r2 (3)"
        ],
        "extensions": [
            "GREASE (0x2A2A)",
            "server_name (0) (IANA)",
            "extended_master_secret (23) (IANA)",
            "extensionRenegotiationInfo (boringssl) (65281) (IANA)",
            "supported_groups (10) (IANA)",
            "ec_point_formats (11) (IANA)",
            "session_ticket (35) (IANA)",
            "application_layer_protocol_negotiation (16) (IANA)",
            "status_request (5) (IANA)",
            "signature_algorithms (13) (IANA)",
            "signed_certificate_timestamp (18) (IANA)",
            "key_share (51) (IANA)",
            "psk_key_exchange_modes (45) (IANA)",
            "supported_versions (43) (IANA)",
            "compress_certificate (27) (IANA)",
            "extensionApplicationSettings (17513) (boringssl)",
            "GREASE (0x7A7A)",
            "padding (21) (IANA)",
            "pre_shared_key (41) (IANA)" ====== Notice =====
        ],
        "points": [
            "0"
        ],
        "protocols": [
            "h2",
            "http/1.1"
        ],
        "versions": [
            "0xa0a - GREASE Reserved (2570)",
            "0x304 - TLS 1.3",
            "0x303 - TLS 1.2"
        ],
        "handshake_duration": "244.711037ms",
        "is_session_resumption": true,  ====== Notice =====
        "session_ticket": "Ek8SB5ILey0pnkSVfHwg9EecQRQEam3AvhBWXiSXux1uxwi4IpBG3yC4W6Qs9JVf/e97NpHc9oEQtXw2yHDSNA==", ====== Notice =====
        "session_ticket_supported": true,
        "support_secure_renegotiation": true
    }
}

curl-impersonate

curl-impersonate-chrome https://tools.scrapfly.io/api/fp/ja3?extended=1
{
    "digest": "43faec0fb5835854f1943adec5e801e1",
    "ja3": "772,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-23-65281-10-11-35-16-5-13-18-51-45-43-27-17513,0-1-2-3,0",
    "tls": {
        "version": "0x304 - TLS 1.3",
        "ciphers": [
            "GREASE (0x8A8A)",
            "TLS_AES_128_GCM_SHA256",
            "TLS_AES_256_GCM_SHA384",
            "TLS_CHACHA20_POLY1305_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256",
            "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
            "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA",
            "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA",
            "TLS_RSA_WITH_AES_128_GCM_SHA256",
            "TLS_RSA_WITH_AES_256_GCM_SHA384",
            "TLS_RSA_WITH_AES_128_CBC_SHA",
            "TLS_RSA_WITH_AES_256_CBC_SHA"
        ],
        "curves": [
            "Unknown curve 0",
            "sect163k1 (1)",
            "sect163k1 (2)",
            "sect163r2 (3)"
        ],
        "extensions": [
            "GREASE (0x6A6A)",
            "server_name (0) (IANA)",
            "extended_master_secret (23) (IANA)",
            "extensionRenegotiationInfo (boringssl) (65281) (IANA)",
            "supported_groups (10) (IANA)",
            "ec_point_formats (11) (IANA)",
            "session_ticket (35) (IANA)",
            "application_layer_protocol_negotiation (16) (IANA)",
            "status_request (5) (IANA)",
            "signature_algorithms (13) (IANA)",
            "signed_certificate_timestamp (18) (IANA)",
            "key_share (51) (IANA)",
            "psk_key_exchange_modes (45) (IANA)",
            "supported_versions (43) (IANA)",
            "compress_certificate (27) (IANA)",
            "extensionApplicationSettings (17513) (boringssl)",
            "GREASE (0x2A2A)",
            "padding (21) (IANA)"
        ],
        "points": [
            "0"
        ],
        "protocols": [
            "h2",
            "http/1.1"
        ],
        "versions": [
            "0x7a7a - GREASE Reserved (31354)",
            "0x304 - TLS 1.3",
            "0x303 - TLS 1.2"
        ],
        "handshake_duration": "219.669022ms",
        "is_session_resumption": false,
        "session_ticket": "",
        "session_ticket_supported": true,
        "support_secure_renegotiation": true
    }
}
MelonAlien commented 9 months ago

bro, have you solved it?