본문 바로가기

Wargame Write-Up141

(Pwnable.xyz) sub writeup __int64 __fastcall main(__int64 a1, char **a2, char **a3) { int v4; // [rsp+0h] [rbp-18h] BYREF int v5; // [rsp+4h] [rbp-14h] BYREF unsigned __int64 v6; // [rsp+8h] [rbp-10h] v6 = __readfsqword(0x28u); sub_A3E(a1, a2, a3); v4 = 0; v5 = 0; _printf_chk(1LL, "1337 input: "); _isoc99_scanf("%u %u", &v4, &v5); if ( v4 2022. 1. 9.
(Pwnable.xyz) Welcome writeup __int64 __fastcall main(__int64 a1, char **a2, char **a3) { _QWORD *v3; // rbx char *v4; // rbp size_t v5; // rdx size_t size; // [rsp+0h] [rbp-28h] BYREF unsigned __int64 canary; // [rsp+8h] [rbp-20h] canary = __readfsqword(0x28u); sub_B4E(a1, a2, a3); puts("Welcome."); v3 = malloc(0x40000uLL); *v3 = 1LL; _printf_chk(1LL, "Leak: %p\n", v3); _printf_chk(1LL, "Length of your message: "); size = 0.. 2022. 1. 7.
[WEB] Environment Pollution 보호되어 있는 글 입니다. 2021. 12. 30.
[Pwnable.tw] hacknote 풀이 hacknote TL;DR manipulate function pointer heap challnege analysis 메뉴는 할당 삭제 함수포인터 호출 이렇게 있다. 전역변수 ptr 에 청크를 5개까지만 입력받을 수 있다. ptr[i] = malloc(0x8) → function address → malloc(input size) → contents 할당할 때는 malloc(0x8), malloc(input size) 순으로 할당받고, 해제할 때는 역순으로 해제한다. 함수포인터를 호출할 때는 (*ptr[i])(ptr[i]); 이런식으로 호출한다. 그 함수는 인자+4 값을 참조해 contents 를 출력해준다. vulns ptr 를 초기화하지 않아 uaf 도 발생. exploit malloc(0x8) →.. 2021. 10. 19.