½Ã½ºÅÛ ÇØÅ·

 1576, 1/79 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   kumi123
   ÀÌ ¾î¼ÀÄÚµå ¼³¸íÁ» ÇØÁÖ¼¼¿ä./.

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


.global main
main:
jmp go
func:
pop %ebx ; %ebx¿¡ "/bin/sh" ¹®ÀÚ¿­ ½ÃÀÛÇÏ´Â ÁÖ¼Ò °ª µé¾î°¨
movl $0x0, %eax
push %eax ; %eax¿¡ 0 À» ³ÖÀº µÚ ½ºÅÿ¡ PUSH (str[1]=null ±¸Çö)
push %ebx ; ¹®ÀÚ¿­ ½ÃÀÛ ÁÖ¼Ò °ª ½ºÅÿ¡ PUSH (str[0]="/bin/sh" ±¸Çö)
movl %esp, %ecx ; %ecx´Â ¹®ÀÚ¿­ ¹è¿­ÀÇ ½ÃÀÛ ÁÖ¼Ò °ª (str °ª ±¸Çö)
movl $0x0, %edx ; %edx¿¡ null °ª
movl $0xb, %eax ; execveÀÇ ½Ã½ºÅÛ ÄÝ ¹øÈ£ 11À» %eax¿¡ ³ÖÀ½
int $0x80
go:
call func
.string "/bin/sh"

¿©±â¼­ call À»Çϸé, ret¿¡ µé¾î°£´Ù´Â °Í ±îÁø ¾Ë°Ú´Âµ¥.. ¼³¸íÀ» º¸´Ï, ret¿¡ .stringÀÌ µé¾î°¡°í espµµ ret(.string)À» °¡¸£Å²´Ù°í ³ª¿À´Â ±º¿ä..
½±°Ô ¼³¸íÁ» ÇØÁÖ¼¼¿ä

  Hit : 3758     Date : 2013/06/03 10:09



    
Silk ret Àº Á» ÀûÀýÄ¡ ¾ÊÀº ´Ü¾î¼±Åð°°í,
ÀÏ´Ü Ã³À½ºÎÅÍ µû¶ó°¡º¸¸é mainºÎÅÍ ½ÃÀÛÇÏ°Ô µË´Ï´Ù.

jmp go ³×¿ä. ¿©±â¼­ ±»ÀÌ jmp go ÇÏ´Â ÀÌÀ¯´Â call func °¡ ¾î¼Àºí¸® ¹ÙÀÌÆ®ÄÚµå·Î ¹Ù²î¾úÀ» ¶§ 00ÀÌ µé¾î°¡´Â°ÍÀ» ¹æÁöÇϱâ À§ÇÔÀÔ´Ï´Ù.
±Ùµ¥ func ÇÔ¼ö³»ÀÇ ´Ù¸¥ÄÚµåµéÀº 00 ¿¡ ´ëÇÑ Ã³¸®¸¦ ¾ÈÇϴ°ź¸´Ï Å« Àǹ̴ ¾ø¾îº¸À̳׿ä.

funcÇÔ¼ö°¡ callº¸´Ù À§¿¡ ÀÖÀ¸¹Ç·Î call ±¸¹®Àº
call¿ÉÄÚµå FF FF FF 37 ÀÌ·±½ÄÀ¸·Î 00ÀÌ ¾ø´Â ¸¶À̳ʽº »ó´ëÁÖ¼Ò·Î ¹Ù²ð°Ì´Ï´Ù.

call À» ÇÏ°ÔµÇ¸é ½ºÅÿ¡ eip°¡ push µÇ´Ï±î /bin/shÀÇ ÁÖ¼Ò°¡ ½ºÅÿ¡ pushµÈ »óŰڱ¸¿ä.

funcÇÔ¼ö¿¡¼­ pop ebxÇÔÀ¸·Î½á ebx¿¡ /bin/shÀÇ ÁÖ¼Ò¸¦ ´ãÀ» ¼ö ÀְԵ˴ϴÙ.

±× ¾Æ·¡´Â ¹¹ ½Ã½ºÅÛÄÝ ÀÎÀÚ¸ÂÃçÁִ°Ŵϱî Å©°Ô ¾î·ÆÁö ¾Ê±¸¿ä.
2013/06/06