Pular para o conteúdo

Web

Ferramenta demais

A CampoClaro tem um agente de pedidos em agent.cjs, com o mesmo modelo de brinquedo (model.cjs). Um agente é um LLM ligado a ferramentas: o modelo nao executa nada sozinho, ele pede "use a ferramenta X", e um executor do app roda a função.

O prompt diz que o agente é só de leitura e que a ferramenta permitida é lookup_order. Mas, abrindo agent.cjs, o executor tem no mesmo balcão uma ferramenta perigosa, issue_refund, e roda qualquer ferramenta que o modelo nomear, sem conferir se ela é permitida.

Junte o que você já sabe sobre injeção de prompt: faça o modelo pedir a ferramenta que nao devia estar ao alcance. Quando issue_refund roda, ela devolve um token de auditoria. A flag é esse token.

A flag tem a forma tocaia{...}, por exemplo tocaia{read_only} (que nao é a resposta).

Arquivos do desafio

  • model.cjs

    8,3 KB · SHA-256 f0eb7da653dfdf0b…

    Baixar
  • agent.cjs

    1,3 KB · SHA-256 22dbf910df6af20b…

    Baixar

Tudo se resolve com ferramentas gratuitas.