python-injection

Repositorio com um simples bot do telegram com uma vulnerabilidade de injection.

Stars
3

Bot do Telegram com Vulnerabilidade de Injeo

Este projeto demonstra um bot simples do Telegram implementado em Python usando a biblioteca python-telegram-bot. O bot inclui uma vulnerabilidade na funo echo, que avalia qualquer entrada de texto recebida, potencialmente levando a ataques de injeo de cdigo.

Executando o Projeto

Siga estas etapas para executar o projeto localmente:

  1. Clone o repositrio:

    git clone https://github.com/fguisso/python-injection
    
  2. Instale as dependncias necessrias:

    pip install python-telegram-bot
    
  3. Obtenha um Token de Bot do Telegram:

    • Inicie uma conversa com BotFather no Telegram. Voc pode encontr-lo pesquisando por "@BotFather" na barra de pesquisa do Telegram ou clicando aqui.
    • Envie o comando /newbot para iniciar o processo de criao de um novo bot.
    • Siga as instrues para escolher um nome e um username para o seu bot.
    • Aps criar o bot, o BotFather ir fornecer um token. Copie esse token.
  4. Defina o Token do Bot como uma Varivel de Ambiente:

    export TOKEN_TELEGRAM="seu_token_do_bot_aqui"
    
  5. Execute o script Python:

    python main.py
    
  6. Interaja com o bot no Telegram.

Funcionamento do Bot

O bot est configurado para receber mensagens contendo operaes matemticas como entrada. Essas operaes so resolvidas no comando echo, que retorna o resultado da operao como resposta.

Por exemplo, ao enviar a mensagem 2 + 2 para o bot, ele retornar 4. Isso pode ser til para realizar clculos simples diretamente no Telegram.

Explicao da vulnerabilidade

As vulnerabilidades de injeo esto entre as principais preocupaes de segurana de aplicativos da web. De acordo com o OWASP Top 10, a injeo de cdigo (como SQL injection, XSS, Command Injection e outras) uma das principais ameaas para a segurana dos aplicativos.

No contexto deste bot, a vulnerabilidade de injeo ocorre na funo echo, que utiliza a funo eval para evoluir qualquer entrada de texto recebida. Isso permite que possveis atacantes executem cdigo arbitrrio enviando uma entrada maliciosa. Exploits so os cdigos maliciosos usados para atacar o sistemas e neste cenario estes so alguns exemplos de exploits que voc pode enviar para seu bot que sero executados na maquina onde o seu bot esta rodando:

Mensagem para o bot Resultado do exploit
os.getenv("TOKEN_TELEGRAM") Acesso a variveis de ambiente
os.system("rm -rf /") Execuo de comandos do sistema operacional, no caso, rm vai deletar todos os arquivos do sistema.
import malicious_module Importao de mdulos maliciosos
__import__("malicious_module").malicious_function() Execuo de cdigo malicioso.

Os usurios so encorajados a testar esses exploits em seu prprio bot e observar os resultados. No entanto, tenha cuidado ao usar exploits, pois eles podem causar danos ao sistema.

Documentao