Προς το περιεχόμενο

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • 0
m1cRo

c Quiz

Ερώτηση

Geia sas edw sas exw ena mikro quiz :

exoume mia sinarthsh :

 

>
void function(char *buf,int blen){
          char temp[10];
          int len=strlen(buf);
          if(len<blen){
                   strcpy(temp,buf);
          }
}

 

h synarthsh kaleite etc :

function(buf,10);

 

 

Kapou mesa exoume ena lathos pou odigei se ena buffer overflow me gnwsta epakoloutha : ektelesh shellcode.

Vreite kai eksigiste to lathos an mporeite. :X

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

8 απαντήσεις σε αυτή την ερώτηση

Προτεινόμενες αναρτήσεις

Καταρχήν καλή χρονιά σε όλους

P.S fenete oti o pontios hacker epiase polla thimata .kai pios eftege? :mad:

Εννοείς ότι έγιναν επιτυχημένες επιθέσεις με αυτόν τον τρόπο ή απλά βρέθηκε σαν bug? Γιατί allocation και strlen για 2GB (που στα περισσότερα pc's σημαίνει μνήμη στο δίσκο) είναι μια διαδικασία που δύσκολα περνάει απαρατήρητη.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Geia sas edw sas exw ena mikro quiz :

exoume mia sinarthsh :

 

>
void function(char *buf,int blen){
          char temp[10];
          int len=strlen(buf);
          if(len<blen){
                   strcpy(temp,buf);
          }
}

 

h synarthsh kaleite etc :

function(buf,10);

 

 

Kapou mesa exoume ena lathos pou odigei se ena buffer overflow me gnwsta epakoloutha : ektelesh shellcode.

Vreite kai eksigiste to lathos an mporeite. :X

 

Αρχικά το temp δεν χρησιμοποιείται πουθενά και κατόπιν τίποτα δεν μπορεί να μας εγγυηθεί ότι το μέγεθος του δηλαδή (10) θα είναι μεγαλύτερο από το len.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Αρχικά το temp δεν χρησιμοποιείται πουθενά και κατόπιν τίποτα δεν μπορεί να μας εγγυηθεί ότι το μέγεθος του δηλαδή (10) θα είναι μεγαλύτερο από το len.

 

H strlen ti kanei?

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Φαντάζομαι ότι θα το εκμεταλλευτεί ο Πόντιος χάκερ που θέλει να τρέξει τον ιο του βάζοντας ένα string >2GB

eisai Swstos .Amifivalw omos kata poso pontios htan o hacker.

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
Αρχικά το temp δεν χρησιμοποιείται πουθενά και κατόπιν τίποτα δεν μπορεί να μας εγγυηθεί ότι το μέγεθος του δηλαδή (10) θα είναι μεγαλύτερο από το len.

 

Loipon an deite sto documentation MSDN h strlen girizei to lenth tou string kai pianei to poly oso xoraei enas unsigned int .

http://msdn2.microsoft.com/en-us/library/ms860442.aspx

edw einai h perigrafh ths strlen kai eiani :

size_t strlen( const char *string );

 

kai size_t einai typedef size_t unsigned int;

Sthn ousia eiani to megalytero megethos enos buffer peripou 4G.

http://msdn2.microsoft.com/en-us/library/a4yyh3a9(VS.80).aspx

To lathos einai oti akrivos h strlen sthn ousia epistrefei enan unsigned int kai emeis ton grapsame se enan int ,ara an o unisgned int arithmos eiani megalyteros apo 2,147,483,647 bytes tote sto len apothikeuetai enas arnitikos arithmos pou tha einai panta mikroteros tou 10.

Einai ena apo ta liga bugs pou vrethikan ston opera .

 

 

P.S fenete oti o pontios hacker epiase polla thimata .kai pios eftege? :mad:

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Φαντάζομαι ότι θα το εκμεταλλευτεί ο Πόντιος χάκερ που θέλει να τρέξει τον ιο του βάζοντας ένα string >2GB

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

Να υποθέσω οτι blen είναι το μήκος του string που δείχνει ο buf;

 

Σε αυτή την περίπτωση η συνθήκη if(len<blen) είναι αληθής (είναι len + 1 == blen)(η strlen ΔΕΝ λαμβάνει υπ'οψη τον τερματικό χαρακτήρα '\0' του buf).

 

Εκτός από την παραπάνω διαπίστωση, δεν αντιλαμβάνομαι το πρόβλημα που υπάρχει (αρχάριος γαρ). Να δοκιμάσω να το "τρέξω", ή θα έχω σοβαρά προβλήματα;

Κοινοποιήστε αυτήν την ανάρτηση


Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
×
×
  • Δημιουργία νέου...