반응형

사이버 424

[angstromCTF] Inputter - 리버싱 / argument

리버싱 문제인 Inputter 이 문제 역시 대회가 끝나고 풀어서 캡쳐를 제대로 못했다ㅜ 이전에 풀이했던 Revving Up, Taking Off 문제와 동일한 유형(조금 심화한)이다. Revving Up : https://hackingstudypad.tistory.com/33 Taking Off : https://hackingstudypad.tistory.com/34 이번 문제도 역시나 리눅스에서 실행가능한 바이너리 파일(inputter)가 주어진다. 이 문제는 앞의 문제와 다르게 소스코드도 같이 주어진다. main 함수를 살펴보면 안에 조건문(if) 세개가 있고, 조건문을 다 통과해야 마지막에 print_flag() 함수가 실행되어 플래그를 얻을 수 있다는걸 알 수 있다. 첫번째 조건문부터 살펴보자 ..

CTF/리버싱 2022.03.21

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

세번째 Obfuscation 문제이다. Obfuscation 이란 난독화를 의미한다. 공격자가 자신의 악성코드가 들키기 않기위해, 또는 개발자가 자신의 프로그램을 분석하는것을 방지하기위해 주로 사용되는 기법이다. Obfuscation 1번 문제 : https://hackingstudypad.tistory.com/26 Obfuscation 2번 문제 : https://hackingstudypad.tistory.com/30 세번째 Obfuscation 문제 역시 페이지에 접속하면 비밀번호를 요구한다. 역시나 f12를 눌러 개발자도구를 이용해 웹 소스를 확인해본다. 뭔가 복잡한 자바스크립트 코드가 작성되어 있다. 가장먼저 dechiffre 라는 함수가 선언되어있고, 아래쪽에서 함수를 호출하고 있는 모습이 보인..

워게임/Root Me 2022.03.20

[angstromCTF] No canary - 포너블 / 버퍼오버플로우

No canary 문제는 이번 대회에서 나온 가장 쉬운 포너블(pwnable) 문제였다. 대회가 끝나고 풀어서 문제 설명은 캡쳐를 못했다..ㅎ pwnable 이란 시스템 해킹 분야를 말한다. 어떤 프로그램의 취약점을 통해 운영체제의 권한까지 획득하는 그런 종류의 분야이다. 문제 이름이 No canary 인것도 포너블과 관계가 있다. 포너블에 자주 등장하는것이 '버퍼 오버플로우' 라고하는 취약점인데, 프로그램에서 사용자 입력값의 길이를 검증하지 않아서 발생하는 취약점이다. 버퍼 오버플로우를 설명할 때 가장 많이 쓰는 그림이다. 프로그램에서 사용자의 입력값을 받으면 buffer 라는 영역에 저장된다. 당연히 buffer 영역을 넘어가면 저장이 되지 않도록 입력값의 길이를 검증해야하는데, 버퍼오버플로우는 길이..

CTF/포너블 2022.03.19

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

15점짜리 Javascript - Webpack 문제 Validations 를 보면 문제 풀이 횟수가 1% 밖에 안된다고 나온다. 엄청 어려운 문제인줄 알고 긴장했는데, 어이없을정도로 쉬운 문제였다. 그냥 사람들이 많이 안풀어서 그런가보다.. 참고로 webpack 은 자바스크립트 모듈화 도구 이름이다. 웹 개발할때 사용하는 도구정도로 생각하면 된다. 문제 페이지에 들어가보면 아무런 기능도 없고, 버튼만 있는데 그냥 오리와 원앙의 차이에 대해서만 알려준다. 이럴때는 역시 또 f12를 눌러서 개발자도구를 확인해준다. 개발자 도구의 '소스' 탭을 보면 웹페이지 자체에는 특이한 내용이 없는걸 볼 수 있다. 메인 페이지에서 f12를 눌렀기 때문에 위에서 봤던 This is a normal duck! 같은 글자가 ..

워게임/Root Me 2022.03.18

[angstromCTF] Consolation - 웹해킹 / 자바스크립트

웹 해킹 문제이다. 보통 CTF 문제들은 제목이나 문제 설명 부분이 큰 힌트가 되는 경우가 많다. 이 문제같은경우 살짝 꼬아놨는데 문제 이름인 Consolation 은 '위로' 라는 뜻이다. 문제 설명도 보면 I've been feeling down lately.. Cheer me up! 이라면서 뭔가 위로를 바라는것 같다. 조금뒤에 보면 알겠지만 이 문제의 의도는 'Consol' ation 이다. 다시말해 '콘솔' 창을 활용해서 풀라는 것이다. Consolation 이라는 단어로 위장한것 뿐이다. '콘솔'창을 이용해서 문제를 푸는것은 Root Me 문제풀이에서 한번 다룬적이 있다. * 링크 : https://hackingstudypad.tistory.com/36 [Root Me] Javascript -..

CTF/웹해킹 2022.03.17

[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
반응형