반응형

해킹대회 617

[Root Me] CSRF - 0 protection - 웹해킹 / 크로스사이트요청위조

35점짜리 CSRF 문제이다. 0 protection 이라고 써있는걸 보니 아무런 방어장치가 없는 형태의 문제인듯 하다. CSRF는 XSS와 비슷하다. (XSS 문제 : https://hackingstudypad.tistory.com/48) XSS는 Cross Site Script 의 약자고, CSRF는 Cross Site Request Forgery의 약자이다. XSS가 웹페이지에 악성 스크립트를 삽입하여 동작시키는 취약점이라고 하면, CSRF는 조금 더 심화해서 스크립트나 태그를 이용해 사용자가 하지 않은 행동을 마치 사용자가 한것처럼 만들어버리는 것이다.(ex 비밀번호 변경) 문제페이지에 들어가면 로그인창이 나온다. Register 버튼을 눌러서 먼저 회원가입을 해준다. ID는 hello, 비밀번호..

워게임/Root Me 2022.03.25

[RiftCTF] Stegano 0x0001 - 포렌식 / 스테가노그래피 / HxD

아주 쉬운 스테가노그래피 문제이다. 너무 쉬워서 사실 스테가노그래피인지도 잘 모르겠다. chall1.jpeg 라는 이미지파일 하나가 주어진다. 참고로 해당 파일은 열어보면 이런 사진이 나온다. 어떤 캐릭터인지는 잘 모르겠다. 문제 제목이 스테가노그래피이고 배점도 굉장히 낮기 때문에 아주 쉽게 접근해야한다. 괜히 어렵게 접근했다가 미궁으로 빠져버릴수도 있다. 스테가노그래피는 데이터를 은폐하는 기술을 말한다. 저런 사진파일이나 음악파일 등에 비밀데이터를 숨겨서 전송하는데 사용한다. 당연한 이야기지만 저 사진에도 비밀데이터(플래그)가 숨어있다. https://mh-nexus.de/en/hxd/ HxD - Freeware Hex Editor and Disk Editor | mh-nexus HxD - Freewa..

CTF/포렌식 2022.03.24

[Root Me] XSS - Stored 1 - 웹해킹 / 크로스사이트스크립트

XSS - Stored 1 문제 드디어 웹 취약점을 이용한 문제가 처음으로 나왔다. administrator의 session cookie를 훔치라고 한다. XSS 는 Cross Site Script 의 약자로 웹서버에 관리자가 아닌 사람이 악성 스크립트를 삽입할 수 있는 취약점이다. 보통 공격자들은 자신의 서버를 하나 열어놓은 뒤에, XSS 취약점을 이용하여 타겟 웹 서버에 악성 스크립트를 삽입한 뒤, 사용자들의 인증정보(쿠키값, 세션값 등)를 탈취하는데 이용한다. 문제페이지에 접속하면 이렇게 간단한 게시판이 나오게 된다. TEST / hello world 라고 한번 입력해봤다. 입력한 내용이 잘 저장되는것을 확인할 수 있다. 웹페이지는 HTML 로 구성되어 있다. HTML의 특징은 각각의 구성요소를 를..

워게임/Root Me 2022.03.23

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