풍문으로들었소팀보고서 hkpco, hellsonic, lokihardt, gogil 페이지 1 / 16

Similar documents
var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

C H A P T E R 2

Observational Determinism for Concurrent Program Security

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

로거 자료실

PowerPoint Template

Javascript.pages

슬라이드 1

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

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

쉽게 풀어쓴 C 프로그래밊

Black Hole Exploit Kit PDF Exploit $selectedexploit =? 3 or 4 /games/pdf.php /games/pdf2.php CVE , CVE , CVE , CVE

대량문자API연동 (with directsend)

Microsoft Word - src.doc

Microsoft PowerPoint 자바스크립트(1).pptx

구축환경 OS : Windows 7 그외 OS 의경우교재 p26-40 참조 Windows 의다른버전은조금다르게나타날수있음 Browser : Google Chrome 다른브라우저를사용해도별차이없으나추후수업의모든과정은크롬사용 한

PowerPoint Template

Tcl의 문법

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

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

PowerPoint 프레젠테이션

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

<C3D1C1A4B8AE B0E6BFECC0C720BCF B9AE2E687770>

Chapter 1

Microsoft PowerPoint - 3장-MS SQL Server.ppt [호환 모드]

Windows 8에서 BioStar 1 설치하기

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :


API 매뉴얼

강의 개요

Microsoft Word - FunctionCall

슬라이드 제목 없음

The Pocket Guide to TCP/IP Sockets: C Version

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

PowerPoint 프레젠테이션

Microsoft Word - Blind Sql Injection.doc

MySQL-.. 1

Microsoft Word - Static analysis of Shellcode.doc

03_queue

컴파일러

1 SW

SW

untitled

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

Spring Boot/JDBC JdbcTemplate/CRUD 예제

어댑터뷰

OCaml

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

C# Programming Guide - Types

Microsoft PowerPoint - web-part01-ch05-함수.pptx

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

chap 5: Trees

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

개발문서 Oracle - Clob

Microsoft PowerPoint - chap06-1Array.ppt

*2008년1월호진짜

PowerPoint 프레젠테이션

$ret = ""; $socket = fsockopen(" ", 8888, $errno, $errstr, 100); fgets( $socket, 50); fgets( $socket, 50); $ret.= fgets( $socket, 50); $

API 매뉴얼

HTML5 웹프로그래밍 입문-개정판

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

int main(void) int a; int b; a=3; b=a+5; printf("a : %d \n", a); printf("b : %d \n", b); a b 3 a a+5 b &a(12ff60) &b(12ff54) 3 a 8 b printf(" a : %x \

문서 템플릿

IP Cam DDNS 설정설명서(MJPEG) hwp

PowerPoint Presentation

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

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

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - web-part03-ch19-node.js기본.pptx

초보자를 위한 C# 21일 완성

Microsoft PowerPoint - ch07 - 포인터 pm0415

PowerPoint Template

#한국사문제7회4급

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

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

Chapter 4. LISTS

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

server name>/arcgis/rest/services server name>/<web adaptor name>/rest/services ArcGIS 10.1 for Server System requirements - 지

1장. 유닉스 시스템 프로그래밍 개요

강의 개요

UI TASK & KEY EVENT

<B1E2BCFAB9AEBCAD5FB9DABAB4B1D45F F F64746F72732E687770>

FileMaker 15 ODBC 및 JDBC 설명서

5.스택(강의자료).key

제목 레이아웃

Javascript

JUNIT 실습및발표

Connection 8 22 UniSQLConnection / / 9 3 UniSQL OID SET

C++ Programming

13주-14주proc.PDF

슬라이드 1

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

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

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

BMP 파일 처리

adfasdfasfdasfasfadf

WINDOW FUNCTION 의이해와활용방법 엑셈컨설팅본부 / DB 컨설팅팀정동기 개요 Window Function 이란행과행간의관계를쉽게정의할수있도록만든함수이다. 윈도우함수를활용하면복잡한 SQL 들을하나의 SQL 문장으로변경할수있으며반복적으로 ACCESS 하는비효율역

슬라이드 1

untitled

Transcription:

풍문으로들었소팀보고서 hkpco, hellsonic, lokihardt, gogil 페이지 1 / 16

S1_Hello_kiki: 100 hello_kiki.pcap 파일이문제로주어집니다. 와이어샤크로열어서쭉쭉내리다보면 RTP 프로토콜이맋은데, 스태틱스 -> VoIP Calls 에들어가 서재생을해보면대화를들을수있고, 패스키는자싞의로그인패스워드라고합니다. 페이지 2 / 16

S2_qu3st2: 150 주어진바이너리를 IDA 로열어스트링을검색해보면다음과같은문자열이있습니다. 해당문자열을 base64 decode 해보면키를얻을수있습니다. 페이지 3 / 16

S3_Find a key: 200 주어진바이너리를 IDA 로열어보면다음과같은부분을발견할수있습니다. 페이지 4 / 16

S4_Find a key and encode MD5: 300 일 jpg 이.jpg 삼.jpg 3 개의 jpg 이미지와각각이미지에는알수없는숫자가있습니다. jpg 의끝부분이 FFD9 로끝나지않고 FFD9 사이에 2Byte 가추가되어있습니다. 끝부분의 2Byte 는각각일.jpg = 90, 이.jpg = 180, 삼.jpg = 270 이었습니다. 일.jpg 의첫번째줄을 (x.y.z) 로하여 5x5x5 큐브에맞춰좌표를찍고, 이.jpg 와삼.jpg 도마찬가지로합니다. 그랬더니알파벳 E 와비슷한모양이나왔고파일의끝부분에서찾은 90, 180, 270 대로 Y 축을기 준으로회젂시켰더니알파벳이정확하게나왔습니다. 각각의줄에대해똑같이하면됩니다. 페이지 5 / 16

KEY IS A TCAN md5(tcan) Key) 2ceb9b1a93b1b4ea9a57a117ddc3acfa 페이지 6 / 16

S5_Find a key : 400 가입을하고수정페이지 modify_ok.php 에서성별을조작할때인젝션이가능하고로그인해서성 별을확인하는식으로 Blind SQL Injection 이가능합니다. sex=if((select substr(lpad(bin(ascii(substr((select table_name FROM information_schema.tables WHERE table_type='base table' limit 1,1),$j,1))),8,0),$i,1)),1,2) 테이블 war_key 를찾았고, 필드명도 war_key 였습니다. 마찬가지로 war_key 의데이터를가져옵니다. if((select substr(lpad(bin(ascii(substr((select war_key FROM war_key limit 0,1),$j,1))),8,0),$i,1)),1,2) Key) President_of_HUST_is_Bother_Me 페이지 7 / 16

S6_Find a key: 400 주어진바이너리를 IDA 로열어보면클립보드데이터에 xor 을 2 번연속으로한다는것을알수있 습니다. 이를 c 코드로옮긴후 NULL 로채워진 21 바이트의버퍼에 xor 를하면키를획득할수있습니다. 페이지 8 / 16

S7_W T F: 350 몇번값을넣다보면 a~z, A ~ Z 외의 input 값은모두 'i' 로리턴한다는것을알수있습니다. 치 홖을통해 stringx 가 gqsqumgsmieuie 임을찾아냈습니다. 이후 Constraint Programming solver 를통해 a = 1, b = 6, c = 2 이며 abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz x 는위의테이블의인덱스임을알수있습니다. 역함수를코딩하여 stringx 를넣어보면 WOWOCSWWSOCCOC 가나옵니다. 페이지 9 / 16

S8_Find a key: 400 회원가입시 find_account_question 변수에 insert SQL injection 이되므로 0,1,2,3...,"Y",...)# (is_admin 부분에 "Y" 처리 ) 를이용하여, 관리자로회원가입을한뒤, 관리자페이지의레이아웃을통해 <?=`cat ThisisKeyFile.php`?> 해서키를읽었습니다. 페이지 10 / 16

S9_Find a key: 600 웹문제입니다. 소스보기를해보면코드가주어집니다. <?php /* --- */ $ip = "[****]"; $key = "[****]"; /*It's my door trick*/ $a=$_get[a]; $b=$a; if(is_array($a)){ $a= implode($a); $x= substr($a,strlen($key)); if($key==substr($a,0,strlen($key))){ if(is_numeric(($b[count($b)]))){ $y = $ip."[****]"; $xx = $key.$x; $r_key = [R**]($xx, $y); $r_key=(base64_encode($r_key)); $r_key=str_replace('+',' ',$r_key); /* ---- */ if($_get[glob_dir]){ print_r(glob("/var/www/html/".$_get[glob_dir])); 페이지 11 / 16

?> eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseint(c/a)))+((c=c%a)>35?string.fromcharc ode(c+29):c.tostring(36));if(!''.replace(/^/,string)){while(c--)r[e(c)]=k[c] e(c);k=[function(e){return r[e]];e=function(){return'\\w+';c=1;while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p('t(k(p,a,n,k,e,r){e=k(c){l(c<a?\'\':e(u(c/a)))+((c=c%a)>v?o.w(c+x):c.y(z));m(!\'\'.p(/^/,o)){q(c- -)r[e(c)]=k[c] e(c);k=[k(e){l r[e]];e=k(){l\'\\\\w+\';c=1;q(c--)m(k[c])p=p.p(r 10(\'\\\\b\'+e(c)+\'\\\\b\',\'g\'),k[c]);L p(\'0="";0+="i";j="k";l=4;m 7(a,b){n c=1 3();2(8.3){c=1 3();2(c.9){c.9(\\\'o/p\\\')q 2(8.5){d{c=1 5("r.6")f(e){d{c=1 5("s.6")f(e){2(!c){t(\\\'u v :( w x y 6 z\\\');g Ac.B("C",a,h);c.D(E);g h0+="f";0+="g";0+="h";7("a.i?a="+j);\',s,s,\'11 R M 12 13 14 15 16 17 18 19 L 1a 1b N 1c 1d K 1 e 1f 1g 1h 1i 1j 1k 1l 1m 1n 1o 1p 1q 1r 1s 1t 1u 1v 1w 1x 1y 1z 1A\'.1B(\' \'),0,{))',62,100,' function return if Cstar String replace while new 46 eval parseint 35 fromcharcode 29 t ostring 36 RegExp key XMLHttpRequest ActiveXObject XMLHTTP makerequest window overridemim etype try catch true 0xde alone rc var text xml else Msxml2 Microsoft alert Giving up Cannot create a n instance false open GET send null ad be ef php sc split'.split(' '),0,{)) 먼저자바스크립트를난독화를풀어주면 eval -> alert eval(function(p,a,cstar,k,e,r){e=function(c){return(c<a?'':e(parseint(c/a)))+((c=c%a)>35?string.fromch arcode(c+29):c.tostring(36));if(!''.replace(/^/,string)){while(c--)r[e(c)]=k[c] e(c);k=[function(e){return r[e]];e=function(){return'\\w+';c=1;while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p('0="";0+="i";j="k";l=4;m 7(a,b){n c=1 3();2(8.3){c=1 3();2(c.9){c.9(\'o/p\')q 2(8.5){d{c=1 5("r.6")f(e){d{c=1 5("s.6")f(e){2(!c){t(\'u v :( w x y 6 z\');g Ac.B("C",a,h);c.D(E);g h0+="f";0+="g";0+="h";7("a.i?a="+j);',46,46,'key new if XMLHttpRequest ActiveXObject XMLHTTP makerequest window overridemimetype try catch return true 0xde Cstar alone rc function var text xml else Msxml2 Microsoft alert Giving up Cannot create an instance false open GET send null ad be e f php sc'.split(' '),0,{)) 와같이나오고, function 으로넘어가는 Cstar 를 c 로바꿔준뒤다시한번난독화를풀어줍니다. 페이지 12 / 16

key = ""; key += "0xde"; Cstar = "alone"; rc = 4; function makerequest(a, b) { var c = new XMLHttpRequest(); if (window.xmlhttprequest) { c = new XMLHttpRequest(); if (c.overridemimetype) { c.overridemimetype('text/xml') else if (window.activexobject) { try { c = new ActiveXObject("Msxml2.XMLHTTP") catch (e) { try { c = new ActiveXObject("Microsoft.XMLHTTP") catch (e) { if (!c) { alert('giving up :( Cannot create an XMLHTTP instance'); return false c.open("get", a, true); c.send(null); return true key += "ad"; key += "be"; key += "ef"; makerequest("a.php?a=" + sc); 페이지 13 / 16

자바스크립트에서키는 0xdeadbeef 라는걸알려주고있고, 아까젂 PHP 의 [R**] 암호화는 RC4 라는걸알려줍니다. 먼저 a 파라미터에 0xdeadbeef(3735928559) 를보내주면자바스크립트단에서 RC4 를암호화한 문자를보내주는걸알수있습니다. makerequest("a.php?b=7csrkilsu4ejncl/tmek ElHZ6tdy2eWOp8NvQ==&x="); x 에는 0xdeaedbeef 혹은 3735928559 를넣어준뒤요청해보면 youtube 주소를가져옵니다. 7csrkIlsU4EJNCl/TmEk ElHZ6tdy2eWOp8NvQ== 를 0xdeadbeef 키로 ARCFOUR Decrypt 해주면 192.168.0.12_get_./download 라는문자열을얻을수있고, 192.168.0.12_get_../../../key 를암호 화하여요청하니키가나왔습니다. 페이지 14 / 16

S10_Find a key: 500 주어진바이너리를보면다음과같은형태로바이너리를실행했을때 strcpy 함수에서 bof 가발 생한다는것을알수있습니다../bin -h a -d xxxxxx... (h 옵션부터넣어줍니다 ) 스택에실행권한이있어 /home/k1r.. 폴더의쉘코드를넣은후 PC 를해당주소로바꿔주면되 는데스택의주소가유동적임을알수있습니다. printf 함수의출력값을저장하는주소가고정이므로해당주소로 pc 를바꿔줍니다. 쉘코드의마지막널바이트를넣어줄수없으므로, execl 인자가널을맊날때까지가느라 printf 의끝 null 까지가고, execl 은 /bin/sh] \n 을가리키게됩니다. /bin 주소를 /tmp 로변경뒤, tmp 폴더에 sh] \n 파일을생성하여쉘을획득하였습니다. 페이지 15 / 16

S11_Find a key: 500 jsp 와 apk 파일이하나주어지는데해당 apk 파일을분석해보면 otp 로그인이후버튼을지정된수 맊큼눌러야한다는것을알수있습니다. 위변조를통해 ( 지정된수 - 1) 을초기값으로설정하여한번의클릭으로키를얻을수있게하였습 니다. Boss.smali 파일 페이지 16 / 16