From 682d48758621db782ffe6a554f0bcc6079f4d96d Mon Sep 17 00:00:00 2001 From: David <59258980+zerodytrash@users.noreply.github.com> Date: Sat, 9 Apr 2022 04:10:41 +0200 Subject: [PATCH] add param fuzzer --- misc/paramfuzzer/paramfuzzer.py | 44 +++++++++++++++++++++++++++++++++ misc/paramfuzzer/params.proto | 9 +++++++ misc/paramfuzzer/params_pb2.py | 25 +++++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 misc/paramfuzzer/paramfuzzer.py create mode 100644 misc/paramfuzzer/params.proto create mode 100644 misc/paramfuzzer/params_pb2.py diff --git a/misc/paramfuzzer/paramfuzzer.py b/misc/paramfuzzer/paramfuzzer.py new file mode 100644 index 0000000..952e67a --- /dev/null +++ b/misc/paramfuzzer/paramfuzzer.py @@ -0,0 +1,44 @@ +import params_pb2 +import base64 +import urllib.parse +import requests +import json + + +for i in range(0, 100): + g = params_pb2.params() + + g.p1 = i + g.p2 = i + g.p3 = i + + b64 = base64.b64encode(g.SerializeToString()) + b64_url = urllib.parse.quote(b64) + + post_data = { + "context": { + "client": { + "hl": "en", + "clientName": "WEB", + "clientVersion": "2.20220331.06.00" + } + }, + "videoId": "8PNJCjXkrps", + "params": b64_url + } + + try: + res = requests.post("https://www.youtube.com/youtubei/v1/player?key=AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8", data=json.dumps(post_data), headers={ + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29", + "Content-Type": "text/plain;charset=UTF-8" + }) + + print(b64_url, res.status_code) + + if res.status_code == 200: + f = open("results/" + str(i) + ".json", "w", encoding="utf-8") + f.write(res.text) + f.close() + + except Exception as ex: + print(ex) \ No newline at end of file diff --git a/misc/paramfuzzer/params.proto b/misc/paramfuzzer/params.proto new file mode 100644 index 0000000..93b9833 --- /dev/null +++ b/misc/paramfuzzer/params.proto @@ -0,0 +1,9 @@ +syntax = "proto3"; + +package youtube; + +message params { + int32 p1 = 30; + int32 p2 = 57; + int32 p3 = 71; +} \ No newline at end of file diff --git a/misc/paramfuzzer/params_pb2.py b/misc/paramfuzzer/params_pb2.py new file mode 100644 index 0000000..10acfb7 --- /dev/null +++ b/misc/paramfuzzer/params_pb2.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: params.proto +"""Generated protocol buffer code.""" +from google.protobuf.internal import builder as _builder +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import symbol_database as _symbol_database +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x0cparams.proto\x12\x07youtube\",\n\x06params\x12\n\n\x02p1\x18\x1e \x01(\x05\x12\n\n\x02p2\x18\x39 \x01(\x05\x12\n\n\x02p3\x18G \x01(\x05\x62\x06proto3') + +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals()) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'params_pb2', globals()) +if _descriptor._USE_C_DESCRIPTORS == False: + + DESCRIPTOR._options = None + _PARAMS._serialized_start=25 + _PARAMS._serialized_end=69 +# @@protoc_insertion_point(module_scope)