반응형

CTF 604

[angstromCTF] Reasonably Strong Algorithm - 암호학 / RSA

암호학 문제이다. 문제 이름이 Reasonably Strong Algorithm 인데 맨 앞글자만 따면 R S A 가 된다. RSA는 지금까지도 아주 많이 사용하는 공개키 알고리즘의 이름이다. 개발자인 Rivest, Shamir, Adleman 세명의 이름 앞글자를 따서 RSA 라고 이름을 붙인 알고리즘이다. RSA는 엄청나게 큰 숫자일수록 소인수분해가 어렵다는것에 착안해서 설계된 알고리즘이다. RSA의 원리는 아래와 같다. 1. 두 소수 p, q를 준비한다. 2. p-1, q-1과 각각 서로소(1외에는 공약수가 없는 수)인 정수 e를 준비한다. 3. ed를 (p-1)(q-1)으로 나눈 나머지가 1의 되도록 하는 d를 구한다.(d는 개인키로 공개하지 않는다) 4. n=pq를 계산한 후 n과 e를 공개한다..

CTF/암호학 2022.03.17

[Root Me] Javascript - Native code - 웹해킹 / 자바스크립트

Javascript - Native code 문제 15점짜리 문제이다. 문제 이름이 조금 바꼈는데 사실상 Obfuscation3 라고 봐도 무방할것 같다. 비슷한 유형의 난독화 문제이다. 문제페이지에 접속하면 또 이렇게 비밀번호를 요구한다. 역시나 f12를 눌러서 개발자도구로 웹 소스를 확인해본다. 확인해봤더니 중간에 태그 사이에 알수 없는 외계어들이 써있는걸 볼 수 있다. 그래도 Obfuscation 1, 2 문제는 사람이 읽을 수 있는 글자였는데... 적어도 알파벳이었는데 이 문제는 알파벳도 아닌 이상한 기호들로 도배되어있다. 이런 괴상하게 난독화된 코드가 있을때 아주 쉽게 풀 수 있는 방법이 있다. 개발자 도구를 보면 '콘솔'이라는 탭이 있다. 여기서 테스트용으로 javascript 코드를 실행시켜..

워게임/Root Me 2022.03.16

[angstromCTF] Taking Off - 리버싱 / IDA

Taking Off 세번째 리버싱 문제이다. 이 문제부터는 조금씩 머리를 써야한다. 물론 그렇게 어렵진 않다. taking_off 라는 바이너리 파일이 하나 주어진다. 역시나 확장자는 없고 elf 라는 파일형태로 리눅스에서 실행가능한 프로그램이다. (리눅스에서 쓰는 exe파일 같은거라 생각하면된다.) 리눅스에서 해당 바이너리 파일을 실행해보면 맨 마지막 줄에 Make sure you have the correct amount of command line arguments 라고하면서 argument 의 갯수를 맞춰보라고 한다. 지난번 revving_up 문제에서는 argument가 "banana" 하나였다. (참고 : https://hackingstudypad.tistory.com/33 ) 이번문제에서는 ..

CTF/리버싱 2022.03.15

[angstromCTF] Revving Up - 리버싱 / argument

아주아주 쉬운 리버싱 문제 사실 리버싱 문제인지도 잘 모를만큼 쉽다.. 352명이나 푼 걸보면 얼마나 쉬운 문제인지 감이 올것이다. 문제 설명을 보면 clam이라는 사람이 사이버보안학교에서 첫번째 리버싱 강의에서 만든 프로그램이라고 한다. 이 프로그램에서 플래그를 얻어내면 되는 문제이다. 문제파일이 하나 주어진다. revving_up 이라는 파일인데 확장자는 따로 보이지 않는다. 대부분 해킹대회에서 주어지는 이런 바이너리파일의 경우 리눅스 환경에서 실행할 수 있는 것이다. 리눅스 쉘에서 프로그램이 있는 경로로 이동한 뒤, ./revving_up 이라고 치면 프로그램이 실행된다. 실행시키면 문구가 몇가지 나오는데 Cougratulations on running the binary! Now there are..

CTF/리버싱 2022.03.14

[angstromCTF] Windows of Opportunity - 리버싱 / IDA

Windows of Opportunity 문제 이 대회에서 나온 첫번째 리버싱 문제이다. 리버싱이란 reverse engineering 의 약자로 역공학 이라는 뜻이다. 모든 프로그램은 개발자가 소스코드를 짜고, 그것을 컴파일해서 완성을하게 되는데 리버싱의 경우 완성된 프로그램의 동작을 분석하여 소스코드가 '어떻게 구성되었을것이다' 라는것을 추측하는 작업을 말한다. 문제설명을 보면 무슨 superior operating system 으로 만들어진 프로그램을 분석하라고 한다. 그게 바로 이 프로그램이다. 윈도우에서 돌아가는 exe 파일이다. 실행을 시켜보면 cmd 창이 하나 뜨면서 이 프로그램에서 플래그를 얻을 수 있냐? 라고 물어본다. 보통 이런 리버싱 문제들을 디스어셈블러를 이용해서 열어보면서 시작한다..

CTF/리버싱 2022.03.13

[Root Me] Javascript - Obfuscation 2 - 웹해킹 / 자바스크립트

두번째 Obfuscation 문제 Obfuscation이란 난독화를 의미한다. 보통 공격자가 악성코드의 분석을 방해하기 위해 사용하거나 개발자가 코드의 동작을 숨기기 위해 사용한다. 이전문제처럼 비밀번호를 알아내면 된다. 가장먼저 f12를 눌러서 개발자도구를 이용해 웹 소스를 확인해본다. pass 라는 변수에 무언가를 unescape한 값을 넣고있다. escape 함수는 인코딩, unescape 함수는 디코딩을 시켜주는 함수이다. 자세히보면 unescape가 두번 들어가 있다. 따라서 두번 디코딩을 해주면 된다. 구글에 url 디코딩 이라고 검색하면 온라인으로 디코딩 할 수 있는 사이트들이 많이 나온다. 아무곳이나 들어가서 두번 디코딩을 해준다. 첫번째 디코딩을 하면 쪼금 알아 볼 수 있는 것들이 생긴다..

워게임/Root Me 2022.03.13

[angstromCTF] Secret Agents - 웹해킹 / SQL Injection

이 문제부터 조금씩 어려워지기 시작했다. Secret Agents 라는 웹 해킹 문제이다. 문제설명을 읽어보면 secret agent portal 에 접속할수 있냐고 물어본다. 그리고 유출된 웹 페이지의 소스코드가 힌트로 제공이 된다. 문제페이지에 접속해보면 Welcome to the Super Secret Agents official site ! 라는 환영문구가 보인다. 비밀요원들만 접속할 수 있는 숨겨진 웹사이트 인가 보다. 아래쪽에 Here's the secret : actual secret agents have their OWN BROWSERS!! 라고 적혀있다. 비밀요원들은 특별한 브라우저를 이용해서 해당 페이지에 접근한다고 한다. 브라우저란 우리가 사용하는 크롬, 인터넷 익스플로러, 파이어폭스..

CTF/웹해킹 2022.03.12

[angstromCTF] The Magic Word - 웹해킹 / 자바스크립트

212팀이 푼 쉬운 웹 해킹 문제 magic word 를 이용해서 정답을 획득하라고 한다. 문제페이지에 들어가면 아무것도 없는 흰 바탕 한 가운데에 give flag 라는 글자만 덩그러니 있다. 위 사진은 그림파일을 보여주는게 아니라 웹 페이지를 캡쳐한 것이다. 웹 해킹 문제를 풀때는 가장 먼저 f12를 눌러서 개발자 도구를 보는게 좋다. 웹 소스를 천천히 보다보면 흥미로운 javascript 코드가 보인다. give flag 라는 글자를 보여주는 부분의 id가 magic 인가 보다. document.getElementById 를 이용해서 해당 부분의 텍스트를 가져와 msg 변수에 담고, magic.innerText 가 "please give flag" 인지 물어본다. 만약 맞다면, /flag?msg= ..

CTF/웹해킹 2022.03.11

[Root Me] Javascript - Obfuscation 1 - 웹해킹 / 자바스크립트

10점짜리 Javascript - Obfuscation 1 문제 Obfuscation 은 혼미, 난처함 등의 의미를 가지는 영단어인데, 정보보안에서는 주로 코드 난독화를 의미한다. 보통 공격자들이 악성코드의 동작을 숨기거나, 보안장비를 우회할때 쓰기도 하고, 개발자들도 공격자들에게 코드가 노출되는것을 방지하기 위해서 사용하는 방법이다. 문제페이지에 접속하면 알림창이 뜨면서 비밀번호를 입력하라고 한다. 마치 이전에 풀어봤던 Javascript - source 문제와 유사하다. f12를 눌러서 개발자도구를 통해 해당 페이지의 웹 소스를 살펴보면 pass = 으로 pass라는 변수를 선언하고 그 안에는 알수없는 이상한 값들이 들어가 있는것을 볼 수 있다. 이것처럼 %숫자 로 이루어진 문자열들은 url 인코딩이..

워게임/Root Me 2022.03.10

[angstromCTF] clam clam clam - MISC / 리눅스

clam clam clam MISC 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 해킹이라고 보긴 좀 뭐하고 해킹할때 쓰일수도 있는 잡다한 기술을 쓸수있는지 물어보는 문제이다. 문제 설명 중간에 보면 nc misc.2020.chall.actf.co 20204 라고 적혀있는데 nc는 netcat 의 약자로 tcp 또는 udp를 이용해서 네트워크 연결을 하기 위한 유틸리티 이다. 이런식으로 netcat을 쓰면된다. nc 이경우에는 호스트가 misc.2020.chall.actf.co 이고 포트번호는 20204인것이다. 이렇게 입력하면 문제 서버로 접속이 된다. 문제 접속이 성공하면 clam calm malc malc 이런식으로 똑같은 말만 계속 반복한다. 캡쳐한..

CTF/MISC 2022.03.10
반응형