Write-up 24

Response 풀이

문제의 제목은 'Response'이다. 그리고 문제의 부제로는 response를 아냐고 묻고 있다. 문제의 링크로 이동하면 a태그를 이용하여 get_flag라는 이름의 하이퍼링크가 걸려있다. 링크의 주소는 /flag로 get_flag를 클릭하면 아래의 /flag 페이지로 이동하게 된다. /flag 페이지로 이동하게 되면 Here you are이 보이는데 아마도, 문제 페이지에서 get_flag를 누르면 /flag 페이지를 요청하게 되고, 요청에 대한 응답으로 flag를 주는 것 같다. 따라서 우리는 문제에서 요구한 대로 응답값을 확인해야 한다. burp 로 확인해도 되고, wireshark로도 확인할 수 있다. (추가로, 개발자 도구로 확인 할 수 있다.) 본인이 편한 방법을 이용하자. 1. Wiresh..

Write-up/SECGAME 2023.05.19

fridalab-challenge 04

chall04 문제는 chall04() 메소드에 frida를 보내면 된다. 2. 소스코드 분석 chall04는 chall04() 메소드에 str 문자를 받는데 그 문자열이 "frida"와 동일(equals)하면 되는 문제이다. 3. 문제풀이 setImmediate (function() { Java.perform (function() { console.log("[*] shart chll04"); var result; Java.choose("uk.rossmarks.fridalab.MainActivity", { onMatch : function(instance) { result = instance; result.chall04("frida"); }, onComplete : function() { } }); co..

Write-up/FridaLab 2023.04.02

fridalab-challenge 03

chall03 문제는 chall03() 메소드가 true를 반환하도록 만들면 된다. 2. 소스코드 분석 chall03() 메소드는 false를 반환하고 있으므로, 문제를 풀기 위해서는 true로 반환하도록 수정해야한다. static 함수가 아니기 때문에 java.choose를 사용해야 하는데, 반환 값만 변경하면 되기도 하고, chall03() 메서드를 MainActivity에서 호출하므로 java.use 사용이 가능하다. 3-1. 문제풀이(1) - java.choose setImmediate(function() { Java.perform(function() { console.log("[*] chall03 start"); var result; Java.choose("uk.rossmarks.fridalab..

Write-up/FridaLab 2023.04.02

fridalab-challenge 02

chall02 문제는 chall02() 메소드를 실행시키면 된다. 2. 소스코드 분석 먼저, MainActivity를 살펴보면 AppCompactActivity의 필드를 MainActivity class가 상속 받고, Int형태의 CompleteArr 배열을 생성하고 있다. chall02() 메소드를 실행시켜야하며, static으로 정의 되어 있지 않기 때문에 instance 변수라는 것을 확인해야 한다. 더불어 접근지정자가 public이었던 chall01과는 다르게 private로 지정되어있다. private의 경우 외부에서 접근이 불가능 하고 클래스 내부에서만 접근할 수 있다. chall01에서 함수와 변수값을 바꿀 수 있었던 것도 그 함수와 변수에 접근 즉, java.use를 이용해 그 getCha..

Write-up/FridaLab 2023.04.02

fridalab-challenge 01

해당 문제의 경우, 클래스 challenge_01의 변수’chall01’을 ‘1’로 변경해야한다. 1. 소스 코드 분석 소스 코드를 한 줄 단위로 살펴보면 다음과 같다. public class Challenge_01 { //'Challenge_01' 이라는 클래스 생성 static int chall01; //int(정수형)의 static(정적)변수 'chall01' 선언 // call01은 클래스 변수이다. public static int getChall01Int() { //static(정적) getChall01Int 메소드 생성 return chall01; //chall01를 반환 } } .value 를 통해 chall01() 메소드를 직접 변경을 하거나 .implementation으로 함수를 재작성하..

Write-up/FridaLab 2023.02.17

[2021 INCOGNITO CTF Write-up] question

2021년 INCOGNITO CTF Forensic부분의 question 문제이다. 우선, 문제를 살펴보면 question.jpg라는 그림파일 하나를 다운 받을 수 있다. 다운받은 그림을 보면 파일 형식을 지원하지 않는다고 한다. 그러면 HxD에 이 파일을 넣어 보았다. 파일 시그니처가 PK 압축파일로 되어있었다. jpg파일이 아니기 때문에 파일 형식을 지원하지 않는 것이었다. 그러면 제대로 이 파일을 .zip으로 압축파일 확장자 명으로 바꿔서 다시 저장하고 압축을 풀어 보았다. 풀어진 압축 파일을 보면 XML문서도 있고, 다양한 폴더들이 있는데 이 폴더들을 하나 씩 살펴보면 word라는 파일의 media 부분에서 image1이라는 그림 파일을 하나 찾을 수 있다. Is this really a jpg ..

Write-up/INCOGNITO 2021.08.30

[2021 INCOGNITO CTF Write-up] TwinCle

2021년 인코그니토 CTF Forensic의 TwinCle 문제이다. 문제를 보면 .jpg로 되어 있는 그림 파일을 다운로드 받을 수 있다. 파일을 다운 받아서 열어보면 정말 반짝반짝이는 그림을 볼 수 있다. 먼저, HxD를 켜서 사진을 넣어 보았다. 그냥, 뭔가 이런 그림을 보면 자동적으로 HxD에 넣어서 확인부터 한다. 천천히 살펴보니 마지막 부분에 PK라는 압축 파일 시그니처를 확인할 수 있다. 그리고 Hidden_cloud.jpg라는 그림 파일이 있는 것으로 봐서는 숨겨진 사진이 하나 더 있는 것 같다. 파일 시그니처를 따라 .zip 확장자로 다른 이름으로 저장해 주고 확인해 보았다. 역시, 압축파일 안에 Hidden_Cloud.jpg 라는 파일이 있다! 압축된 파일을 풀어 사진을 확인해 보자...

Write-up/INCOGNITO 2021.08.30

[23회 HackingCamp CTF Write-up] world-wide-web

다시 공부해야 할 문제이다. Web의 world Wide Web 문제이다. flag 경로는 /tmp/flag에 있다고 한다. 이걸 체크하고 링크 되어 있는 페이지로 이동한다. 광복절이라서 광복절 태극기가 배경으로 되어있는 World-Wide-Web 페이지로 이동할 수 있다. ctrl+u 를 눌러서 소스코드를 확인 했더니, img src 옆에 /phpMyAdmin이라는 경로가 있었다. 경로를 들어가 보면 phpMyAdmin 로그인 페이지가 뜨게 된다. 여기도 ctrl+u를 이용해서 소스코드를 살펴보면 아주 친절하게 hidden으로 되어있는 사용자명과 암호를 확인할 수 있다. 사용자명: wwwweb 암호: wwwweb!@# 로그인을 하고 들어가면 요렇게 phpMyAdmin의 메인페이지가 뜨게 된다. 사실 나..

[23회 HackingCamp CTF Write-up] find string

Misc의 Find string 문제이다. 이 문제도 너무 귀여웠는데, 문자열을 찾아주세요. 못찾겠쥐~? 찾아야쥐~? 가 너무 귀여웠다. 우선 구글 드라이브로 연결되는 링크가 있고 들어가면 압축파일을 하나 다운 받을 수 있다. 압축을 풀고 안에 들어있는 메모장 파일을 열어보면 0과 1로 이루어진 바이너리 문자열을 확인할 수 있다. 바이너리 텍스트 번역기로 돌렸는데 문자열이 섞여서 나왔지만 뒤에 HCAMP가 있는걸로 보아서는 flag는 맞는데 반대로 되어 있는 것 같았다. 그래서 한 땀 한땀 바이너리 텍스트 파일을 원래대로(?) 복구 해 주었다. 원래대로(?) 복구해 준 텍스트를 다시 번역기로 돌려보았더니 정상적으로 Flag를 획득할 수 있었다. Find string CLEAR!

[23회 Hackingcamp CTF Write-up] find base

Misc 문제의 Find base 문제이다. 문제가 너무 귀여웠는데 보자보자 어디보자 베이스? 라고 되어 있고, 뒤에 암호문과 함께 담에보자~ 라는 말이 있다. 암호를 보면 끝에 등호(=)가 4개가 보였다. Base 64는 등호가 2개가 들어가니까 아닌 것 같았다. 혹시 몰라서 base 64에 집어 넣어봤는데, 역시 Base 64가 아니었다. 문제에서 베이스라고 힌트를 주었기에 다른 암호는 생각하지 않았고, Base 함수 중, Base 32를 디코딩을 진행하였더니 HCAMP flag가 떴다. 문제 CLEAR! Ps. 사실 Base64를 가장 많이 접해서 Base32는 생각도 못하고 기억 저편 어딘가에 묻어뒀는데, 그냥 그 순간에 갑자기 Base 32가 떠올랐다.