티스토리 뷰
- forth
nc 또는 putty 같은 것을 이용해서 IP는 136.243.194.49, 포트는 1024로 접속하게 되면 yForth 라는 서버에 접속을 할 수 있다.
forth에 대해서 찾아보면 아래와 같이 프로그래밍 언어라는 것을 검색을 통해서 알 수 있다.
"Forth is an imperative stack-based computer programming language"
간단하게 계산을 해보면 특징을 알 수 있다.
1 + 1 = 2
3 + 7 - 1 = 9
위와 같은 연산을 forth 언어로 처리해보면 아래와 같다.
1 1 + .
1) 1을 스택에 넣는다.
2) 1을 스택에 넣는다.
3) 스택에서 두 값을 꺼내서 더하기(+)를 한 값(2)을 다시 넣는다.
4) 스택에 있는 값을 출력한다.
3 7 + 1 - .
1) 3을 스택에 넣는다.
2) 7을 스택에 넣는다.
3) 스택에서 두 값을 꺼내서 더하기(+)를 한 값(10)을 다시 넣는다.
4) 1을 스택에 넣는다.
5) 스택에서 두 값을 꺼내서 빼기(-)를 한 값(9)을 다시 넣는다.
6) 스택에 있는 값을 출력한다.
이를 통해서 forth 언어는 스택과 후위 표기법을 사용한다는 것을 알 수 있다.
words 를 입력하면 아래와 같이 출력이 된다.
출력된 내용을 살펴보면 system을 확인할 수 있다.
위 정보들을 이용해서 다음과 같이 입력하여 명령어가 실행되도록 시도하였다.
ls system
명령어를 입력하면 [ls] error(2): unknown word. 에러가 발생한다.
s" strings" 을 이용해서 다시 시도하였다.
s" ls" system
명령어를 입력하면 정상적으로 실행이 되어 flag.txt README.gpl run.sh yforth가 표시된 것을 확인할 수 있다.
동일한 방법으로 flag.txt 파일을 읽으면 flag 값을 얻을 수 있다.
s" cat flag.txt" system
flag: 32C3_a8cfc6174adcb39b8d6dc361e888f17b
'CTF (Git으로 이사 예정)' 카테고리의 다른 글
[SSCTF] Up!Up!Up! - Web (100) (0) | 2016.03.01 |
---|---|
[SharifCTF] technews - Web (200) (0) | 2016.02.09 |
[SharifCTF] PhotoBlog - Web (100) (0) | 2016.02.09 |
[32C3] ITD - Web (150) (0) | 2016.01.19 |
[32C3] Sequence Hunt - Web (200) (0) | 2016.01.13 |
[32C3] Kummerkasten - Web (300) (0) | 2016.01.12 |
[32C3] TinyHosting - Web (250) (0) | 2016.01.11 |
[32C3] MonkeyBase - Web (200) (0) | 2016.01.07 |
[CODEGATE2015] Owltube - Web (400 Point) (0) | 2015.03.16 |
[CODEGATE2015] Owlur - Web (200 Point) (0) | 2015.03.16 |