nikitastupin / clairvoyance

Obtain GraphQL API schema even if the introspection is disabled
Apache License 2.0
1.05k stars 95 forks source link

unable to get it installed on kali linux #113

Open bigmo0x0 opened 1 month ago

bigmo0x0 commented 1 month ago

running the installation command pip install clairvoyance clairvoyance https://rickandmortyapi.com/graphql -o schema.json throws the following errors

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.
Defaulting to user installation because normal site-packages is not writeable ERROR: Could not find a version that satisfies the requirement clairvoyance (from versions: none) ERROR: No matching distribution found for clairvoyance

Privat33r-dev commented 1 month ago

Hi!

Can you try with newer Python Version, please? What is your OS version?

You might have 2 Python version installed, sol the command could be pip3 instead of pip.

Clairvoyance does not support Python earlier than 3.8.

bigmo0x0 commented 1 month ago

using the docker option gives the following error

docker run --rm nikitastupin/clairvoyance https://www.thefork.com/api/graphql 2024-09-23 13:10:27 INFO | Starting blind introspection on https://www.thefork.com/api/graphql... 2024-09-23 13:10:27 INFO | Iteration 1 2024-09-23 13:10:28 WARNING | Unable to get typename from query { IAmWrongField }. Field Suggestion might not be enabled on this endpoint. Using default "Query Traceback (most recent call last): File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code exec(code, run_globals) File "/clairvoyance/main.py", line 4, in cli() File "/clairvoyance/cli.py", line 142, in cli asyncio.run( File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run return loop.run_until_complete(main) File "/usr/local/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete return future.result() File "/clairvoyance/cli.py", line 89, in blind_introspection schema = await oracle.clairvoyance( File "/clairvoyance/oracle.py", line 578, in clairvoyance valid_fields = await probe_valid_fields( File "/clairvoyance/oracle.py", line 209, in probe_valid_fields result = await task File "/usr/local/lib/python3.10/asyncio/tasks.py", line 571, in _wait_for_one return f.result() # May raise f.exception(). File "/clairvoyance/oracle.py", line 176, in __probation errors = response['errors'] KeyError: 'errors' 2024-09-23 13:10:29 ERROR | Unclosed client session client_session: <aiohttp.client.ClientSession object at 0x7efc7ac173d0>

Privat33r-dev commented 1 month ago

using the docker option gives the following error

docker run --rm nikitastupin/clairvoyance https://www.thefork.com/api/graphql 2024-09-23 13:10:27 INFO | Starting blind introspection on https://www.thefork.com/api/graphql... 2024-09-23 13:10:27 INFO | Iteration 1 2024-09-23 13:10:28 WARNING | Unable to get typename from query { IAmWrongField }. Field Suggestion might not be enabled on this endpoint. Using default "Query Traceback (most recent call last): File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main return _run_code(code, main_globals, None, File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code exec(code, run_globals) File "/clairvoyance/main.py", line 4, in cli() File "/clairvoyance/cli.py", line 142, in cli asyncio.run( File "/usr/local/lib/python3.10/asyncio/runners.py", line 44, in run return loop.run_until_complete(main) File "/usr/local/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete return future.result() File "/clairvoyance/cli.py", line 89, in blind_introspection schema = await oracle.clairvoyance( File "/clairvoyance/oracle.py", line 578, in clairvoyance valid_fields = await probe_valid_fields( File "/clairvoyance/oracle.py", line 209, in probe_valid_fields result = await task File "/usr/local/lib/python3.10/asyncio/tasks.py", line 571, in _wait_for_one return f.result() # May raise f.exception(). File "/clairvoyance/oracle.py", line 176, in __probation errors = response['errors'] KeyError: 'errors' 2024-09-23 13:10:29 ERROR | Unclosed client session client_session: <aiohttp.client.ClientSession object at 0x7efc7ac173d0>

Have you tried following our troubleshooting guide?

Privat33r-dev commented 1 month ago

I checked it myself and I get this as a response with standard parameters:

{"url": "https://geo.captcha-delivery.com/captcha/?initialCid=..."}

It means that website has some kind of external protection (Captcha) that is getting triggered, because it's not convinced that Clairvoyance is a legitimate client. You might try to use browser headers, some cookies from the browser and other data to emulate legitimate user. I would also suggest to use the program in a slow mode.

Errors are not friendly enough and we are working on it: #107.

Thank you for your feedback; it helps us improve the project.