MIC Check 1pt ( pwnable ) 아마도 문제 제목을 저렇게 낸 이유는 공연 전 마이크 테스트를 하는 것처럼 쉬운 것을 하나 풀면서 몸이라도 푸라고 저렇게 정한 게 아닐까 배점은 1 점짜리, pwnable.kr 의 cmd 와 비슷한 문제. - 2 -

Similar documents
커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

PowerPoint Template

0.筌≪럩??袁ⓓ?紐껋젾 筌

정도전 출생의 진실과 허구.hwp

152*220

화판_미용성형시술 정보집.0305

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

게시판 스팸 실시간 차단 시스템

연구노트



자식농사웹완

chungo_story_2013.pdf

*중1부

2

Çѱ¹ÀÇ ¼º°øº¥Ã³µµÅ¥

...._


전반부-pdf

표1.4출력

003-p.ps

<4D F736F F F696E74202D20312E20B0E6C1A6C0FCB8C15F3136B3E2C7CFB9DDB1E25F325FC6ED28C0BA292E >

_

12월월간보고서내지편집3

중앙도서관소식지겨울내지33

에너지포커스 2007년 가을호


01_당선자공약_서울

인권문예대회_작품집4-2




목차

A°ø¸ðÀü ³»Áö1-¼öÁ¤

±¹³»°æÁ¦ º¹»ç1

¿¡³ÊÁö ÀÚ¿ø-Âü°í ³»Áö.PDF

전반부-pdf

뉴스레터6호

Microsoft PowerPoint 하반기 크레딧 전망_V3.pptx

50차 본문 최종

양성내지b72뼈訪?303逞

³»Áöc03âš

fsb9¿ù³»ÁöÃÖÁ¾Ãâ

¾ç¼º-¾÷¹«Æí¶÷-³»¿ëÃà¼Ò4

전도대회자료집


< DBAB4B9ABC3BB5FBAB9B9ABB0FCB8AEB8C5B4BABEF32D33B1C72E706466>

표1~4

<3344C7C1B8B0C6C320BFE4BEE02D E706466>

µ¶ÀÏÅëÀÏÁý1~2Æíq36£02Ð


第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

2013 <D55C><ACBD><C5F0><BC31><C11C>(<CD5C><C885>).pdf

¼Òâ¹Ý¹®Áý¿ø°í.hwp

SBR-100S User Manual

(주)나우프로필의 이동형 대표 개편의 방향이 시민참여를 많이 하는 방향이라, 홈페이지 시안 이 매우 간편해져서 소통이 쉬워질 것 같다. 다만 웹보다 모바일 이용자가 지속적으로 급증하는 추세이므로 이에 적합한 구조가 되도록 보장해야 한다. 소셜미디어전략연구소 배운철 대표

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft Word - Blind Sql Injection.doc

Adobe Flash 취약점 분석 (CVE )

Microsoft Word - SKINFOSEC-CHR-026- Mass SQL Injection 탐지 우회분석 보고서.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Python으로 쿠키런 운영하기_ver최종.key

Observational Determinism for Concurrent Program Security

hwp

SKINFOSEC-CHR-028-ASP Mssql Cookie Sql Injection Tool 분석 보고서.doc

InsertColumnNonNullableError(#colName) 에해당하는메시지출력 존재하지않는컬럼에값을삽입하려고할경우, InsertColumnExistenceError(#colName) 에해당하는메시지출력 실행결과가 primary key 제약에위배된다면, Ins

Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

DBMS & SQL Server Installation Database Laboratory

문서 템플릿

Secure Programming Lecture1 : Introduction

ActFax 4.31 Local Privilege Escalation Exploit

Microsoft PowerPoint - 10Àå.ppt

º´¹«Ã»Ã¥-»ç³ªÀÌ·Î

³»Áö¼öÁ¤

Research & Technique Apache Tomcat RCE 취약점 (CVE ) 취약점개요 지난 4월 15일전세계적으로가장많이사용되는웹애플리케이션서버인 Apache Tomcat에서 RCE 취약점이공개되었다. CVE 취약점은 W

USER GUIDE

WEB Hacking 한국디지털미디어고등학교, T eampur e, JT JSOFT 장태 진

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

제목 레이아웃

강의 개요

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여

문서의 제목 나눔고딕B, 54pt

XSS Attack - Real-World XSS Attacks, Chaining XSS and Other Attacks, Payloads for XSS Attacks

The Basic Of Blind SQL Injection Sur3x5F - PRIDE NateOn : PRIDE in Sur3x5F All rights are reserved

ITFGc03ÖÁ¾š

04 Çмú_±â¼ú±â»ç

Tablespace On-Offline 테이블스페이스 온라인/오프라인

Oracle hacking 작성자 : 임동현 작성일 2008 년 10 월 11 일 ~ 2008 년 10 월 19 일 신규작성 작성내용

The Pocket Guide to TCP/IP Sockets: C Version

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

본문1

제 1 절 복습 \usepackage{ g r a p h i c x }... \ i n c l u d e g r a p h i c s [ width =0.9\ textwidth ] { b e a r. j p g } (a) includegraphics 사용의일반적인유형


** 5 개이발생한주요소프트웨어별취약점세 EDB 번호취약점종류공격난이도공격위험도취약점이름소프트웨어이름

Microsoft 을 열면 깔끔한 사용자 중심의 메뉴 및 레이아웃이 제일 먼저 눈에 띕니다. 또한 은 스마트폰, 테블릿 및 클라우드는 물론 가 설치되어 있지 않은 PC 에서도 사용할 수 있습니다. 따라서 장소와 디바이스에 관계 없이 언제, 어디서나 문서를 확인하고 편집

Secure Programming Lecture1 : Introduction

요약 1

<34BFF9C8A320B4DCB8E9B0EDC7D8BBF32E706466>

Transcription:

Codegate 2016 Junior Prequal Write-up 5kyc1ad(전상현) - 1 -

MIC Check 1pt ( pwnable ) 아마도 문제 제목을 저렇게 낸 이유는 공연 전 마이크 테스트를 하는 것처럼 쉬운 것을 하나 풀면서 몸이라도 푸라고 저렇게 정한 게 아닐까 배점은 1 점짜리, pwnable.kr 의 cmd 와 비슷한 문제. - 2 -

입력값을 특정 값과 비교하여 필터링하고 나서 통과하면 특정 문자열에 sprintf 로 붙여넣고, 이를 system 함수로 실행시켜주는 프로그램이다. 여기서 백쿼터(`)가 필터링되지 않았으므로 삽입하는 것으로 쉘 명령을 실행하여 결과를 /bin/ls 에 삽입하는게 가능하고, 여기서 \x20 은 필터링되었지만 \t 는 필터링되지 않았으므로 인자를 넣는 것도 가능하다. fgets 로 최대 10 글자만큼 받아오도록 설정되어있어 mic.flag.txt 라는 파일명을 다 칠수 없었으므로 와일드문자로 대체하였다. - 3 -

`cat\t*`를 입력했고, flag 를 읽어 내부 내용을 그대로 /bin/ls 의 인자로 넣게 되면서 나타나는 오류 메시지를 통해 flag 의 내용을 알아낼 수 있었다. flag : let the hacking begins - 4 -

JS_is_not_a_Jail 100pt ( misc ) JS 라고 하길래 Javascript 와 관련된 문제인 줄 알고 한번 접속해보고 헤메다가 한참 뒤에 풀었다. 문제의 주소에 접속하면 뭔가 대화형 쉘같은걸 하나 주는데, 여기에 명령을 몇번 치다 보면 파이썬 쉘과 매우 유사하다는 것을 알 수 있다. python 내장 라이브러리중 하나인 os 를 쳐보니 내부에서 사용 가능한 함수들이 나열되고, 이를 이용해 shell 에 명령을 전달하는 system 함수를 쓸 수 있었다. - 5 -

(이 이후부터는 서버에 접속이 되지 않아 이미지 없이 계속하겠습니다) 그리고 os.chdir 이라는 함수를 이용해서 현재 directory 를 변경할 수 있으며, /home/codegate 디렉토리로 이동하고 os.system( ls ) 함수로 내용을 확인해 보면 js 파일과 py 파일이 하나 존재한다. 그런데 어찌된 일인지 system 함수의 인자로 공백이나 \t 이 넘어가지 않아 인자를 넣을 수가 없었는데, 다른 함수가 없나 여러 번 게싱하는 도중 read 라는 함수가 존재하는것을 확인했고, 이 함수는 파일 이름을 문자열로 넘겨주면 해당 파일을 읽어서 보여주는 것을 알 수 있었다. 따라서 chdir 로 /home/codegate 로 이동한 다음 js 파일을 읽으면 아래쪽에 flag 변수에 씌여있는 값을 읽을 수 있다. flag : easy xd, get a more hardest challenge! - 6 -

Crypt1nth3sh3ll 333pt ( reversing ) 워낙 리버싱을 힘들어하고 배점도 높아서 손 댈 엄두가 안 났었던 문제. 결국 풀 문제가 안보이는데 많이 풀었길래 잡고 허무하게 풀었다. 두 가지 파일을 주는데, 둘 다 DLL 파일이 없다면서 제대로 실행되지 않아 직접 다운받아 넣어줘야 했다. AppJailLauncher 파일을 실행시켜 도움말을 확인해 보니 포트를 열어서 그곳으로 접속시 특정 프로그램을 실행하도록 하는 모양인데, 그 파일이 아마 ProcHollow1 인 모양이었다. 그런데 도저히 ProcHollow1 파일을 분석해도 답이 나오질 않아서 엄청 고민하던 중, bintext 라는 프로그램을 이용하여 프로그램 내부에서 사람이 읽을 수 있는 문자열들을 골라서 긁어 오자, 맨 위가 아니고 중간정도쯤에 DOS Stub 이 한번 더 나오는 것을 볼 수 있었다. - 7 -

해당 부분은 HxD 로 검색해서 찾아보니, 바이너리가 하나 더 들어있는 것을 볼 수 있었다. 이를 전부 긁어와서 실행해 보니 똑같은 파일처럼 보였지만 전에는 안보이던 decrypted 라는 문자열이 ollydbg 의 string 검색에 걸린 것을 볼 수 있었다. 이 부분으로 들어가서 주변 코드를 좀 살펴봤는데, - 8 -

그 윗부분을 확인해 보니 뭔가 특정 문자열을 [EBP-10C] 부분부터 복사하기 시작했는데, 이 부분에 BP 를 걸고 해당 주소를 확인해 보면 키 값을 찾을 수 있다. flag : ARIA_IS_GOOOD!~! - 9 -

Blog 98pt ( web ) 대회가 끝나고 나니 문제 서버가 닫힌건지 접속이 되지 않아서 그냥 풀이와 페이로드만 쓰겠다. 일단 접속하면 말 그대로 블로그와 같은 페이지가 나타나는데, 게시판 같은 곳을 살펴보면 글을 고유한 번호에 의해 관리하는 것을 알 수 있다. 이는 id 라는 변수로 read.php 의 인자로써 GET 방식으로 전달된다. 그리고 여기에서 SQL Injection 취약점이 발생하는데, 그냥은 DB 의 값을 빼낼 수 없으므로 Blind SQL Injection 을 이용해야 했으며 테이블이나 컬럼에 대한 정보가 전혀 나오지 않았기 때문에 information_schema 를 이용했다. 이를 이용해 Table 과 Column 정보를 모두 빼오고, 결과적으로 얻게 된 blog 라는 테이블명과 contents 라는 컬럼명을 이용해 다시 한번 Blind SQL Injection 을 수행하여 웹에서는 접근이 금지된 id=0 의 게시글을 가져올 수 있었다. 파이썬을 이용하여 코드를 작성하였으며, Table 이나 Column 명을 알아내는 것은 SELECT 문의 인자만 contents 에서 table_name 과 column_name 으로 바꾸고 information_schema 에서 가져오도록 하면 되므로 contents 를 빼오는 소스만 쓰겠다. 소스코드는 아래와 같다. - 10 -

flag : Im_Feeling_Lucky - 11 -

222 128 pt ( web ) 이것도 마찬가지로 Blind SQL Injection 문제였다. 이름, 이메일, 메시지를 입력해서 contact_me.php 에 POST 의 인자로 보내는 부분에서 SQL Injection 취약점이 발생하며, 웹서버의 Response 값을 확인하는 것으로 에러가 발생하는지 여부를 알 수 있다. 마찬가지로 Blind SQL Injection 소스를 작성하려고 했으나 왠지 %23 으로 주석이 들어가지 않아서 직접 짜지 않고 이미 만들어진 툴을 사용하기로 했다. 선택한 툴은 유명한 sqlmap 이었고, 처음으로 써보는 터라 사용법을 익히는데 조금 애먹었다. 정상적인 POST 요청을 하나 통째로 잡아서 저장하고, - 12 -

이것과 공격할 인자를 옵션으로 담아 sqlmap 을 돌려서 키를 따내는 데에 성공했다. flag : 0h_y0u_kn0w_h0w_t0_sqli - 13 -

=============================================== 코드게이트라는 대회&컨퍼런스가 있다는 것은 고등학교 1 학년 때에 처음으로 알았고, IT, 보안 공부를 막 시작했음에도 불구하고 국제 보안 컨퍼런스인 코드게이트 주니어에, 아무것도 못 알아들을 것이면서도 당당하게 갔다 왔었다. 당연하게도 거의 모든 내용을 알아듣지 못했고 이런 곳도 있구나, 대단하다 하고 감탄만 하고 돌아왔다. 이후, 여러 워게임을 풀고 대회에도 참가하고, 입상도 해 보면서 이 대회에도 나가서 입상해보고 싶다고 생각했다. 작년 코드게이트 주니어에도 참가했었는데, 작년에는 겨우 1 년 공부하고 실력이 너무나 부족하여 한 문제밖에 풀지 못했고, 결국 51 위로 본선에 진출하지 못하고 끝났다. 그리고 다음 년도에는 꼭 본선에 참가할 수 있도록, 열심히 공부하기로 결심했다. 그리고 이제 고등학교 3 학년이 되었고, 주니어에 참가할 수 있는 마지막 기회인 만큼 꼭 본선에 나가고 싶다고 생각하고 있는 힘을 다해 대회에 매진했다. 결과적으로 17 위라는 등수로 대회를 마무리했고, 드디어 그렇게 가고 싶었던 본선에 진출할 기회를 얻게 되었다. 이번 코드게이트 본선은 학교 중간고사와 딱 겹치는 날에 시행된다. 아마도 이 대회에 참가하면 고등학교 3 학년의 중간고사를 버리고 가야 하겠지만, 이를 포기하고라도 본선은 꼭 참여하고 싶으므로 중간고사를 포기하고 대회에 참가하게 될 것 같다. 풀 수 있었는데도 못 푼 문제들은 너무 아쉬웠고, 이후 가상머신에 직접 구현하여 다시 한 번 공격해 보면서 문제를 분석해보도록 하겠다. - 14 -