no image
Web - Read File
문제로 들어오니 구글과 같은 모습의 홈페이지가 나옵니다! 여기서 의심해봐야할 부분은 url에 command라는 변수에 google url이 들어가는거 보이시나요 :D 그리고 File 이름은 flag.php 라고 명시가 되어 있네요! 그럼 command에 flag.php를 넣어줘볼까요 !!? google의 모습은 사라지고 Read File, File is flag.php라는 문구만 남아 있네요 :( 혹시나 싶어서 다른 값도 넣어봤습니다! 똑같은 화면이 나오는 군요 ! 그럼 혹시 필터링을 하는건 아닐까 싶네요 :D flag.php를 필터링한다고 생각하고 넣어봤는데 이것도 아닌가봅니다. 그럼 flag를 필터링하는지 보겠습니다 :D flag가 필터링이 되어있었네요 :D flag가 필터링이 되어 있기 때문에 fl..
2020.01.21
no image
Web - Guess me
들어가면 php코드와 어떤 값을 제출하는게 보입니다. 위의 코드를 해석해보면 filename 변수에 "secret.txt' 문자열이 들어가있고 extract 함수로 GET메소드를 사용합니다. guess는 우리가 입력한 값이 들어가게 되고 secretcode는 filename 변수의 값인 secret.txt에서 내용을 읽어옵니다. 그래서 guess와 secretcode가 같다면 flag를 나타낸다는 것이군요 :D 여기서 주의 깊게 보셔야할 것은 extract 함수입니다! extract 함수에는 취약점이 있는데요 :D &_GET 또는 $_POST로 인자를 전달 시에 파라미터의 값을 초기화할 수 있습니다. 그렇다면 이 문제는 어떻게 풀 수 있을까요? extract 함수를 이용해서 filename의 인자를 전달..
2020.01.20
no image
Web - 보물
문제로 들어가보면 다음과같이 보물상자와 3개의 버튼이 나옵니다 :D 일단 아무 Page 1 버튼을 클릭해봅시다! 클릭하니 알 수 없는 문자열이 출력이 되네요. 그리고 page라는 인자에 페이지 번호의 값이 들어가는게 보입니다! 다른 페이지 번호를 들어가도 알 수 없는 문자열만 보이네요 : ( 문제를 읽어보면 페이지 숫자 중에 보물을 숨겨놨다고 합니다! 즉, 페이지 숫자는 몇개인지 정확히 모르지만 엄청많고 그중 하나가 보물 즉, flag란 소리겠죠? :D 그러나 노가다로 하기엔 너무나 힘드니까.. url페이지의 내용을 출력해주는 간단한 프로그래밍을 해봅시다! 역시 파이썬이 요즘 대세죠! 코드를 간단히 설명하겠습니다 :D 각각 변수의 의미는 다음과 같습니다. url = 문제 url url_re = url 초..
2020.01.09
no image
Web - Button
문제로 들어가 봅시다! 버튼으로 하여금 플래그를 출력하게 해달라네요 :D 일단 한번 눌러보도록 합시다! 그런데 눌러보니 아무런 동작을 하지 않네요 : ( 소스코드를 확인해볼까요? 소스코드를 보니 버튼을 눌러도 별 동작을 하지않는걸 확인했습니다. 그런데 가만히 보면 button의 value가 button인거 보이시나요? 문제에서 버튼으로 플래그를 출력하게 해달라고 했으니 value를 flag를 바꿔서 출력한다는 느낌을 받을 수 있었습니다 :D F12를 누른 후 value를 더블클릭하면 간단히 수정할 수 있습니다! 그럼 버튼 이름이 flag로 수정된 것을 확인할 수 있었고 누르면 다음과 같이 flag를 얻을 수 있었습니다 :D
2020.01.09
no image
Web - Hidden
문제로 들어가 봅시다! "5번 파일에 플래그가 있다악!!!!!!!!!!!!!" 이라는 말과 4개의 버튼이 존재합니다. 일단 버튼 하나를 눌러볼까요? :D Nop 이라는 메세지 박스가 출력이 되는 군요! 그런데 url에 보면 id라는 인자가 1로 넘어가는게 보이시나요? :D 버튼의 숫자가 각각 url의 id의 인자역할을 한다는 걸 알 수 있습니다. 그럼 5번 파일에 플래그가 존재한다고 하였으니 url에 id의 인자 값을 5로 넣고 접속하면 되겠죠? :D 이렇게 간단하게 문제를 해결할 수 있었습니다!
2020.01.09
no image
Web - /
먼저 문제로 들어가봅시다! 들어가니까 "Hidden Flag" 라는 문자열과 로봇 그림이 나오네요 :D 먼저 문제 제목 "/"과 로봇 그림을 봤을 때 뭔가를 유추할 수 있을거예요! 그것은 바로 robots.txt 파일입니다. robots.txt은 검색엔진 크롤러에서 사이트에 요청할 수 있거나 요청할 수 없는 페이지 또는 파일을 크롤러에 지시하는 파일입니다. 즉 쉽게 말해서, 검색엔진 크롤러가 파일 정보를 수집할 때 수집가능대상을 정의하는 것이죠. 그럼 이제 robots.txt 링크로 들어가게 flag가 있는 곳을 나타내고 있네요 :D
2020.01.09
no image
FTZ - Level 6
먼저 hint를 보도록 합시다 :D "인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹 방법이다." 먼저 실행을 시켜볼까요 ? 실행 파일 이름은 tn 입니다. ( password 파일은 제가 이미 풀어서 생긴 겁니다 : ㅇ ) 실행을 시켜보면 다음과 같이 나옵니다. 접속하고 싶은 bbs를 선택하라고 하네요. 하이텔, 나우누리, 천리안 등이 있습니다! 그리고 텔넷 접속 서비스라고 명시가 되어 있네요! 그럼 하나씩 실행 시켜봅시다 :D 3개 서버 모두가 접속 거절이라고 뜨네요.. 그럼 여기서 어떻게 접근을 해야 하는 것일까요 -_-.. 이 문제 해결하기 위해서는 해커스쿨에서 제시하는 것과 같은 해킹 문제를 접할 때 실전 해킹이 아닌 가상 해킹 테스트라는 사실을 기억하고 있어야 합니다. 즉, 현실 세계에..
2019.07.16
no image
FTZ - Level 5
먼저 hint를 살펴 보도록 합시다! "/usr/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp라는 이름의 임시파일을 생성한다." 임시파일을 생성한다는 문구에서 레이스 컨디션을 이용하여 권한을 얻어야 된다는 것을 알 수 있습니다 :D 그럼 레이스 컨디션에 대해 알아 보도록 합시다! 레이션 컨디션을 한글 그대로 해석하면 경쟁 상태라는 의미입니다. 이 의미는 다수의 프로세스가 서로 동일한 자원을 할당 받기 위해 경쟁하는 상태를 의미합니다. 그럼 레이스 컨디션 취약점이 존재하기 위한 최소 조건은 다음과 같습니다 :D "다른 계정의 권한에 접근해야 하므로 SetUID가 걸려 있어야 한다." "일시 파일을 생성해야 한다." "공격자가 임시로 생성되는 파일명을 정확하게 알아야 한다." 이제 밑..
2019.07.14

Web - Read File

HelloMG
|2020. 1. 21. 15:10

Read File 문제

문제로 들어오니 구글과 같은 모습의 홈페이지가 나옵니다!

 

여기서 의심해봐야할 부분은 url에 command라는 변수에 google url이 들어가는거 보이시나요 :D

그리고 File 이름은 flag.php 라고 명시가 되어 있네요!

그럼 command에 flag.php를 넣어줘볼까요 !!?

command=flag.php

google의 모습은 사라지고 Read File, File is flag.php라는 문구만 남아 있네요 :(

혹시나 싶어서 다른 값도 넣어봤습니다!

command=f

똑같은 화면이 나오는 군요 !

그럼 혹시 필터링을 하는건 아닐까 싶네요 :D

flaflag.phpg.php

flag.php를 필터링한다고 생각하고 넣어봤는데 이것도 아닌가봅니다.

그럼 flag를 필터링하는지 보겠습니다 :D

flaflagg.php

flag가 필터링이 되어있었네요 :D

flag가 필터링이 되어 있기 때문에

flaflagg.php -> flag.php

됩니다!

 

필터링을 우회하는 문제라서 생각보다 간단히 풀었네요!

그럼 다음문제에서 뵙도록 할게요~~ :D

'CTF > HackCTF' 카테고리의 다른 글

Web - Time  (0) 2020.01.31
Web - 마법봉  (0) 2020.01.23
Web - Guess me  (0) 2020.01.20
Web - 보물  (0) 2020.01.09
Web - Button  (0) 2020.01.09

Web - Guess me

HelloMG
|2020. 1. 20. 18:23

Guess me 문제

들어가면 php코드와 어떤 값을 제출하는게 보입니다.

위의 코드를 해석해보면

filename 변수에 "secret.txt' 문자열이 들어가있고 extract 함수로 GET메소드를 사용합니다.

guess는 우리가 입력한 값이 들어가게 되고

secretcode는 filename 변수의 값인 secret.txt에서 내용을 읽어옵니다.

그래서 guess와 secretcode가 같다면 flag를 나타낸다는 것이군요 :D

 

여기서 주의 깊게 보셔야할 것은 extract 함수입니다!

extract 함수에는 취약점이 있는데요 :D

&_GET 또는 $_POST로 인자를 전달 시에 파라미터의 값을 초기화할 수 있습니다.

그렇다면 이 문제는 어떻게 풀 수 있을까요?

 

문제풀이

extract 함수를 이용해서 filename의 인자를 전달하고 있기 때문에 취약점을 이용하여

filename의 값을 초기화 시킬 수 있습니다!

[문제풀이] 그림처럼 넣으면 filename은 abcd 값으로 초기화되고

파일이 존재하지 않기 secretcode에는 아무런 값이 들어가지 않습니다!

즉, filename과 guess는 둘다 아무런 값을 가지지 않기 때문에

flag가 뿅! 하고 나올거예요 :D

 

그럼 저 함수는 무조건적으로 취약한걸 까요? 당연히 조건이 있겠죠 :D

1) 변수가 선언한 뒤에 extract 함수가 오면 취약하다.

2) 내부변수의 이름을 알아야 한다.

 

그럼 안전하게 쓰여질려면 어떻게 해야할까요?

1) extract 함수로 인해서 값이 덮여진다면 다시 다른 값으로 덮어준다.

2) EXTR_SKIP 옵션을 사용해 준다.

 

1번은 다시 덮어다주면 사용자가 변수를 자기마음대로 줘도 값이 설정값으로 돌아가겠죠 :D

2번은 충돌이 있을 경우 덮어쓰지 않게 하는 옵션입니다.

자세한 사항은 php 정식홈페이지에서 확인하시면 될 것 같네요 !

https://www.php.net/manual/en/function.extract.php

 

PHP: extract - Manual

[New Version]This function is very useful for filtering complicated array structure.Also, Some integer bitmasks and invalid UTF-8 sequence detection are available.Code: $_GET,            INPUT_POST => $_POST,            INPUT_COOKIE => $_COOKIE,           

www.php.net

제 포스터를 봐주셔셔 감사하고 공부하신다고 수고 많으셨어요 :D

'CTF > HackCTF' 카테고리의 다른 글

Web - 마법봉  (0) 2020.01.23
Web - Read File  (0) 2020.01.21
Web - 보물  (0) 2020.01.09
Web - Button  (0) 2020.01.09
Web - Hidden  (0) 2020.01.09

Web - 보물

HelloMG
|2020. 1. 9. 00:46

문제로 들어가보면 다음과같이 보물상자와 3개의 버튼이 나옵니다 :D

보물 문제

일단 아무 Page 1 버튼을 클릭해봅시다!

Page 1 버튼 클릭

클릭하니 알 수 없는 문자열이 출력이 되네요.

그리고 page라는 인자에 페이지 번호의 값이 들어가는게 보입니다!

다른 페이지 번호를 들어가도 알 수 없는 문자열만 보이네요 : (

 

문제를 읽어보면 페이지 숫자 중에 보물을 숨겨놨다고 합니다!

즉, 페이지 숫자는 몇개인지 정확히 모르지만 엄청많고 그중 하나가 보물 즉, flag란 소리겠죠? :D

그러나 노가다로 하기엔 너무나 힘드니까.. url페이지의 내용을 출력해주는 간단한 프로그래밍을 해봅시다!

소스코드

역시 파이썬이 요즘 대세죠!

코드를 간단히 설명하겠습니다 :D

각각 변수의 의미는 다음과 같습니다.

url = 문제 url

url_re = url 초기화

number = page 인자

 

while에 조건을 1로 주어서 계속 무한반복을 시키고 들어갑니다.

이후 url에 number 변수의 값을 스트링형으로 변환 후 더하고 response의 문자열에

'HackCTF'라는 문자열이 존재하면 출력하고 아니면 number값을 계속 증가시키고 url의 변수를 초기화 시킵니다 :D

 

그리고 좀 기다려보다보면.. flag가 쨘! 하고 나타나게됩니다 :D

보물 문제 flag

 

'CTF > HackCTF' 카테고리의 다른 글

Web - Read File  (0) 2020.01.21
Web - Guess me  (0) 2020.01.20
Web - Button  (0) 2020.01.09
Web - Hidden  (0) 2020.01.09
Web - /  (0) 2020.01.09

Web - Button

HelloMG
|2020. 1. 9. 00:25

문제로 들어가 봅시다!

Button 문제

버튼으로 하여금 플래그를 출력하게 해달라네요 :D

일단 한번 눌러보도록 합시다!

그런데 눌러보니 아무런 동작을 하지 않네요 : (

소스코드를 확인해볼까요?

소스코드

소스코드를 보니 버튼을 눌러도 별 동작을 하지않는걸 확인했습니다.

그런데 가만히 보면 button의 value가 button인거 보이시나요?

문제에서 버튼으로 플래그를 출력하게 해달라고 했으니 value를 flag를 바꿔서

출력한다는 느낌을 받을 수 있었습니다 :D

value 수정

F12를 누른 후 value를 더블클릭하면 간단히 수정할 수 있습니다!

버튼 이름 변경

그럼 버튼 이름이 flag로 수정된 것을 확인할 수 있었고 누르면 다음과 같이 flag를 얻을 수 있었습니다 :D

Button 문제 flag

 

'CTF > HackCTF' 카테고리의 다른 글

Web - Read File  (0) 2020.01.21
Web - Guess me  (0) 2020.01.20
Web - 보물  (0) 2020.01.09
Web - Hidden  (0) 2020.01.09
Web - /  (0) 2020.01.09

Web - Hidden

HelloMG
|2020. 1. 9. 00:16

문제로 들어가 봅시다!

Hidden 문제

"5번 파일에 플래그가 있다악!!!!!!!!!!!!!" 이라는 말과 4개의 버튼이 존재합니다.

일단 버튼 하나를 눌러볼까요? :D

1번 버튼 클릭

Nop 이라는 메세지 박스가 출력이 되는 군요!

그런데 url에 보면 id라는 인자가 1로 넘어가는게 보이시나요? :D

버튼의 숫자가 각각 url의 id의 인자역할을 한다는 걸 알 수 있습니다.

그럼 5번 파일에 플래그가 존재한다고 하였으니 url에 id의 인자 값을 5로 넣고 접속하면 되겠죠? :D

 

Hidden 문제 flag

이렇게 간단하게 문제를 해결할 수 있었습니다!

'CTF > HackCTF' 카테고리의 다른 글

Web - Read File  (0) 2020.01.21
Web - Guess me  (0) 2020.01.20
Web - 보물  (0) 2020.01.09
Web - Button  (0) 2020.01.09
Web - /  (0) 2020.01.09

Web - /

HelloMG
|2020. 1. 9. 00:08

먼저 문제로 들어가봅시다!

/ 문제

들어가니까 "Hidden Flag" 라는 문자열과 로봇 그림이 나오네요 :D

먼저 문제 제목 "/"과 로봇 그림을 봤을 때 뭔가를 유추할 수 있을거예요!

 

그것은 바로 robots.txt 파일입니다.

robots.txt검색엔진 크롤러에서 사이트에 요청할 수 있거나

요청할 수 없는 페이지 또는 파일을 크롤러에 지시하는 파일입니다.

즉 쉽게 말해서, 검색엔진 크롤러가 파일 정보를 수집할 때 수집가능대상을 정의하는 것이죠.

 

그럼 이제 robots.txt 링크로 들어가게 flag가 있는 곳을 나타내고 있네요 :D

robots.txt
/ flag

'CTF > HackCTF' 카테고리의 다른 글

Web - Read File  (0) 2020.01.21
Web - Guess me  (0) 2020.01.20
Web - 보물  (0) 2020.01.09
Web - Button  (0) 2020.01.09
Web - Hidden  (0) 2020.01.09

FTZ - Level 6

HelloMG
|2019. 7. 16. 13:45

먼저 hint를 보도록 합시다 :D

그림 1     hint

"인포샵 bbs의 텔넷 접속 메뉴에서 많이 사용되던 해킹 방법이다."

 

먼저 실행을 시켜볼까요 ?

실행 파일 이름은 tn 입니다. ( password 파일은 제가 이미 풀어서 생긴 겁니다 : ㅇ )

그림 2     실행 파일

실행을 시켜보면 다음과 같이 나옵니다.

그림 3     실행 화면

접속하고 싶은 bbs를 선택하라고 하네요.

하이텔, 나우누리, 천리안 등이 있습니다! 그리고 텔넷 접속 서비스라고 명시가 되어 있네요!

그럼 하나씩 실행 시켜봅시다 :D

 

그림 4     하이텔 접속
그림 5     나우누리 접속
그림 6     천리안 접속

3개 서버 모두가 접속 거절이라고 뜨네요..

그럼 여기서 어떻게 접근을 해야 하는 것일까요 -_-..

 

이 문제 해결하기 위해서는 해커스쿨에서 제시하는 것과 같은 해킹 문제를 접할 때

실전 해킹이 아닌 가상 해킹 테스트라는 사실을 기억하고 있어야 합니다.

즉, 현실 세계에 있는 취약점과 공격 방법을 설명하기 위해 현실과 동일한 환경을 구성해서 제공하기에는 무리가 있죠!

그러므로 소개하고 싶은 취약점의 핵심에 해당하는 부분만을 구현한 환경을 제공하게 됩니다 :D

 

그러므로 BBS는 가짜 모듈에 해당한다고 할 수가 있고 이 메뉴를 우회할 수 있는 무언가가 있다는 의미가 됩니다.

그래서 저는 우회할 수 있는 지점을 찾는 과정에서 초기 메뉴에서 시스템에 인터럽트를 시켰는데

password 파일이 생성 되었습니다 :D

 

여기서 중요한 사실은 시스템 인터럽트입니다!

시스템 인터럽트란 프로세스간에 주고받는 신호로서 시스템 개발에서는 중요한 요소입니다!

그러므로 중요한 기능을 잘못 이용하면 치명적인 문제를 야기할 수가 있죠 : (

 

시스템 인터럽트에 대해 공부해보는것도 좋을 것 같네요 :D

그럼 다음 문제에서 만나요!! : )

 

 

 

[출처] : 문제풀이로 배우는 시스템 해킹 테크닉

'CTF > FTZ' 카테고리의 다른 글

FTZ - Level 5  (0) 2019.07.14
FTZ - Level 4  (0) 2019.07.13
FTZ - Level 3  (0) 2019.07.12
FTZ - Level 2  (0) 2019.07.11
FTZ - Level 1  (0) 2019.07.11

FTZ - Level 5

HelloMG
|2019. 7. 14. 19:12

먼저 hint를 살펴 보도록 합시다!

 

그림 1     hint

"/usr/bin/level5 프로그램은 /tmp 디렉토리에 level5.tmp라는 이름의 임시파일을 생성한다."

임시파일을 생성한다는 문구에서 레이스 컨디션을 이용하여 권한을 얻어야 된다는 것을 알 수 있습니다 :D

그럼 레이스 컨디션에 대해 알아 보도록 합시다!

 

레이션 컨디션을 한글 그대로 해석하면 경쟁 상태라는 의미입니다.

이 의미는 다수의 프로세스가 서로 동일한 자원을 할당 받기 위해 경쟁하는 상태를 의미합니다.

그럼 레이스 컨디션 취약점이 존재하기 위한 최소 조건은 다음과 같습니다 :D


"다른 계정의 권한에 접근해야 하므로 SetUID가 걸려 있어야 한다."

"일시 파일을 생성해야 한다."

"공격자가 임시로 생성되는 파일명을 정확하게 알아야 한다."


이제 밑의 순서도를 보면서 레이스 컨디션을 알아보도록 합시다 :)

그림 2     레이스컨디션 흐름도 예제

1. 파일을 생성

2. 파일 생성에 성공하면 생성된 파일에 내용 쓰기

3. 쓴 내용을 읽어들여 처리/사용

4. 파일 삭제

 

이 동작 중에서 2번과 4번 사이에 취약점이 존재하게 됩니다!

즉, 실행 흐름에서 2번과 4번 사이에 공격할 수 있는 틈이 있긴 하지만 너무 짧은 시간 간격이라서

결국 공격용 프로그램을 작성해야 합니다.

 

그럼 조금더 자세히 알아보도록 합시다!

그림 3     레이션컨디션 공격 타이밍

그림 2번에서 공격 프로세스의 처리 과정을 새롭게 추가한 그림입니다.

취약한 프로세스가 파일을 생성하기 전에 공격하는 프로세스에서 먼저 파일을 생성하고

취약한 프로세스에서 생성할 파일명으로 링크를 만들어 두면 취약한 프로세스는 공격 프로세스가 만든 링크에

내용을 쓰게 되고 링크를 삭제하게 됩니다!

 

이번 문제에는 다음과 같이 파일 이름을 사용 하겠습니다 :D

파일 생성 : /tmp/6pass.txt (password를 위한 임의의 파일)

링크 생성 : /tmp/level5.tmp (임시 파일)

 

공격 흐름


  1. 공격 프로세스에서 /tmp/6pass.txt 파일을 만든다.
  2. 공격 프로세스에서 /tmp/6pass.txt 파일을 원본으로 하는 /tmp/level5.tmp 링크 파일을 만든다(/tmp/level5.tmp 링크가 취약한 프로세스가 생성하고 삭제하는 파일의 이름이다).
  3. 레이스 컨디션 취약점이 있는 프로세스를 시작한다.
  4. 취약한 프로세스가 /tmp/level5.tmp 파일을 생성하려고 하지만 공격 프로세스가 만들어 둔 링크인 /tmp/level5.tmp 파이이 이미 있으므로 추가로 파일을 만들지 않는다.
  5. 취약한 프로세스가 /tmp/level5.tmp 링크에 내용을 쓴다(/tmp/level5.tmp 링크에 내용을 쓰면 원본인 /tmp/6pass.txt 파일에 내용이 쓰여진다).
  6. 취약한 프로세스가 쓴 내용을 사용한 뒤 /tmp/level5.tmp 파일을 삭제하고 종료한다(결국 내용이 쓰여진 /tmp/6pass.txt 파일이 남아 있으므로 쓴 내용을 볼 수 있다).

그럼 이제 문제를 풀어봅시다 :D

먼저 문제의 파일을 찾아봅시다.

그림 4     level5 파일

그리고 실행을 시켜봅시다!

그림 5     파일 실행

파일을 실행 시켰는데 아무런 변화가 없음을 알 수 있습니다.

 

이번 문제를 간단한 코드를 작성해서 공격하여 풀어보도록 합시다!

먼저 백그라운드로 프로세스를 10번에 걸쳐 반복 실행하는 코드를 작성을 합니다.

그림 6     run.c

그리고 실행하여 봅시다 :D

그림 7     컴파일 후 실행

실행을 하여보면 프로그램이 끝나는데 1초도 안걸리는기 때문에

공격 프로세스와 취약한 프로세스를 동시에 실행하는 부분도 프로그램으로 구현할 필요가 있습니다!

 

그럼 코딩을 진행해 봅시다!

그림 8     exp.c

그리고 실행을 시켜 봅시다.

그림 9     exp 실행

심볼릭 링크가 걸린 파일이 생성이 되고 6pass.txt을 가리키는 것을 볼 수 있네요 :D

그럼 문제 파일을 백그라운드로 실행시키고

exp파일을 실행 시켜볼까요 !

그림 10     next password

next password가 출력되면서 level6번 문제의 password를 알게 되었습니다 :D

 

사실상 더 쉽게 푸는 방법으로는 

/tmp/level5.tmp 파일을 만들고 다른 공파일에 링크를 걸어두면 바로 풀리는 문제입니다!

 

조금 더 나아가서 완전 자동화된 방법으로 푸는 걸 알아보도록 해봅시다!

다음과 같이 sh을 이용해서 푸는 방법이 있습니다 :D

그림 11     expBash.sh

정말 쉽게 나오죠 ㅎㅎㅎ!

 

이번엔 코딩을 해서 완전 자동화 방법으로 풀어 봅시다 : )

그림 12     exp_level5.c

이후 컴파일을 하여 실행시켜 주어야 하는데

 주의 해야할 점은 pthread가 사용 되었기 때문에

컴파일시 -pthread 옵션을 주고 컴파일 하셔야 합니다!

그림 13     exp_level5 실행
그림 14     6pass.txt 

 

6번 문제를 풀면서 레이스 컨디션 공격에 대해 알아보았습니다 :D

레이스 컨디션 공격을 하기 위해서는 반드시 맨위에서 제시한 최소한의 조건을 맞춰 주어야 한다는거 잊지 마세요 : )

 

그럼 이만 다음 문제에서 뵙도록 하겠습니다!

'CTF > FTZ' 카테고리의 다른 글

FTZ - Level 6  (0) 2019.07.16
FTZ - Level 4  (0) 2019.07.13
FTZ - Level 3  (0) 2019.07.12
FTZ - Level 2  (0) 2019.07.11
FTZ - Level 1  (0) 2019.07.11