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"
이 분의 글을 많이 참고하였습니다.
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 |