본문 바로가기
CTF 공부/LOB

[LOB]giant

by JJWANIC 2020. 1. 29.

stack 영역도, RTL도 안되네요... 그럼 뭐가 있을까요?

48byte 중 44byte를 초기화하는거 보니까 4byte 어디 주소로 이동해야하는데......

호출되는 exit()의 주소가 0x80으로 시작하네요 이런 점을 이용하는 것이 아닌가 싶습니다.

아니였습니다.!!!

ret 주소를 다시 호출하고 Shellcode가 담긴 주소를 넣은 후 Shellcode를 넣으면 된다고 합니다.!

ret sled라는 취약점이 있습니다.
ret는
pop eip
jmp eip로 구성되어있습니다.

eip에 return address를 넣고, jmp로 이동하는데 ret ret를 연속으로 쓰면 이동하는 주소를 변조시킬 수 있나봐요.

payload : ./assassin `python -c 'print "ret Address" + "Shellcode Address" + "Shellcode"

 

이 분의 글을 많이 참고하였습니다.

https://d4m0n.tistory.com/86

 

RET Sled

RET Sled란? RET Sled는 Return Address에 RET 명령어의 주소를 덮어씌워 RET 명령을 연속적으로 호출하며 콜 스택을 조작하는 것을 말한다. 간단히 설명한 것만으로는 바로 이해가 가지 않을 수 있을 것이다. Int..

d4m0n.tistory.com

 

'CTF 공부 > LOB' 카테고리의 다른 글

[LOB]zombie_assassin  (0) 2020.02.07
[LOB]assassin  (0) 2020.01.30
[LOB]bugbear  (0) 2020.01.29
[LOB]darkknight  (0) 2020.01.29
[LOB]golem  (0) 2020.01.27