1. gdb
- 다 아는 그 디버거!

2. gdb-peda
- 기본 gdb에서 편의기능만 좀 추가(?) 한 디버거

3. pwndbg
- 안써봤음

4. radare2
- 안써봤음. 그러나 인터페이스는 지림;
1. 정의
- 위키피디아를 인용하면, 실제 값대신에 Symbolic을 추적하는 프로그램 분석을 의미한다.
- 프로그램의 실행 추적을 위해 어떤 Symbolic을 추적하는 것이다.

2. 예제(?)
내용이 좀 길지만... 의미는 아주 간단하다.

symbolic variable로 함수의 return value를 선택한다.
그러므로 위의 예제에서는 read() 함수의 return value인 y를 symbolic variable로 정하고 s라 한다.(y=s)
symbolic execution을 통해, y = 2*y를 거치면 y=2s가 된다.
그리고 다음으로 조건문이 나온다. if y==12 이 조건문을 통과하는데 조건문의 결과가 TRUE이면 2s = 12가 된다.

결국 위와 같은 방식으로 정해진 symbolic variable s를 실행괴정에서 추적하면서 프로그램을 분석하는 것을
symbolic execution이라 한다. 결국 taint analysis에 쓰일 것으로 판단된다.

출처: http://v0nsch3lling.tistory.com/489 [Falling Into Infinity]

----------------------

1. 정의
Symbol = 상징, 부호
Execution = 실행
특정한 값이 아닌 x, y, z와 같은 임의의 문자로 변환하여 프로그램을 구동 시키는 방식을 의미

2. 특징
사람이 프로그램을 살펴볼 때 직관적으로 하던 일들을 컴퓨터에 옮긴 것
즉, 여러 분기문의 조건을 보고 프로그램의 어떤 지점에서 각 변수가 어떤 값들을 갖는지 알아내는 일
컴퓨터는 누적된 path condition을 살펴보고 이를 시도


'Pwnable > Pwnable Theory' 카테고리의 다른 글

리눅스 디버거 종류  (0) 2017.11.16
ROP (Return Oriented Programming)  (0) 2017.07.04
Pwn에 나오는 용어들 정리 (계속해서 추가)  (1) 2017.07.04
1. 기본 지식
- 프로그램을 마음대로 조종할 수 있는 취약점을 발견한 경우
- 코드를 실행시키기 위한 메모리 영역이 없을 경우

2. 알아야할 것
- PLT, GOT
- RTL
- RTL Chain
- DEP, ASLR

- Gadget


1. 가젯(Gadget)
- 가젯이란 ROP(Retrun Oriented Programming)에서 주로 쓰임
- 원래 의미는 코드조각을 지칭했지만 요즘은 RET로 끝나는 연속된 명령어를 뜻함

2. bss영역
- 초기화 되지 않은 전역변수들을 위한 곳으로
- 보통 이 변수들이 0으로 초기화 되있고 이 곳은 주소값이 변하지 않는다.
- 임시스택이라고도 불림

3. PLT(Procedure Linkage Table)
- 프로시저들을 연결해주는 테이블
- 프로그램이 호출하는 모든 함수들을 나열하는 테이블

4. GOT(Global Offset Table)
- 프로그램이 실행후 libc.so 내의 실제 함수 주소가 저장되는 곳

5. DEP(Data Execution Prevention)
- 스택에 실행 권한을 주지않는 기법

6. ASLR(Address Space Layout Randomization)
- 공유라이브러리의 주소를 랜덤하게 바꾸는 기법
- 메모리 보호기법중 하나

7. Leak
- (정확한건 아님)원래는 보이지 않는 영역인데 보이게 하는 것

8. RCE 취약점
- Remote code execution 약자
- drive-by install을 뜻하는 것
 조작된 웹페이지나 이미지 파일을 보는 것만으로도 사용자의 네트워크 외부에서 전송된 실행 코드를 시작가능

9. NX

Never eXecute의 약자로써 스택의 실행권한이 없는, 즉 스택에 실행코드를 넣어도 무효화 된다.


'Pwnable > Pwnable Theory' 카테고리의 다른 글

리눅스 디버거 종류  (0) 2017.11.16
심볼릭 익스큐션(Symbloic Execution)  (0) 2017.11.16
ROP (Return Oriented Programming)  (0) 2017.07.04


문제는 리눅스 input 문제이다.

일단 소스코드 바로 열람 ㄱㄱ


소스코드가 기니 GitHub로 옮김..


소스코드를 해석해보면

너무 길다... 아 하기싫어라..


그냥 하나하나 맞는 해답을 익스플로잇 코드(??)식으로 만들어 줘서 실행시켜야 한다.

저기서 stage1 부터 argv를 100개를 입력해야하는데... 실제로 입력할수가 없으니 =_=..


익스플로잇 코드는 /tmp경로에 직접 짜야한다.. 하지만 검색하면 많이나오니 패쓰

나같은 경우에는 /tmp/manvan 디렉토리에 짯다.




-------------------------

16.09.24

stage5가 클리어가 안되는 문제가 발생중.. 트러블 슈팅 보류

'Pwnable > Pwnable.kr' 카테고리의 다른 글

Pwnable.kr random 풀이  (1) 2016.09.23
Pwnable.kr passcode 풀이  (0) 2016.09.23
Pwnable.kr flag 풀이  (0) 2016.09.22
Pwnable.kr bof 풀이  (0) 2016.09.22
Pwnable.kr collision 풀이  (0) 2016.09.12

+ Recent posts