RTL이 안되구요...argv[44:48]이 무조건 D0의 주소여야 합니다.
D0 -> GYE -> GUL -> YUT -> M0 순으로 올라가는 것 같습니다...
RTL Chaining 방법을 이용해서 적용을 해보면!
일단 각각 함수들의 주소를 구해보겠습니다.
구한 함수들의 주소를 순서대로 삽입하니까 이런 결과가 뜹니다.
char* cmd 안에 쓰레기 값이 들어가서 실행이 잘 안되는 것 같습니다..
cmd 값을 /bin/sh로 채워줘야하는데
마지막 MO의 주소 + (4byte dummy : Return Address) + argv address + /bin/sh\x00 으로 채워보겠습니다.
core dumped가 발생했으니 실제로 /bin/sh이 존재하는 위치를 찾아보겠습니다.
/bin/sh
2F 62 69 6E 2F 73 68
찾았습니다. 이 주소로 이제 payload를 작성해보겠습니다.
성공했습니다.!
'CTF 공부 > LOB' 카테고리의 다른 글
[LOB]nightmare (0) | 2020.02.07 |
---|---|
[LOB]succubus (0) | 2020.02.07 |
[LOB]assassin (0) | 2020.01.30 |
[LOB]giant (0) | 2020.01.29 |
[LOB]bugbear (0) | 2020.01.29 |