Indie Hackers, sua segurança é uma droga 🤦‍♂️

287 views1852 WordsCopy TextShare
YuriRDev
Nesse vídeo eu hackeio dois SaaS e te mostro como vários indie hackers estão fazendo sua plataforma ...
Video Transcript:
os ind hackers estão tão focados em lançar rápido que esqueceram da coisa mais importante segurança e o resultado comprei um plano Premium por 1 centavo listei todos os usuários e entrei na conta de qualquer um me tornei administrador do sistema e Estorei uma pay completamente quebrada e sabe o pior esses SAS foram feitos por pessoas experientes no vídeo eu vou explorar dois SAS para não ficar muito longo mas a real é que 80% dos SAS lá do servidor de discord do ind hacking estão vulneráveis a esses tipos de ataque na primeira plataforma eu consegui comprar
um plano prêmium por 1 centavo listar usuários e acessar qualquer conta no segundo eu me tornei administrador e abusei de uma API completamente exposta se você acha que seu app Tá seguro só porque ninguém vai tentar hackear pensa direito vou te mostrar como é que essas falhas acontecem e como evitar que seu SAS vir um playground para hacker vamos lá a primeira coisa que eu faço assim que eu abro o site primeiro eu scollo ele vejo que que ele tem de interessante eu tô vendo aqui que ele tem planos e preços e logo depois eu
venho aqui e vejo as tecnologias que o site est usando então ele tá usando react Next O esp na versel E por que que isso é interessante sabendo as tecnologias que ele tá usando eu sei um pouco do que que tá acontecendo por exemplo por ele est usando o Next Muito provavelmente o processamento as requisições vão estar escondidas do lado do servidor não vão estar expostos para mim mas isso não é 100% verdade porque quando alguma aplicação precisa de um input do usuário como um formulário tipo esse aqui O código vai ser carregado do lado
do cliente como se fosse injetado mesmo podendo expor algumas coisas como algumas Fas de api e coisas do tipo e então eu vou abrir aqui o sorce e eu vou procurar por algumas kws dentro do do código então vou procurar por api por exemplo aqui é uma coisa interessante ele tá usando o Mercado Pago para poder fazer o pagamento e é interessante porque 80% das pessoas que usam Mercado Pago para pagamento eles estão fazendo errado o iniciantes no caso porque só de ver aqui já dá para ver que tem uma coisa errada o front Change
ele tem que se comunicar diretamente com seu servidor abstendo o máximo de coisas para evitar exposure evitar coisas de segurança então aqui nessa requisição ele tá passando o amount isso é um pouco estranho porque quem tiver ser responsável por passar o amount pro mercado pago é o servidor aqui ok o servidor tá tá sendo intermediado então eu sei que essa rota vai mandar pro próprio servidor do cara só que o amount tá aqui isso não faz sentido ele devia só fazer uma rota ap payments Premium por exemplo e eu passo meu user ID aqui meu
e-mail por exemplo Vamos então já sei que ele tá US mercado pago com uma possível vulnerabilidade a gente não tem certeza ainda vamos criar uma conta mas antes eu vou abrir o Bup Switch que eu vou tentar ver as aquisições que acontecem quando eu tô logado em um usuário pronto eu acabei de criar uma conta aqui e dá para ver que o dashboard foi aberto aqui dá para ver que a requisição tá sendo feita do lado do cliente Ele carrega mesmo depois a pgina ter sido carregada não faz muito sentido ele pode muito bem colocar
fazer esse glad no next mas ele deve ter motivo de ter feito por aqui é vamos ver os acessar planos aqui e ver o que acontece quando a gente clica no pagamento do Premium que a gente já sabe a gente viu que isso vai mandar uma requisição aqui na P P mercado pago pix com o amount vamos trocar esse amount para 0.01 não vou colocar zero Porque o mercado pago não aceita zero como um valor eu vou interceptar a resposta forward sucesso forward aqui tá para fazer o pagamento de 1 centavo vi pix já tá
um erro o servidor nunca nunca jamais pode confiar nos dados que o fron tá mandando não dessa forma se tiver alguma criptografia ou coisa do tipo aí não tem problema mas nesse caso não pode vamos M um set pro cara e ver se funciona vou ver se meu dashboard foi atualizado pronto eu t com acesso Premium no site do cara por por 1 centavo Vamos botar uns dados fictícios aqui e gerar o mapa vamos interceptar gerar o mapa ele tá mandando Birthday time longitude e latitude mandar pro Repeater vamos interceptar a resposta e vamos ver
que vai aparecer para mim carregando legal criado para asdasd aqui aparece minha última pesquisa agora vai ser interessante vamos interceptar e ver o que acontece quando a gente clica ele vai mandar requisição com o ID vamos interceptar e o que acontece ele vai ele me manda aqui direitinho o que tá acontecendo Vamos mudar uma ideia agora vamos botar 20 para ver o que acontece aquário Uai eu não era não era aquário quem que é esse pera aí 19 quem que é nest eu não sou n test Vocês estão entendendo o que tá acontecendo n ele
tá puxando os registros dos das últimas pesquisas então aqui eu pego o ID da pessoa eu tenho nome né então botar o name então eu consigo listar os usuários também eu consigo ver quem tá usando o site Isso aqui precisa de uma verificação lembra que eu salvei esse usuário aqui dessa vez quando eu entrar no dashboard vou interceptar requisição para trocar todo o ID por esse ID que eu tenho salvo Então vamos em dashboard eu vou trocar meu user ID por esse user ID interceptar a resposta vou ficar fazendo isso vou só trocando aqui eu
tô basicamente logado no outro ID agora eu tô eu sou Basicamente já Clara Agora tem todos os mapis que ela gerou aqui dá para ver direitinho aqui Então esse sistema tá completamente falho Só de eu estar logado na conta de qualquer conta não preciso nem nem pagar eu consigo já fazer um mapa astral o próximo da lista ele tá bem bonitinho uma n page bem bonita vai ser o mesmo esquema a gente vai vir aqui no aqualizer e ver as tecnologias então ele tá usando react e react router mais interessante por qu dá para ver
aqui que ele não tá usando Next O que significa que todas as páginas funções textos vão já tá no código fonte não vai ter um las load A não ser que ele tenha feito na mão a gente pode vir aqui e abre o código fonte e vai est aqui o código inteiro do react é um código bem grande mas é muito bom para encontrar informação então eu posso procurar por admin aí tem várias fotas admin admin generate link admin users eu também posso procurar por procurar por rotas Então barapi aqui tem alguma P web Hook
Mercado Pago apay webhook abacate pay apay abacate pay interessante você tá se perguntando Nossa mas é muito rí a informação desse jeito Tem muita coisa muito Unificado não consigo ler nada você tá certo mas pra nossa sorte ou azar tudo fica formatado bonitinho no sorce é como se a gente conseguisse ver a passa do projeto como se tivesse aberto github do cara então aqui a gente tem o Source tem os pages tem todas as páginas aqui tem os Services do abaca Pay tem alguns hooks todos os componentes tá tudo aqui então vai ser a mesma
proposta vamos criar uma conta entrando no Switch bom criei minha conta aqui eu t no dashboard do projeto e vamos procurar antes porque a gente já a gente acabou encontrando já que existe a página admin Então vamos procurar por admin aqui e a gente tem esse post beleza esse App Olha tem o admin route interessante Protect R aqui tem admin Men items perfeito a gente no s bar a gente tá vendo todas asos tem então ele tem o app orçamentos clientes empresas e também tem o admin menu items eu chutaria que esse admin menu items
está sendo renderizado por uma condição isso se o meu Roll é igual admin de novo por se react eu sei que ele tá pegando esse profile data.on Roll pelo lado do cliente por alguma requisição que tá acontecendo e é exatamente isso que eu vou fazer eu vou Abrir meu intercept e todo Roll que aparecer nas minhas requisições eu vou trocar para admin vamos lá nessa equizição apareceu aqui meu roll de user vou trocar para admin vou dar forward de novo vou interceptar toda a requisição que tá esse profile select meu ID eu vou vou est
interceptando e trocando o meu Roll para admin admin e agora em qualquer segundo deve aparecer aqui perfeito eh eu vou continuar mexendo só não vou dropar ões aqui e aqui dá para ver que abriu o lado administrador então se eu vir aqui no web Hook aparece as configurações de webhook dele que por algum motivo Ele não colocou no em uma documentação mas Quis colocar no site usuários aqui eu consigo listar todos os usuários mas dá para ver que o botão aqui ele tá bloqueado eu não tô conseguindo fazer o botão funcionar no lado da web
então Vamos alterar diretamente na api Então vamos vir aqui intercept Vamos alterar o meu PR isento Ok e aqui vai mudar eu vou receber esse option aqui ó esse Patch em vez de mudar is exempt eu vou mudar o roll para admin forward Beleza agora eu Sou administrador eu não tenho nem mais que falsificar a requisição então configuração ou gerenciar planos essa página PR deve est off mesmo então é basicamente isso em 5 minutos eu vir administrador nessa plataforma você com certeza chegou até aqui pensando Nossa mas que vulnerabilidades ridículas como é que eles deixou
isso passar acontece quando você usa a filosofia chip fast e o One feature only esquecem ou ficam sem vontade de se preocupar com a segurança eu gosto de pensar que essas vulnerabilidades acontecem quando foram desenvolvidas por dois tipos de pessoas as que não sabem e as que não querem as que não sabem simplesmente podem ter deixado alguma verificação passar esquece Afinal nós somos humanos e humanos cometem erros ou até mesmo não sabe das práticas de saber segurança as que não querem vão aprender com tempo que precisa segurança deve ser parte do processo de desenvolvimento não
para ser feito depois adicionar depois chega até ser mais difícil e menos eficiente do que construir desde o início se quiserem posso fazer um vídeo mostrando alguns princípios de seguranças e dicas de segurança para S são bem simples mas muito eficientes é só comentar aqui no vídeo é isso falos
Copyright © 2025. Made with ♥ in London by YTScribe.com