Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

criacaoi7

[Resolvido] Brecha para invasão.

Recommended Posts

Oi pessoal, boa tarde.

 

Um amigo meu me orientou de que provavélmente existem brechas no meu código de administração do site, especialmente nas páginas que fazem upload de arquivos que está favorecendo que pessoas alterem a index do site. Venho tendo constantemente este problema e gostaria da ajuda de vocês pra identificar e resolver este erro que favorece isso. Desabilitei algumas áreas do site até resolver este problema.

 

Uma das páginas que suspeito é esta abaixo, justamente porque faz o upload de qualquer arquivo, sendo que deveria permitir apenas o envio de imagem.

 

Se os mais experientes puderem analisar e postar o resultado fico grato.

 

Jr.

 

<% if session("ADM") = "" then response.redirect("administracao.asp") %>
<!--#include file="conexao.asp"-->
<%
if session("ADM2") = "Colunista" then
  response.redirect("administracao.asp")
end if

if left(Request.ServerVariables("HTTP_Content_Type"),19) <> "multipart/form-data" then

if request.querystring("Acao") = "Cadastrar" then
  if request.form("Nome") <> "" and request.form("Link") <> "" and request.form("Origem") <> "" then
	Nome = request.form("Nome")
	Link = request.form("Link")
	Origem = request.form("Origem")
	Tamanho = request.form("Tamanho")
	Zero = 0
	
	conexao.execute("insert into Publicidade (Nome, Link, Origem, Tamanho, Cliques, Visualizacoes) values ('" & Nome & "', '" & Link & "', '" & Origem & "', '" & Tamanho & "', '" & Zero & "', '" & Zero & "')")
	
	MSG = 2
  else
	MSG = 1
  end if
elseif request.querystring("Acao") = "Remover" then
  if request.querystring("ID") <> "" then
	conexao.execute("Delete * from Publicidade where cstr(ID)='" & cstr(request.querystring("ID")) & "'")
	
	MSG = 3
  end if
end if

else
  MSG = 4
end if
%>

<html>

<head>
<title>Jornal Regional</title>

<style>
a:hover { text-decoration: none; color=#000000 }
a:link { text-decoration: none; color=#000000 }
a:visited { text-decoration: none; color=#000000 }
</style>

<script language = "javascript">
<!--

function LmOver(elem, clr)
{elem.style.backgroundColor = clr;
elem.children.tags('A')[0].style.color = "#242424";
elem.style.cursor = 'hand'}

function LmOut(elem, clr)
{elem.style.backgroundColor = clr;
elem.children.tags('A')[0].style.color = "#000000";}

function LmDown(elem, clr)
{elem.style.backgroundColor = clr;
elem.children.tags('A')[0].style.color = "#242424";}

function LmUp(path)
{location.href = path;}

//-->
</script>

</head>

<body topmargin="0" leftmargin="0">

<table border="0" cellspacing="0" cellpadding="0" height="100%">
  <tr>
	<td width="100%"><img border="0" src="imagens/admin_topo.gif"></td>
  </tr>
  <tr>
	<td width="100%" height="100%">
	  <table border="0" width="100%" cellspacing="0" cellpadding="0" height="100%">
		<tr>
		  <td width="25%" bgcolor="#E3DFEE" valign="top" height="100%">
			<table border="0" width="100%" cellspacing="0" cellpadding="0" height="100%">
			  <tr>
				<td width="100%" height="20"></td>
			  </tr>
			  <tr>
				<td width="100%"><p align="center"><font size="2" face="Verdana"><b><%=session("ADM")%></b><br>(<%=session("ADM2")%></font>)</td>
			  </tr>
			  <tr>
				<td width="100%" height="20"></td>
			  </tr>
			  <% if session("ADM2") = "Administrador" then %>
			  <tr>
				<td width="100%">
				  <table border="0" width="85%" cellspacing="2" cellpadding="2" bgcolor="#FFFFFF" align="center" style="font-size: 13; font-family: Verdana; font-weight: bold">
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao_jornal.asp')"><a>Jornal</a></td>
					</tr>
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao_noticias.asp')"><a>Noticias</a></td>
					</tr>
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao_secoes.asp')"><a>Seções</a></td>
					</tr>
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao_publicidade.asp')"><a>Publicidade</a></td>
					</tr>
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao_equipe.asp')"><a>Equipe</a></td>
					</tr>
				  </table>
				</td>
			  </tr>
			  <% else %>
			  <tr>
				<td width="100%">
				  <table border="0" width="85%" cellspacing="2" cellpadding="2" bgcolor="#FFFFFF" align="center" style="font-size: 13; font-family: Verdana; font-weight: bold">
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao_noticias.asp')"><a>Noticias</a></td>
					</tr>
				  </table>
				</td>
			  </tr>
			  <% end if %>
			  <tr>
				<td height="20" width="100%"></td>
			  </tr>
			  <tr>
				<td width="100%"><p align="center"><font size="2" face="Verdana"><i>As noticias</i></font></td>
			  </tr>
			  <tr>
				<td width="100%">
				  <table border="0" width="85%" cellspacing="2" cellpadding="2" bgcolor="#FFFFFF" align="center" style="font-size: 13; font-family: Verdana; font-weight: bold">
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao.asp?Ver=Minhas notícias')"><a>Minhas notícias</a></td>
					</tr>
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao.asp?Ver=Em Destaque')"><a>Em destaque</a></td>
					</tr>
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao.asp?Ver=Reportagem Especial')"><a>Reportagem especial</a></td>
					</tr>
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao.asp?Ver=Textos')"><a>Textos</a></td>
					</tr>
				  </table>
				</td>
			  </tr>
			  <tr>
				<td height="20" width="100%"></td>
			  </tr>
			  <tr>
				<td width="100%">
				  <table border="0" width="85%" cellspacing="2" cellpadding="2" bgcolor="#FFFFFF" align="center" style="font-size: 13; font-family: Verdana; font-weight: bold">
					<tr>
					  <td width="100%" bgcolor="#E3DFEE" onMouseover="LmOver(this, '#FFFFFF')" onMouseout="LmOut(this, '#E3DFEE')" onMouseDown="LmDown(this, '#FFFFFF')" onMouseUp="LmUp('administracao.asp?Logout')"><a>Logout</a></td>
					</tr>
				  </table>
				</td>
			  </tr>
			  <tr>
				<td height="100%"></td>
			  </tr>
			</table>
		  </td>
		  <td width="75%" height="100%" valign="top">
			<table cellspacing="2" cellpadding="5" border="0" width="100%">
			  <tr>
				<td width="100%">
				  <p><font size="6" face="Verdana"><b>Publicidade</b></font>
				  
				  <% if MSG <> "" then %>
				  <p>
				  <table cellspacing="2" cellpadding="5" border="0" bgcolor="#FF0000" style="font-size: 13; font-family: Verdana">
				  <% if MSG = 1 then %>
					<tr>
					  <td bgcolor="#FFFFFF">Preencha todos os campos</td>
					</tr>
				  <% elseif MSG = 2 then %>
					<tr>
					  <td bgcolor="#FFFFFF">Publicidade adicionada com sucesso</td>
					</tr>
				  <% elseif MSG = 3 then %>
					<tr>
					  <td bgcolor="#FFFFFF">Publicidade removida com sucesso</td>
					</tr>
				  <% elseif MSG = 4 then %>
					<tr>
					  <td bgcolor="#FFFFFF">Banner enviado com sucesso</td>
					</tr>
				  <% end if %>
				  </table>
				  <% end if %>
				  
				  <p><font size="4" face="Verdana"><b>Cadastrando um banner</b></font>
				  
				  <form method="post" action="administracao_publicidade.asp?Acao=Cadastrar">
				  <table border="0" cellspacing="4" cellpadding="1" width="100%" style="font-size: 14; font-family: Verdana">
					<tr>
					  <td><p align="right">Nome</td>
					  <td><input type="text" name="Nome" size="66"></td>
					</tr>
					<tr>
					  <td><p align="right">Link</td>
					  <td><input type="text" name="Link" size="66"></td>
					</tr>
					<tr>
					  <td><p align="right">Origem</td>
					  <td><input type="text" name="Origem" size="66"></td>
					</tr>
					<tr>
					  <td></td>
					  <td><input type="radio" name="Tamanho" value="234x60" checked> 234x60 <input type="radio" name="Tamanho" value="120x240"> 120x240 <input type="radio" name="Tamanho" value="120x60"> 120x60 <input type="radio" name="Tamanho" value="180x150"> 180x150</td>
					</tr>
					<tr>
					  <td></td>
					  <td height="15"></td>
					</tr>
					<tr>
					  <td></td>
					  <td><input type="submit" value="Cadastrar"></td>
					</tr>
				  </table>
				  </form>
				  
				  <p><font size="4" face="Verdana"><b>Remover um banner</b></font>
				  
				  <p>
				  <%
				  set Lista = conexao.execute("select * from Publicidade order by cstr(Tamanho) asc")
				  
				  while not Lista.eof
				  %>
				  <p><font size="2" face="Verdana">"<a href="<%=Lista("Link")%>"><i><%=Lista("Nome")%></i></a>" - Tamanho: <b><%=Lista("Tamanho")%></b><br><b>Origem</b>: <%=Lista("Origem")%><br>[ <a href="administracao_publicidade.asp?Acao=Remover&ID=<%=Lista("ID")%>"><b>Remover</b></a> ]</font><br>
				  <%
				  Lista.movenext
				  wend
				  
				  Lista.close
				  %>
				  </form>
				  
				  <p><font size="4" face="Verdana"><b>Envio de arquivos</b> (/imagens/banners/aquivo.ext)<br></font>
				  
				  <form method=POST ENCTYPE="multipart/form-data">
				  <font size="1" face="Verdana">Arquivo: <input type="file" name="File1"> <input type="submit" Name="Action" value="Enviar"></font>
				  </form>
				  
				  <!---#INCLUDE FILE="upload/upload.inc" --->
				  
				  <%
				  If Request.ServerVariables("REQUEST_METHOD") = "POST" Then 'Request method must be "POST" For get the fields
					if left(Request.ServerVariables("HTTP_Content_Type"),19) = "multipart/form-data" then
					  Set Fields = GetUpload()
					  FilePath = Server.MapPath(".") & "\imagens\banners\" & Fields("File1").FileName
					  Fields("File1").Value.SaveAs FilePath
					end if
				  End If
				  %>
				</td>
			  </tr>
			</table>
		  </td>
		</tr>
	  </table>
	</td>
  </tr>
</table>

</body>

</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você é o cara do login, né?

 

Acho que você fazendo aquela alteração que falei, seu problema vai ser solucionado... O problema, se for o caso, é que o cara consegue entrar na administração, você proibindo isso acabam ele não vai poder acessar nada...

 

Esse upload manda o arquivo pra um diretório que é diferente de onde a index fica... Não tem como ele substituir... Pelo que eu vi, não tem brecha nenhuma... Só tinha no login mesmo...

 

Espero ter ajudado a solucionar o seu problema... Boa sorte!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Pedro, com certeza ajudou... vou fazer a alteração e se souber mais alguma dica pra garantir mais, posta aí. É intrigante como ele consegue substituir a Index, mas derrepente ele poderia enviar um arquivo pro servidor, executar esse arquivo e então mudar a index...

 

Vlw.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.