일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 이진트리
- RTL
- off by one
- BOF
- DFS
- ROP
- tcache
- 투 포인터
- House of Orange
- 이진 탐색
- 스택
- 분할 정복
- 에라토스테네스의 체
- 백트래킹
- 포맷스트링버그
- heap
- 완전 탐색
- syscall
- 문자열 처리
- 다이나믹 프로그래밍
- 스위핑 알고리즘
- 브루트 포스
- 큐
- 연결리스트
- 이분 탐색
- BFS
- 수학
- OOB
- 동적 계획법
- fsb
- Today
- Total
목록House of Orange (3)
SDJ( 수돈재 아님 ㅎ )
사용한 기법 : house of orange 자신이 작성한 Testimonial와 로그인 한 유저의 Testimonial를 구분하는데 오류가있다. 예를들어 A가 B의 Testimonial를 4개 쓰고 C의 Testimonial를 4개 썼다 하고 B가 자신의 Testimonial 4개를 전부 지우면 B는 자신의 Testimonial가 뜨지 않지만 A에게서는 B의 Testimonial가 뜨면서 수정할 수 있다. ( free됐지만 접근할 수 있음 ) 그래서 나는 fd와 bk를 잘 조작하여 chunk를 overlap 시킨 뒤 topchunk를 조져서 house of orange를 실행시켰다. from pwn import * server = 0 if server: p = remote("tukro.pwn2.win"..
보호되어 있는 글입니다.
예전에 이 바이너리를 봤었는데.. 그 때 당시에는 heap에 대해 몰랐기 때문에 house of orange 기법도 몰랐고 그냥 넘겼던 문제였다. 근데 이번에 house of orange 기법을 좀 공부하고 싶어서 다시 꺼냈다.. 차근차근 exploit 해보자. 먼저 보호기법이다. main을 보면 다음과 같다. 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 29 int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // [rsp+4h] [rbp-Ch] unsigned __int64 v4; // [rsp+8h] [rbp-..