Arquivo da categoria ‘programacao’

Information Schema Views são um conjunto de visões que se encontram no esquema chamado INFORMATION_ SCHEMA e fornece informações dos meta-dados em um formato uniforme.

Por exemplo, a consulta abaixo realizada na View INFORMATION_SCHEMA.TABLES  apresenta as tabelas de usuario no atual banco de dados juntamente com os respectivos nomes de esquema:

SELECT TABLE_SCHEMA, TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = N’BASE TABLE’;

information_schema.table

information_schema-table.jpg

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A consulta abaixo em INFORMATION_SCHEMA.COLUMNS apresenta informações sobre colunas da tabela Sales.Orders:

SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, COLLATION_NAME, IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = N’Sales’
AND TABLE_NAME = N’Orders’;

Resultado…

table_schema

table_schema

 

Espero que vocês tenham entendido como é feito esta consulta. Si não entendeu, cinto muito; vai ter que ler novamente. Ou, si não entender quando ler novamente. Entre em contato comigo!

~Bye: Juancarloscunha.wordpress.com~

Abra o terminal ·

E nele digite: ifconfig · Pressione ENTER (quer mais detalhes execute este comando no seu terminal)

—————————————————————————-
eth0 Link encap:Ethernet HWaddr 00:1f:80:96:19:f6 |
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 |
inet6 addr: ab70::51c:60de:fa40:97b6/64 Scope:Link |
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 |
RX packets:328560 errors:0 dropped:0 overruns:0 frame:0 |
TX packets:313573 errors:0 dropped:0 overruns:0 carrier:1 |
collisions:0 txqueuelen:1000 |
RX bytes:158502935 (151.1 MB) TX bytes:0 (0.0 B) |
Memory:abcd0000-efa01010 |
—————————————————————————-
*Aos espertalhões, esses números naõ são reais (:

Agora vamos à edição (:

NO Linux é um pouquinho mais extenso em relação ao OpenBSD.Teremos que baixar uma interface.

→Ainda no terminal, digite:

ifconfig eth0 down

Logo depois, vamos digitar um novo MAC:

ifconfig eth0 hw ether 24:48:06:66:F0:DA

→Agora vamos upar a interface

Citar

ifconfig eth0 up

→Agora para checar se ocorreu tudo certo, ifconfig novamente!

—————————————————————————-
eth0 Link encap:Ethernet HWaddr 24:48:06:66:F0:DA |
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0 |
inet6 addr: ab70::51c:60de:fa40:97b6/64 Scope:Link |
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 |
RX packets:328560 errors:0 dropped:0 overruns:0 frame:0 |
TX packets:313573 errors:0 dropped:0 overruns:0 carrier:1 |
collisions:0 txqueuelen:1000 |
RX bytes:158502935 (151.1 MB) TX bytes:0 (0.0 B) |
Memory:abcd0000-efa01010 |
—————————————————————————-

Agora vamos configurar no OpenBSD

#
No OpensBSD é muito mais simples!

→NO terminal de comandos digite

Citar

wicontrol wi0 -m BA:BA:CA:00:00:00

Agora confira como ficou o resultado
__________________________________________________ ___________
Current channel: [ 9 ]
Comms quality/signal/noise: [ 39 89 50 ]
Promiscuous mode: [ Off ]
Process 802.11b Frame: [ Off ]
Port type (1=BSS, 3=ad-hoc, 6=Host AP): [ 1 ]
MAC address: [ ba:ba:ca:00:00:00 ]
TX rate (selection): [ 3 ]
TX rate (actual speed): [ 11 ]
__________________________________________________ ___________

Imagina a cara do admin lendo os logs, hehe

···········

Méritos: S3.Nd

By: Juancarloscunha

Uma das formas mais fáceis de si descobrir nomes de tabelas é o uso do comando, show:

sqlinjection

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Agora, vou tentar listar do banco de dados werp, O nome da tabela de usuarios, Geralmente os nomes das tabelas são: users, roots,usuarios…Vamos ver qual o nome:

sqlinjection_tabelas

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Agora, eu já sei o nome do banco de dados, e também sei o nome das tabelas que tem no database, inclusive a de usuarios, agora, eu quero saber o nome das colunas da tabela usuarios.

3

 

 

 

 

 

 

 

 

 

 

 

 

Agora, vou listar o nome do usuário administrador e a senha do usuário:

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Conclusão:

 

Aqui, você aprendeu listar todos databases do banco de dados, Listar todas as tabelas do database, Listar todas as colunas das tabelas,  Listar dados das colunas.

Existem varias maneiras de fazer isso. Eu só estou ensinando uma das maneiras aqui.

Muitas pessoas tentam usar o parâmetro UNION no mysql e não consegue só por causa de um erro. A pessoa quer selecionar tudo das duas tabelas selecionadas, Exemplo:

SELECT * FROM parceiros UNION SELECT * FROM usuarios

Isso nao tem como a menos que a primeira tabela selecionada tenha o mesmo numero de tabelas da segunda tabela. Que quase sempre não vai ser o caso.

O certo seria fazer o seguinte.

Select cod, nome, valor from parceiros union select cod, usuário, senha from usuarios

Neste select, eu seleciono o mesmo numero de tabelas nos dois selects.

Por isso que quando você vai fazer um sql injection via URL, você precisa primeiro saber o numero de colunas da tabela selecionada. Para descobrir a quantidade de colunas existentes na tabela. Basta fazer o seguinte:

Aumentar o codigo

Union select 1,2,3,4,5,6,7

Si der algum erro é porque a tabela tem menos que 7 colunas, agora si não der ERRo, você tem que ir aumentando a quantidade de colunas.

No select anterior nos verificamos 7 colunas e não deu erro, então vamos aumentando de um em um até achar.

Depois de achar a quantidade de colunas existentes no primeiro select, você precisa achar o nome da tabela dos usuarios OU o nome da tabela que você desejar.

Não vou entrar em muitos detalhes de sql injection, pois meu propósito não é esse. Meu propósito aqui agora e ensinar a usar o comando UNION.

~bye~Juancarloscunha

Nos tempos de hoje, uma das formas mais utilizadas para esconder e não perder dados, é a forma de registrar uma sessão, Ou cookie, que não será neste post que eu falarei sobre ele.

Session(sessão) é uma variável criada e colocada em algum lugar do navegador de internet, e quando precisa usar essa mesma variável, então o programador cria um código simples para reutilizar esta mesma variável, porem, como tudo tem seu lado bom e seu lado ruim, estas sessões si forem usadas de modo correto, funciona perfeitamente sem correr muitos riscos de uma invasão no site ou algo do tipo.

Esta variável de sessão é desfeita quando o navegador é fechado(obvio, até o nome fala, variável dia sessão).

Vou colocar aqui um código de um sistema vulnerável a ataques via sessão:

Código da pagina login.php:

<?php

//neste exemplo vou citar a sessao chamada ‘nivel’, que é o nível de permissão do user

session_register(‘nivel’);

$_SESSION[‘nivel’]=$nivel_permissao;

//a variável nível_permissao, foi pegada do banco de dados,”exemplo”

?>

Codido index.php:

<?php

/*esta outra pagina ira pegar a sessao registrada e pega também o código do usuário que

Que na maioria das vezes são pegos por sessão ou cookie */

$nivel =$_SESSION[‘nivel’];

$cod_user =$_SESSION[‘cod_user’];

//isto é um nível de permissão para os usuarios

/* se o usuario nao estiver com o nivel de permissao (ADM) OU MELHOR nivel de administrador, entao a pessoa nao entra na pagina, agora si ela estiver o nivel de permissao de administrador*/

if($nivel != “ADM”){

header(“location:error.php”);

exit;

}else if($nivel ==”ADM”){

header(“location:/admin/crm.php”);

}else{

exit;

}

?>

//—————————————————————-à

Na pagina acima, nós vimos uma pagina com session vulnerável.

Agora vem a parte boa do ensinamento.

Como explorar esta falha ? alguém sabe?

Isso é mais fácil do que todos pensam ou possam imaginar.

Si você é um usuário do sistema e não tem acesso de administrador, quando você entrar na pagina index.php que tem a validação ele jogará você para uma pagina de erro.

Então ta, Lembra que la no inicio na primeira pagina, login.php. Ele registrou uma

Session com o tipo do usuário. Então para burlar isso… independente do navegador, exclua todos os registros de autenticação do navegador, pois entre elas estará a nossa que registramos ao logar no sistema.. Depois de ter excluido todas as autenticações do navegador, Crie uma pagina em php, registrando uma sessão com o mesmo nome da sessão do “sistema”, porem, agora vamos jogar o valor “ADM” dentro da sessão. FICARÁ MAIS OU MENOS ASSIM:

Código:

<?php

$nivel=”ADM”;

session_register(‘nivel’);

$_SESSION[‘nivel’]=$nivel;

?>

//————————————————————à

Depois disso, basta entrar diretamente na pagina que voce quer os privilegios, que eles estarao todos ao seu dispor. HEHE

Vou tentar explicar em outro tutorial como si defender destes ataques

~By~ Juancarloscunha

Qualquer duvida, Basta perguntar. Si gostou comente, ou si achou algum erro no meu tutorial, mande-o para mim corrigir

Esse é um programa simples, para os iniciantes aprenderem como é feito um programa de alô mundo. Não tão complicado como tem em outros sites, vou ensinar a criar o programa. Código por código, para vocês realmente aprenderem.

Vamos lá…

Para criar um programa que imprimirá na tela a mensagem Ola mundo,

Primeiramente você terá que arrumar uma tabela ASCII em mãos.

E para quem não sabe nem o que é uma tabela ASCII, pesquise o que é neste momento e depois volte a ler este tutorial de escrita de um programa em assembly.

Vou passar, somente os códigos ASCII da mensagem alo mundo.

CODIGO E LETRA

41 – A

6C – L

6F – O

20 –      //ESPACO

6D – M

75 – U

6E – N

64 – D

6F – O

21 – !

24 – $

Para criar este programa, vou estar usando o programa proprio do windows chamado DEBUG(lê-se debâgui).

Para encontralo, entre no prompt de command do windows de digite: debug

Assim você vai acessar o programa.

Agora é preciso colocar os códigos do string na memória.

A função: E

É para informar endereços de deslocamento

A função: A

É para assemblar, colocar como ponto inicial de deslocamento

A função: mov

Serve para mover

A função: int

Serve para interronper

Agora vamos la….

Entre no programa debug

Informe o endereço de deslocamento a partir de 0200. e informe cada byte da tabela anterior separando-os por espaços  em branco. Ficaria assim:

E 0200 41 6C 6F 20 6D 75 6E 64 6F 21 24

Neste caso e nescessario informar para o registrador geral DX  o endereço de deslocamento em que se encontra a seguencia de caracteres. Neste caso, o endereço é 0200. É necessário também definir o valor hexadecimal 09 no registrar mais significativo AH, para que um string seja impresso. Execute o comando A 0100.

Ficaria assim:

A 0100

0D0B:0100 MOV AH,09

0D0B:0102 MOV DX,0200

0D0B:0105 MOV INT 21

0D0B:0107 MOV INT 20

0D0B:0109

Obs: quando voce digitar a penultima linha que é MOV INT 20, é preciso dar dois enter.

O endereço 0D0B, no seu computador pode não ser o mesmo. ISSO E NORMAL!

O CODIGO 09 serve para imprimir uma seguencia de caracteres na tela. Si você quisesse imprimir somente um caracter, bastava você colocar no lugar de 09  o  c

código 02.

Digite o comando G para que a mensagem seja apresentada.

-G

Alo mundo!

O programa terminou de forma normal

Ai esta o seu programa em assembly

Caso achou esse programa muito difícil de fazer, Então basta fazer o seguinte:

Entre no programa debug e digite:

E 0200 “ALO MUNDO” 24

Programa feito.

Digite: G

Si imprimiu na tela sua mensagem de alo mundo então é porque deu certo(obvio)

——————————————————————-

Caso você queira salvar este programa, basta digitar na linha de comando o debug:

N nomeprograma.com

Depois digitar:

W

Já que estou falando sobre assembly já vou falar a diferença entre assembler e assembly.

Muitas pessoas leigas confundem as palavras, pois não sabem o que fala.

Assembly é uma linguagem de programação! Não é uma linguagem de maquina, porem é quase isso.

Assembler é mero compilador de programas assembly.

Criptografia md5
O md5 é uma criptografia fácil de entender e bem prática. O md5 não pode ser “descriptografado”, e ele é utilizado geralmente mais para scripts de Login.
Exemplo:

O usuário digita sua senha, a senha digitada é criptografada em md5 e é procurada no database, caso a senha no database (também em md5) for igual a digitada, é liberada o login!

Vou fazer uma simples criptografia da palavra “atum”.
 
<?
$palavramd5 = md5(atum);
echo $palavramd5 // Exibe a palavra em md5
?>

Este exemplo pode ser feito do mesmo modo com a criptografia sha1,sha2…