드림핵(3)
-
[ Dreamhack ] dirty stack
main int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { unsigned __int64 v3; // rbx unsigned __int64 v4; // [rsp+8h] [rbp-E8h] BYREF __int64 v5; // [rsp+10h] [rbp-E0h] BYREF unsigned __int64 v6; // [rsp+18h] [rbp-D8h] __int64 i; // [rsp+20h] [rbp-D0h] const char *v8; // [rsp+28h] [rbp-C8h] __int64 s[21]; // [rsp+30h] [rbp-C0h] BYREF unsigned __int64 v10; // [rsp+D8h] [..
2022.12.13 -
[ Dreamhack ] Zeroshot
https://dreamhack.io/wargame/challenges/426/?writeup_id=8822 ZeroShot 이 문제는 서버에서 작동하고 있는 서비스(ZeroShotV2)의 바이너리와 소스 코드가 주어집니다. 취약점을 익스플로잇해 셸을 획득한 후, “flag” 파일을 읽으세요. “flag” 파일의 내용을 워게임 사 dreamhack.io 문제를 풀며 배운점 - 여러번 aaw가 가능하지만 %d를 사용해서만 입력이 간능한 경우 최대 0xffffffff까지만 입력이 가능하기 때문에 원하는 주소가 4바이트보다 크다면 하위 4바이트 상위 4바이트 나눠서 입력을 주면 된다. - 함수 내부에서 movaps가 실행될 때 rsp가 0x10상태로 정렬되어야 한다. rsp를 정렬시키려면 해당 함수에서 got..
2022.11.27 -
[Dreamhack] house_of_spirit
https://dreamhack.io/wargame/challenges/54/?writeup_id=8611 house_of_spirit Desciption 이 문제는 작동하고 있는 서비스(houseofspirit)의 바이너리와 소스코드가 주어집니다. House of Spirit 공격 기법을 이용한 익스플로잇을 작성하여 셸을 획득한 후, "flag" 파일을 읽으세요. "flag" dreamhack.io house of spirit 이란 임의의 주소를 해제하고 할당할 때 재 할당을 통해 임의 주소를 할당받아 원하는 주소에 값을 쓸 수 있게 하는 공격방식이다. 이 문제를 풀면서 주의할 점은 fake 청크를 해제할 때 tcache의 범위를 벗어나면 안된다 왜냐하면 tcache의 경우 속도를 위해 많은 시큐리티 ..
2022.11.01