Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 49598|Resposta: 0

[Fonte] (Security).NET/C# impede o acesso entre diretórios para downloads

[Copiar link]
Postado em 2021-4-7 11:57:38 | | | |
Cenário: Existe uma interface de API que recebe parâmetros de caminho, completa o caminho do arquivo por certas regras e então responde para baixar ao usuário.

Request:
GET /download_page?id=content.dat HTTP/1.1

Request:
GET /download_page?id=.. %2f.. %2fweb.config HTTP/1.1(Isso baixa o arquivo web.config do servidor

Suponha que D:\storage\123 seja o diretório raiz da loja, e todos os arquivos armazenados estejam nesse diretório, quando o usuário adiciona o caminho para: . O símbolo pode ser cruzado sob o diretório anterior, e o parâmetro URL é passado por: /.. / Acesso fácil a recursos sensíveis e downloads.

solução

Vamos dar uma olhada nas renderizações primeiro:



O código é o seguinte:







Anterior:Site de descriptografia online MD5 comumente usado no país e no exterior
Próximo:A diferença entre /bin/false e /sbin/nologin, que impede usuários de fazer login
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com