Skip to content

cURL Impersonator: Your Browser Emulation Toolkit" This specialized cURL build lets you emulate the behavior of major web browsers during TLS and HTTP handshakes. Unlock experimental possibilities in web testing and analysis.

Joakim-animate90/curlBrowser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 

Repository files navigation

curl Browser Chrome

Description:

Welcome to the cURL Browser Impersonator project! This specialized tool build of curl that aims to mimic the behavior of major web browsers, such as Chrome, during TLS and HTTP handshakes.This version of cURL is wrapped in Python, allowing you to conveniently test and interact with it in a browser environment while capturing and analyzing responses.

Key Features

  • Browser Emulation: This custom cURL build replicates the TLS and HTTP handshake behaviors of popular web browsers, providing an invaluable tool for studying web communication protocols and security measures.

    Learn more

  • Python Integration: By wrapping cURL in Python, you can easily create scripts and applications to test web services, APIs, and websites while leveraging the power and flexibility of Python for analysis and automation.

  • Browser Testing: Emulate user agent strings, request headers, and other browser-specific settings to test how web servers and applications respond to different client behaviors.

  • Capture and Analyze Responses: With Python integration, you can capture and analyze HTTP responses, enabling detailed examination of web interactions and debugging.

Basic Usage - Web Form

  1. Access the cURL Browser Impersonator Web Interface:

    Start by opening your web browser and navigating to the cURL Browser Impersonator web interface. The URL to access the interface should be provided by your project setup.

  2. Enter the URL:

    You will typically find a form field labeled "URL" or similar on the web interface. Enter the URL that you want to test or analyze in this field.

  3. Configure Browser Settings (Optional):

    Depending on your project's capabilities, you may have options to configure browser-specific settings such as user agents, request headers, and more. Adjust these settings if necessary.

  4. Submit the Form:

    Once you have entered the URL and configured any additional settings, click the "Submit" or "Execute" button on the web form.

  5. Receive JSON Response:

    After submitting the form, the cURL Browser Impersonator will perform the requested action (e.g., making a request to the specified URL) and return a JSON response. This response may contain data related to the web request, including headers, content, and other relevant information.

  6. Analyze and Use the JSON Response:

    You can analyze and use the JSON response data according to your project's requirements. This may involve further processing, displaying the data, or integrating it with other tools or applications.

  7. Contribute and Explore:

    If you encounter issues or have suggestions for improvements, consider contributing to the project. Check out our Contribution Guidelines for more information.

Python/Flask application

Project structure:

.
    backend
    ├── app
    │   ├── app.py
    │   ├── convertJson.py
    │   ├── Dockerfile
    │   ├── fetchCurl.py
    │   ├── requirements.txt
    │   └── templates
    │       ├── index.html
    │       └── results.html
    ├── compose.yaml
    └── README.md
    
    

compose.yaml

version: '3'
services:
  web:
    build:
      context: app
      target: builder
    stop_signal: SIGINT
    ports:
      - '8000:8000'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock  # Mount the Docker socket
      - ./app:/app  # Mount your project directory into the container

  curl-container:
    image: lwthiker/curl-impersonate:0.5-chrome
    command: ["sleep", "infinity"]  # Keep the container running

Deploy with docker

$ docker compose up -d
[+] Building 1.1s (16/16) FINISHED
 => [internal] load build definition from Dockerfile                                                                                                                                                                                       0.0s
    ...                                                                                                                                         0.0s
 => => naming to docker.io/library/flask_web                                                                                                                                                                                               0.0s
[+] Running 2/2
 ⠿ Network flask_default  Created                                                                                                                                                                                                          0.0s
 ⠿ Container backend-web-1  Started

Expected result

Listing containers must show one container running and the port mapping as below:

$ docker compose ps
NAME                COMMAND             SERVICE             STATUS              PORTS
backend-web-1         "python3 app.py"    web                 running             0.0.0.0:8000->8000/tcp

After the application starts, navigate to http://localhost:8000 in your web browser or run:

$ curl localhost:8000
Hello World!

Stop and remove the containers

$ docker compose down

Acknowledgments

I would like to extend my heartfelt thanks to the developers of the cURL Browser Impersonator package for their outstanding work and dedication to this project. Their efforts have enabled me to leverage this powerful tool for browser emulation and testing, making my project a reality.

This project would not have been possible without the excellent work of the cURL Browser Impersonator team. I am truly grateful for their contributions to the open-source community and their commitment to enhancing web testing capabilities.

If you find the cURL Browser Impersonator package valuable, please consider supporting their project and contributing to its development.

Thank you for your exceptional work!

About

cURL Impersonator: Your Browser Emulation Toolkit" This specialized cURL build lets you emulate the behavior of major web browsers during TLS and HTTP handshakes. Unlock experimental possibilities in web testing and analysis.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published