I'm currently traducing the posts in english, my english is not very good, so if you find errors feel free to contact me.
  • intruded.net : leviathan – level #4

    Ouaih, on est au level4, c’est la moitié du challenge, super :>
    Bon en fait c’est exactement le même procédé que le level2… rien de plus, ce qui nous laisse au moins 3 méthodes pour le résoudre.
    Comme au level2 j’ai utilisé ltrace, je vais prendre gdb sur celui-ci.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    
     80484cc:	e8 cb fe ff ff       	call   804839c <fgets@plt>
    80484d1:	8d 45 f5             	lea    0xfffffff5(%ebp),%eax
    80484d4:	89 44 24 04          	mov    %eax,0x4(%esp)
    80484d8:	8d 85 f5 fe ff ff    	lea    0xfffffef5(%ebp),%eax
    80484de:	89 04 24             	mov    %eax,(%esp)
    80484e1:	e8 76 fe ff ff       	call   804835c <strcmp@plt>
    80484e6:	85 c0                	test   %eax,%eax
    80484e8:	75 26                	jne    8048510 <do_stuff+0x8c>
    80484ea:	c7 04 24 08 87 04 08 	movl   $0x8048708,(%esp)
    80484f1:	e8 96 fe ff ff       	call   804838c <puts@plt>
    80484f6:	c7 04 24 ec 03 00 00 	movl   $0x3ec,(%esp)
    80484fd:	e8 6a fe ff ff       	call   804836c <seteuid@plt>
    8048502:	c7 04 24 1c 87 04 08 	movl   $0x804871c,(%esp)
    8048509:	e8 6e fe ff ff       	call   804837c <system@plt>
    804850e:	eb 0c                	jmp    804851c <do_stuff+0x98>
    8048510:	c7 04 24 24 87 04 08 	movl   $0x8048724,(%esp)
    8048517:	e8 70 fe ff ff       	call   804838c <puts@plt>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    (gdb) b * 0x080484e1
    Breakpoint 1 at 0x80484e1
    (gdb) r
    Starting program: /wargame/level4 
    Enter the password> lolilol  
     
    Breakpoint 1, 0x080484e1 in do_stuff ()
    (gdb) x/2x $esp
    0xbffff8c0:	0xbffff8dd	0xbffff9dd
    (gdb) x/s 0xbffff8dd
    0xbffff8dd:	 "lolilol\n"
    (gdb) x/s 0xbffff9dd
    0xbffff9dd:	 "snlprintf\n"
    (gdb)

    Voilà, on a le password du binaire (snlprintf), on ré-execute et on a un shell setuid level5, on va lire le fichier /home/level5/.passwd et c’est fini.

    next?lol


Rss Feed Tweeter button