일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 이진 탐색
- 에라토스테네스의 체
- heap
- 투 포인터
- 이진트리
- 분할 정복
- 완전 탐색
- 포맷스트링버그
- ROP
- RTL
- 큐
- 연결리스트
- 스위핑 알고리즘
- DFS
- BFS
- 수학
- 백트래킹
- off by one
- fsb
- OOB
- 다이나믹 프로그래밍
- 브루트 포스
- House of Orange
- 이분 탐색
- 문자열 처리
- BOF
- tcache
- 동적 계획법
- 스택
- syscall
- Today
- Total
목록OOB (4)
SDJ( 수돈재 아님 ㅎ )
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/byvuah/btqEJjl49zr/KhPCKfQLUbVxSC5ucjgHSk/img.png)
재밌는 문제였다. 2등을 한 문제. ( 만약에 잠 안잤으면 퍼블 먹었을 듯 TT ) 다만 현재 Ubuntu 19.04가 날라가서 코드만 가지고 있는 상태이다. 그래서 우분투 화면은 찍지는 못했는데 일단 익스 코드만 올려둔다. 취약점은 OOB가 되겠다.( OOB arbitrary write ? ) 우리가 할당하는 위치를 조절할 수 있기 때문에 allocated_count < 0으로 조작해서 stack[allocated_count]의 위치가 &allocated_count가 되게 만들어 준다음 할당을 시도하면 allocated_count에 heap address가 남게 되서 heap leak이 가능해진다. 그리고 tcache bins의 0x3f0 위치에 arbitray write를 통해 bss_stdout -..
보호되어 있는 글입니다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cM5UXE/btqCKBpyCNU/pZHV3IYAkp7ShjF05kwv01/img.png)
파일 다운로드 보호기법을 보면 다음과 같다. 바이너리를 분석해보자. int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // ebx unsigned int v4; // eax unsigned int v6; // [rsp+Ch] [rbp-2Ch] while ( 1 ) { show_menu(); v3 = read_int("Operator: "); if ( !v3 ) break; v4 = read_int("x = "); ((void (__fastcall *)(_QWORD, unsigned int *))ope[v3 - 1])(v4, &v6); __printf_chk(1LL, "f(x) = %d\n", v6); } return 0;..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bdHd5X/btqzu68aB5X/YEGCsNB5zvTFq6CEcBoFDk/img.png)
오랜만에 write-up을 쓰고자 한다. 오늘은 2019 facebook ctf - otp-server인데 먼저 보호기법부터 보자. 아름답다. 그럼 바로 바이너리를 분석하러 가보자. main함수는 다음과 같이 생겼는데 하나씩 살펴보도록 하자. 1. sub_9E8 /dev/urandom에서 랜덤한 값을 꺼내온 다는 것 말고 중요한 점은 보이지 않는다. sub_9E8속에 sub_9BA를 보면 설명을 해준다. cipher( (4 byte nonce | message | 4 byte nonce) )방식이라고 한다. 2. sub_C4A ( 취약점 발생 함수 ) main함수에서 v4인자가 넘어온다. IDA에서 함수의 이름을 내 입맛 대로 바꿔버린점 주의. 여기서는 두가지로 나뉘게 되는데 1번 -> Set key와 ..