제15회순천향대학교청소년정보보호페스티벌 (15th Youth Information Security Festival) 문제풀이보고서 한국디지털미디어고등학교 3 학년이름: 이태양 ( 뮤쀼)

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

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

2016 순천향대학교정보보호페스티벌 예선풀이 이름 : 이태양학교 : 한국디지털미디어고등학교아이디 : tylee0208 닉네임 : 5unKn0wn 자기점수 : 1300 등수 : 3

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint 웹 연동 기술.pptx


A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

2015 CodeGate 풀이보고서 김성우 1. systemshock strcat(cmd, argv[1]); 에서스택버퍼오버플로우가발생합니다

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

SBR-100S User Manual

Microsoft PowerPoint - chap06-1Array.ppt

PowerPoint Presentation

C 프로그래밊 개요

Microsoft PowerPoint - chap06-2pointer.ppt

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

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Adobe Flash 취약점 분석 (CVE )

PowerPoint Template

로거 자료실

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

Microsoft PowerPoint - chap10-함수의활용.pptx

금오공대 컴퓨터공학전공 강의자료

11장 포인터

Microsoft PowerPoint - additional01.ppt [호환 모드]

<B1E2BCFAB9AEBCAD5FB9DABAB4B1D45F F F64746F72732E687770>

Microsoft PowerPoint - chap01-C언어개요.pptx

OCW_C언어 기초

Microsoft PowerPoint - chap06-5 [호환 모드]

PowerPoint Presentation

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

버퍼오버플로우-왕기초편 3.c언어에서버퍼사용하기 버퍼는 임시기억공간 이라는포괄적인개념이기때문에여러곳에존재할수있습니다. 즉, CPU 에도버퍼가존재할수있으며, 하드디스크에도존재할수있고, CD- ROM 이나프린터에도존재할수있습니다. 그리고앞의예제에서보신바와같이일반프로그램에도

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

JUNIT 실습및발표

제1장 Unix란 무엇인가?

설계란 무엇인가?

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

Microsoft PowerPoint - ch07 - 포인터 pm0415

1. 배경 업무 내용이나 개인정보가 담긴 청구서 등을 메일로 전달 시 중요한 정보가 유출되는 경우가 발생하고 있으며, 이에 따른 메일 암호화 솔루션을 도입하고 있으나 기존 ActiveX를 기반으로 한 플러그인 방식은 여러 가지 제약으로 인해 사용성이 저하되고, 고객 대

Tcl의 문법

Cookie Spoofing.hwp

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

BMP 파일 처리

SIGIL 완벽입문

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

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

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

JVM 메모리구조

PowerPoint Template

C 프로그램의 기본

Microsoft PowerPoint - web-part03-ch20-XMLHttpRequest기본.pptx

API 매뉴얼

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft Word - poc_script1.doc

The Pocket Guide to TCP/IP Sockets: C Version

(Microsoft PowerPoint - \301\24613\260\255 - oFusion \276\300 \261\270\274\272)

POC "Power of Community" 이민우 (lwmr)

Visual Studio online Limited preview 간략하게살펴보기

산업입지내지6차

PowerPoint Template

설계란 무엇인가?

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

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

11장 포인터

PowerPoint 프레젠테이션

ISP and CodeVisionAVR C Compiler.hwp

adfasdfasfdasfasfadf

Computer Security Chapter 08. Format String 김동진 1 Secure Software Lab.

PowerPoint 프레젠테이션

Microsoft Word - PLC제어응용-2차시.doc

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

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

슬라이드 1

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

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

윤성우의 열혈 TCP/IP 소켓 프로그래밊

Secure Programming Lecture1 : Introduction

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

슬라이드 1

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

Chapter 1

대량문자API연동 (with directsend)



<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CC0E7B0EDB0FCB8AE5C53746F636B5F4D616E D656E74732E637070>

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Windows Server 2012

Visual Basic 반복문

Transcription:

제15회순천향대학교청소년정보보호페스티벌 (15th Youth Information Security Festival) 문제풀이보고서 한국디지털미디어고등학교 3 학년이름: 이태양 ( 뮤쀼)

[ WEB 50 ] 페이지를들어가서주석을보면페이지에 고써져있다. view-source GET인자를줬을때소스를보여준다 소스를보니까 $_COOKIE[ id ] 가 admin 이면플래그를주는데검사하기전에 $_COOKIE[ id ] 이 admin 이면 exit 한다. 근데그사이에있는 $_POST를 extract 하는거때문에검사하고나서 $_COOKIE[ id ] 를덮어 씌울수있으므로 POST 로 _COOKIE[id]=admin 넣어서보내주면플래그를준다. flag : YISF{B3ep-Be3p-8eep...Pu5hung...F14g} [ WEB 100 ] 처음에는 sqli인줄알고막쿼리넣으면서삽질하다가안돼서고민하다가영어페이지가왜 있지하구소스들을살펴봤다. (ko로리다이렉트안될라고 view-source: 해서소스코드로봄) 그렇게보면서어쩌다가영어사이트에서회색양말결제를해봤는데 400 원밖에안나갔다. 그러고한국사이트에서환불하는데 500원줘서 100원이득이생긴걸보고아이거다싶어서 파이썬으로스크립트짜서돌렸다. 처음에스크립트좀돌려서적당량돈을모으고 10000원짜리사고파니까 2000원씩모여서 그걸로슥슥돈모아서플래그샀다. 스크립트소스는 https://gist.github.com/5unkn0wn/a8d54f14e506b4ada5abcc69473ebeb1 여기있다. flag : YISF{y0u_c2n_f1nd_the_f1a9_just_do_it}

[ WEB 150 ] 일반유저로로그인해서 admin페이지보면리다이렉트가되는데맨윗줄에자바스크립트로 만리다이렉트시키는코드있고밑에어드민페이지코드는다있어서좀보다가 join 할때 히든파라미터를 admin으로조작하면 admin 계정으로조인된다는거를깨닫고조인을했다. 그러고여기저기 sqli해보다가안돼서다른문제풀다가커맨드인젝션힌트나와서커맨드 인젝션을했다. 처음에는인젝션이안됐는데중요한게파일을삭제할때 system( rm $filename ); 이런식으로구현이되어있어서그런지파일이름을 으로감싸 서 `sleep 5`.jpg 인가 ;sleep 5;.jpg 로해봤는데인젝션이성공했다. 다행히 stdout을삭제성공했다고 OK뜰때같이출력해줘서결과를바로바로볼수있어서 그나마편했다. 근데필터링이몇개걸려있어서조금까다로웠다. 특히 / 를필터링하는바람에디렉토리들 을탐색하기에좀불편했는데 ;ls../../; 가아니라 ;cd..;cd..;ls; 이렇게하면 / 없이디렉 토리들에뭐가있는지볼수있기때문에이렇게여기저기돌아다니면서플래그위치를찾았 다. 플래그경로는 /var/www/html/you_want/fla9/fla9981 이경로에있다. flag : YISF{Y0u_Rec3ived_A_r3ward} [ WEB 200 ] 150 점보다훨씬쉬웠다. 사이트를들어가서주석을보면역시소스를볼수있는방법을알 려준다. 소스가엄청간단했는데 $_GET[ page ] 에 logout이라는문자열이있으면그페이지를

include 한다. 아무필터링없이 include하기때문에 php wrapper 를이용해서소스를릭할수있다.?page=php:// filter/convert.base64-encode/resource=logout/../contents 을넣으면서 contents 의소스를릭할수있다. 이렇게하면 릭해서로그인소스를보면 username 이 'YWRtaW4' 를 base64디코딩한거고 password가 'WUlTRnsyNmIwZDcxOTE3NDIwZmVkZGI3Y jjjyjy2zmzimgeznx0' 로로그인을시켜준다. 비밀번호를디코딩해보면 디코딩한거면 logout admin으 플래그가적혀있다. 패딩이안맞아서 invalid input 도같이뜨는데상관은없다. flag : YISF{26b0d71917420feddb7b2cb66ffb0a35} [ FORENSIC 50 ] 까 게시판이라고했으니까 FTK Imager로열어서 Appdata에서크롬쪽을뒤져서방문기록보니 http://nonamed.xyz 에접속해서글을남겼다는것을알수있다. 게시판이라서 sqli해봤는데먹히지는않고 id pw 모두찾아내야할거같아서크롬로그인데 이터복호화해볼라고안간힘을쓰다가접었는데힌트에 해야한다고해서 IE PassView 툴써서얻었다. ie 브라우저로그인데이터복호화 컴퓨터비밀번호는 SYSTEM이랑 SAM 파일에서 NTLM해쉬추출해서크랙해봤는데 empty pasasword 라고해서그냥공백으로냅뒀다. ( 크롬데이터복호화하려고크랙시도한건데 왜크롬데이터는복호화가안된건지모르겠다ㅠㅠ.) 로그인해서잠겨있는게시글을보면플래그가있다.

flag : YISF{SOme7imes_W3bBr0w5er_St0r3d_y0uR_Pa$$worD!} [ FORENSIC 100 ] 문제를풀려고하니이미힌트들이다떠먹여주고있었다. 구글에 windows mail app location 치니까글에서 여기에있대서 FTK Imager 로열여서가보니까있었다. 처음에는한글인코딩이돼있어서몰라봤는데힌트도또올라오고해서 파일인것을깨달았다..dat파일들이메일.dat 파일들이여러개있는데추출해서몇개보니까중요한파일이라면서구글드라이브링크 하나주고문서비밀번호도다른메일에서알려준다. (I_am_poor_but_my_company_is_rich) 열어서보면플래그가있다. flag : YISF{S0ME_W1ND0WS_4PP_HA5_EVIDENC3_A8OUT_U5ER'S_BEHAVI0R}

[ REVERSING 50 ] 윈도우게임이다. 아이다로열어서흐름을보다가맨마지막에 고마움의표시로선물준대는데남은게함수딱하나호출하는거라서저게플래그출력해주는 거겠지하고디버깅해서 eip 를바로저함수로바꿔서호출하니까플래그가출력됐다. flag : YISF{We1Come_R3ver2ing_w0rld} [ REVERSING 100 ] 바이너리가좀더러워서분석할때짜증났는데다풀고나서보니까인증하기 끗한버전의바이너리가올라와서허무했던문제이다. 10분전에깨 바이너리가하는일은파일을읽어서앞뒤로더미문자열을 4 개만든다. 평문맨앞네글자가 문자열이어떤걸로이루어질지구성하는데 YISF 키포맷을아니까더미문자열은어떤건지알 수있었다. 그렇게문자열다섯개를이어서구성하고각문자열마다 0, 2, 4 번째바이트를 가져와서 % 11 한값으로 xor 을한다. 그러고나서첫번째문자열순서대로랑마지막문자열을역순으로 xor하고 10더하면서다시 문자열배열을바꾼다. 그리고정수형태로파일에다시저장한다.

그냥역연산하면된다. 역연산소스는 https://gist.github.com/5unkn0wn/c8bf66313f0dddad4e415f53916801d7 여기있다. flag : YISF{y0uR_4na1y$is_CApab!lity_i2_Gr3aT!} [ REVERSING 150 ] 이번에는윈도우미로게임문제이다. 아이다로분석을좀하다보면 이렇게플래그를만들것처럼생긴함수가있는데연산을살펴보면 sub_405020와 sub_405080 이리턴한값을가지고이런저런연산을한다. 저함수들을보면 이렇게내부적인비교를통해서리턴값이 0이거나 0x3F4F 이거나둘중하나로만나뉜다. 리 턴값이플래그연산에쓰이는데당연히 0x3F4F같은값이리턴돼야할것같아서무조건저 값을리턴하도록패치하고저함수를어디서호출할까디버깅하면서찾아봤다. 찾아보다가 sub_405a10 이함수에서

v8이 1이면 fail했다고띄워주는함수를호출하고 2면 clear했다면서아까그플래그연산하는 함수를호출해준다는것을알았다. 그래서디버깅하면서 clear해주는함수쪽으로분기하도 록 eip 를조작해서플래그출력하는함수로가서플래그를연산하면진짜플래그가출력된다. flag : YISF{waS_Th3_m@z3_fuN?} [ REVERSING 200 ] 바이너리를 nc를통해서받아 30 초안에키값을구해서보내야하는자동화문제이다. 바이너리를분석해보면 read로입력을받아서키체크하는함수통해서 good wrong 출력해 주는심볼릭익스큐션에최적화된바이너리임을알수있다.

check 함수는사람의손으로는역연산이힘들것같은루틴들이 이렇게들어있다. angr 를돌리면슥삭나오게생겼다. 근데 angr로슥삭나오지못하게하도록라이브러리주 소를가져온다거나 simuvex.simprocedure에구현되어있지않은 abs함수를사용한다는등 함정이파여있었다. 라이브러리주소를가져오는곳은디버깅해보니까항상최상위 1바이트인 0x7f만가져오는데 angr에서는실제라이브러리주소가들어있는것이아니기때문에후킹해서 했고 0x7f abs 는직접파이썬에서구현해서함수자체를후킹했었는데이렇게하면안됐다. 넣어주게 처음에후킹을안하면 abs는 ReturnUnconstrained되지않은라이브러리라면서오류가나길 래직접후킹을했었는데이이유가바이너리를로딩할때속도를위해서습관적으로넣어주 던 load_options={'auto_load_libs':false} 이옵션때문이었다. abs함수를내가직접후킹하는게아니라저옵션을빼서 들어가도록하면된다. angr가실제라이브러리내부까지 그렇게해서 nc로바이너리받아서후킹할주소랑 find, avoid할주소등등 angr를돌리는데 필요한정보들은 objdump로어셈파싱해서가져와서 angr 돌려서풀었다. 처음에스테이지몇까지깨야되는지몰라서당황했는데대충하나돌리는데 까 10 개라추측하고돌렸는데맞았다. 풀이코드는 https://gist.github.com/5unkn0wn/ec5ee79e244e4b34d17550eacd189dde 여기있다. 25초정도걸리니 flag : YISF{gratz_ke3p_y0ur_kul_w1th_4ngr} [ PWNABLE 50 ] 돈이 0x10000000 원이상이면플래그를준다. 조건보고아이건포맷스트링아니면인티저언더플로우일거같다하고소스를보니까

농작물을팔때현재가지고있는농작물보다큰지만검사하고 0보다작은지는검사를하지 않는다. 그래서인티저언더플로우를발생시키려고적당한아무음수나몇번넣어봤더니알 아서플래그를줬다. ( 여기서는 selling, -536871912만 4 번하면플래그를줌) flag : YISF{thanks_p1ay3r} [ PWNABLE 100 ] 이것도아이다로좀분석해보다가구현되어있는 strncpy, strncmp, strncat,... 등등의함수 에메인함수의문자열변수를인자로넣어서문자열처리를하는데문자열변수바로밑에있 는인티저변수가 0 이아닌값이되면플래그를출력해준다. 익스는필요없고버퍼오버플로우만좀내면될거같다고생각해서걍바로 nc에접속해서 모든메뉴에 AAAAAAA... 를넣어보다가 strncat에서막넣으니까갑자기플래그를출력해줬 다. 나중에보니까 strncat 함수에버퍼오버플로우취약점이있었다. flag : YISF{um!!?_i_d1d_not_kn0W_th3rE_w@s_a_buuug}

[ PWNABLE 150 ] 힙익스플로잇문제이다. 처음버퍼입력받을때 31 바이트힙오버플로우가일어난다. 그리고 구조체에포인터가존재하고그포인터를읽고쓸수있기때문에오버플로우를이용해서그 포인터를 got로덮는다면라이브러리릭과 got o verwrite를통해익스플로잇을할수있게 된다. 다만 modify할때는오버플로우가일어나지않게입력을받기때문에 chunk1 할당 --> chunk2 할당 --> chunk1 해제 --> chunk3 할당 (chunk1과같은메모 리주소) --> 오버플로우를이용해 chunk2 를덮음 이와같은순서로익스플로잇을해야한다. 라이브러리릭하고 free의 got를 syst em 으로덮고힙데이터에 /bin/sh; 를넣어서쉘을따면 된다. 익스플로잇코드 : https://gist.github.com/5unkn0wn/d2ffeffe4bfc4d32043f150e70738186 flag : YISF{go0d job_1t_was_b0f_0n_h34p_pr 0b_:)} [ PWNABLE 200 ] 이번에는소켓프로그램이다. 이것도입력받을때대놓고오버플로우를주는데카나리때문에바로익스플로잇이불가능하다. sterr 를리다이렉트시키지않아카나리를브루트포싱하는것은불가능하고내부구조체를 잘이용해서출력할때카나리를릭해야한다. 메모리구조는 [trainer][pocketmon][canary][sfp][ret] 이렇게구성되어있고각구조체는 trainer --> [name][age], pocketmon --> [name][level][comment(overflow)][stat 1, 2, 3] 이렇게구성되어있다. 포켓몬인포출력할때포켓몬이름이나코멘트같은거는길이를정해두고출력해서릭이안 되지만트레이너이름은그냥쭉출력해준다. 그래서 trainer랑 pocketmon 구조체를꽉채워 서출력시키면카나리릭을할수있다. 더불어서 sfp 에서스택릭을, ret에서라이브러리릭을 할수있다. 중간에 00을없게하기위해 trainer name 은꽉채우고 (modify 할때꽉채울수있음)

age는 1넣으면 ff ff... 로꽉채워진다. pocketmon name도꽉채우고 level을꽉채워야하는데버퍼는 int64사이즈인데비해입력은 int32로받아서상위 4바이트에 00 이들어갈수밖에없다. 이거를포켓몬게임을지면레벨을 2하는데이때는 int64로 2하기때문에레벨을 0이나 1 을넣고게임을져서버퍼를채우면된다. 그리고 comment에서 bof가터지기때문에릭을 쭉하고나머지는 ro p해서 system 을호출하면된다. 소켓이기때문에스택에 stdin, stdout, stderr를 socket 디스크립터로리다이렉트시키는 binsh를넣고 system 인자로넣으면된다. 익스플로잇코드 : https://gist.github.com/5unkn0wn/abc22e55ce1652529c94a364b6217fe9 flag : YISF{p0kem0n_g0_had_b e3n_p0pul4r_in_th1s_year_:)} [ MISC 50 ] 공지확인누르면준다. flag : YISF{H@VE_FUN_G@OD_LUCK} [ MISC 100 ] 간단한모스부호를표현한 wav 파일이다. 골드웨이브로열어서표시되는스펙트럼의길이를보고해석하면된다. 위에꺼는 -.--.......-. / -....- -. -.- / ~~~ 이렇게해석된다. flag : YISF{THANK_YOU_F0R_YOUR_H4RD_W0RK}

[ MISC 150 ] 소스로 c++ 소스를주고그소스로플래그를암호화한파일을준다. c++ 코드는템플릿을사용해서막연산을하는데 operator 들을다보면 간단한 +, -, *, ^ 밖에없다. 그래서소스는안짜고걍손으로일일이연산해줬다. 밑에서 xor도해주는데 xor 값은키포맷이 YISF{} 라는거를이용해서알아냈다. 그냥손으로다해서소스가없다. flag : YISF{v3rY_Co NFu5inG} [ MISC 200 ] qrcode 를하나주는데내부에 엄청많은 qrcode들이 apng 로구성되어있다. apng disassembler로파일싹다뽑아서디코 딩해보면 x, y, color 처럼보이는값들이출력된다. 출력되는 (x, y) 에해당색깔을넣으면플래그가들어있는 qrcode가나올것같은느낌이들

어서코드짜서만들었다. 중간에?? 로모르는값들도있었는데그부분은항상정해져있는값인 finding pattern이랑 timing pattern 부분이라서문제없이 qrcode 를만들수있었다. 소스는 https://gist.github.com/5unkn 0wn/5228a6746cb8f7e8cc263c20c6e47ff5 여기있다. 다만들어진 qrcode 는이렇게생겼다. 디코딩하면플래그가있다. flag : YISF{MAYBE_QR_CODE_CHALLENGE_m4de_y0u_4ngry_8ut_you_are_so_n1ce!!}