일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 수학
- syscall
- off by one
- heap
- 동적 계획법
- BFS
- 스위핑 알고리즘
- 다이나믹 프로그래밍
- 백트래킹
- tcache
- 완전 탐색
- House of Orange
- 연결리스트
- BOF
- 포맷스트링버그
- 스택
- 이진트리
- 이분 탐색
- fsb
- 브루트 포스
- RTL
- 분할 정복
- 투 포인터
- DFS
- 이진 탐색
- ROP
- 문자열 처리
- OOB
- 에라토스테네스의 체
- 큐
- Today
- Total
목록RTL (5)
SDJ( 수돈재 아님 ㅎ )
보호되어 있는 글입니다.
보호되어 있는 글입니다.
보호되어 있는 글입니다.
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ceWlxe/btqDXtKSB8m/kkwvBhUTkJBGaGv4QiKns1/img.png)
시스템 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 권한을 지워..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/ylhhg/btqyldrUBnZ/J3vrZQUYRpWkCEOcgyPvG1/img.png)
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..