githubEdit

🐻ELF x86 - Stack buffer overflow basic 3

Note : A JOURNEY TO GAIN KNOWLEDGE

#include <stdio.h>
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>
#include <stdlib.h>
 
void shell(void);
 
int main()
{
 
  char buffer[64];
  int check;
  int i = 0;
  int count = 0;
 
  printf("Enter your name: ");
  fflush(stdout);
  while(1)
    {
      if(count >= 64)
        printf("Oh no...Sorry !\n");
      if(check == 0xbffffabc)
        shell();
      else
        {
            read(fileno(stdin),&i,1);
            switch(i)
            {
                case '\n':
                  printf("\a");
                  break;
                case 0x08:
                  count--;
                  printf("\b");
                  break;
                case 0x04:
                  printf("\t");
                  count++;
                  break;
                case 0x90:
                  printf("\a");
                  count++;
                  break;
                default:
                  buffer[count] = i;
                  count++;
                  break;
            }
        }
    }
}
 
void shell(void)
{
  setreuid(geteuid(), geteuid());
  system("/bin/bash");
}

PhΓ’n tΓ­ch:

  • Dα»±a vΓ o thα»© tα»± khai bΓ‘o biαΊΏn, ta cΓ³ thể phΓ‘t thαΊ£o thα»© tα»± trong stack nhΖ° sau:

  • NhΖ° vαΊ­y khΓ‘c vα»›i cΓ‘c chall 1 vΓ  2, lΓΊc nΓ y biαΊΏn check được khai bΓ‘o sau biαΊΏn buffer ta khΓ΄ng thể nhαΊ­p trΓ n để ghi Δ‘Γ¨ giΓ‘ trα»‹ lΓͺn check

  • LΓΊc nΓ y review lαΊ‘i code để Γ½ mα»™t hΓ m lαΊ‘ lαΊ«m read(filenoarrow-up-right(stdin),&i,1);

  • NhΖ° vαΊ­y hΓ m nΓ y giΓΊp ta đọc tα»«ng kΓ­ tα»± cα»§a chuα»—i nhαΊ­p vΓ o, nΓͺn nhα»› buff được lΖ°u dΖ°α»›i dαΊ‘ng chuα»—i mΓ¬nh cΓ³ thể truy xuαΊ₯t tα»«ng phαΊ§n tα»­ :

  • Để Γ½ case sau:

  • NhΖ° vαΊ­y Γ½ tưởng lΓΊc nΓ y ta cΓ³ thể đọc lαΊ‘i tα»«ng phαΊ§n tα»­ cα»§a check vΓ  thay Δ‘α»•i giΓ‘ trα»‹ cα»§a chΓΊng bαΊ±ng việc giαΊ£m giΓ‘ trα»‹ biαΊΏn count vΓ  ghi Δ‘Γ¨ vΓ i tα»«ng bytes tΖ°Ζ‘ng α»©ng vα»›i format little-endiant

flag: Sm4shM3ify0uC4n

Last updated