분류 전체보기
Basic RCE L19
아래 문제와 매우 유사하다. 설명이 이 포스팅보다 좀 더 자세하다.. https://hec-ker.tistory.com/123 일단 압출을 풀고 19.exe 파일을 더블클릭하여 실행시켜 보자. 위와 같은 메시지가 뜨고 몇 초 뒤 자동으로 꺼진다. 그 '몇 초'를 찾으면 될 것 같다. PEiD로 일단 패킹 여부를 검사해봤다. UPX로 패킹되어 있다. upx.exe -d 19.exe: 언패킹 완료 언패킹한 파일을 올리디버거에서 열어, 실행시켜봤다. 아까와는 다른 메시지가 출력되고, 리턴되었다. 메시지를 다시 보자. AutoIt으로 컴파일된 스크립트라고 한다. 물론 파일 썸네일에서부터 알 수 있었다. 어쨌든 오토잇으로 디버깅된 실행 파일이므로 이런 메시지가 뜨는 것 같은데 처음 더블클릭했을 때 나온 메시지 창..
Advance RCE L01
01.7z 파일을 풀면, 01.exe 파일이 주어진다. 더블 클릭해서 실행시키면 위와 같은 창이 뜨고 몇 초 있다가 알아서 꺼진다. 이 창이 꺼지는데 걸리는 시간을 구하는 것 같다. 일단 PEiD로 패킹 여부를 살펴보니 UPX로 패킹 upx -d 01.exe: 언패킹을 완료하고 올리디버거에서 열었다. 언패킹 후 디버거에서 실행시켜보니 위와 같은 메시지가 출렸되었다. 구글링해보니 별 내용 아니고(AutoIt을 통해 컴파일된 스크립트라는..) 우린 이 메시지를 없애면(안티디버깅) 된다. IsDebuggerPresent()는 해당 프로세스가 디버깅을 당하고 있는지 여부를 PEB구조체의 디버깅 상태값으로 확인한다. 일단 IsDebuggerPresent 함수가 쓰인 곳을 찾아봤다. 0040E961 Search f..
SuNiNaTaS 11 (REVERSING 198pt)
Unregister라는 폴더에는 Project1.exe 파일이 있다. Register 버튼을 누르면 아무 창도 안뜬다. 일치하는 키를 입력하지 않으면 아무런 동작도 안한다. PEiD로 먼저 패킹 여부를 보자..! Delphi는 처음 들어봤는데 이렇다고 한다.. 그럼 일단 가볍게 문자열을 추출해보자 지금까지 다뤘던 것보다 추출된 문자열이 매우 많은데 의미있는건 가장 마지막 부분인 것 같아서 떠왔다. "2V", "XS", "B6", "H1", "0F", "Authkey : ", "Congratulation!"이 보인다. 그 밑에는 영소문자와 숫자로 이루어진 문자열도 보인다. 일단 가장 첫 "2V", 004502C6으로 가보자. 이 부분인데 EBX+310부터 318, 31C, 314, 320 순으로, 즉 "2..
Easy Keygen (100)
reversing.kr 2번 Easy KeygenMe. 압축을 풀면 Easy Keygen.exe와 ReadMe.txt가 들어있다. 실행파일에서는 위처럼 Input Name, Input Serial을 입력받고 아마 비교?해서 Wrong/Correct이라는 메시지를 출력한다 txt에서는 문제를 주고 있다. 시리얼 넘버가 5B134977135E7D13일 때 네임을 찾으라는 것. 일단 PEiD로 패킹 안된 파일이라는 것 먼저 확인하고 올리디버거로 문자열을 추출해봤다. 일단 잘 모르겠어서 Input Name에 "mango"를 입력하고 처음부터 실행하면서 레지스터 값을 관찰해봤다. 시리얼 넘버를 입력하기 전 004010C8 주소에서 함수를 호출하니 EDI에 "7D415E774F"가 들어갔다. 아직 잘 모르겠으니 C..
IOLI crackme 0x00 ~ 0x05
crackme0x00 패스워드를 찾는 문제. 일단 포함된 문자열을 찾아봤다. "Password: " 다음 누가봐도 비밀번호일 것 같은 숫자가 있었다. crackme0x01 비슷한 문제다. 바로 전 문제처럼 문자열을 찾아봤지만 그렇다할 단서는 찾지 못했다. 심볼 트리 탭에서 _main 함수를 선택하니 디컴파일 탭에서 비밀번호를 찾았다. 13번째 라인에서 0x149a와 local_8 변수를 비교하는데 맞으면 OK! 어셈블 코드는 이랬다.. 5274를 넣어보자ㅏ crackme0x02 0x01과 같은 문제다. 0x52b24 = 338724 crackme0x03 디컴파일러는 참 좋은 도구이다.. 0x52b24 = 338724 crackme0x04 ?.. 의도치 않게 풀어버렸다 일단 디컴파일된 코드를 보자 디컴파일..
2020 AUCTF
Boom 다운받은 boom.sql.7z 파일은 손상되어 완전한 형태로 압축을 풀 수 없다. 복구가 덜 된 boom.sql 파일은 -- Adminer 4.7.5 MySQL dump SET NAMES utf8; SET time_zone = '+00:00'; SET foreign_key_checks = 0; SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'; DROP TABLE IF EXISTS `images`; CREATE TABLE `images` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(80) NOT NULL, `image` longblob NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFA..
SuNiNaTaS 28 (FORENSICS 200pt)
down 버튼을 누르면 zip 파일이 다운되는데 아래 3개 파일이 들어있고 암호가 걸려있다. 일단 zip 파일 구조를 살펴보자. 다음은 So_Simple.zip 파일의 헥스 코드다. 일단 헤더 - 50 4B 03 04, 푸터 - 50 4B 05 06도 잘 붙어있고 파일 3개가 담겨있으니 50 4B 01 02도 3개씩 잘 있다. 더 자세한 구조를 살펴보다가 (아래 링크 참조) 바로 이 부분!이 Flag를 나타내는 곳이라는 걸 알게되었다. 7, 8번째 바이트 부분 중 (offset은 06, 07) 0번째 bit 가 파일 암호화 유무를 나타낸다고 한다. 출처: https://m.blog.naver.com/PostView.nhn?blogId=koromoon&logNo=220612641115&proxyRefere..
Codegate 2020
LOL LOL.zip 파일을 다운받아 열면 아래 Legend.gif 파일이 있다 징크스다 일단 HxD로 해당 파일을 열어보자 파일 확장자는 .GIF지만, 헥사 에디터로 열어보면 헤더가 FF D8 FF E0 - - 4A 46, 즉 JFIF 파일이다 GIF 파일의 헤더 시그니처는 47 49 46 38 37 61. 검색해봤는데 찾을 수 없어서 GIF는 훼이크고 JFIF라고 확신했다 일단 헤더는 확인했으니 푸터를 확인해보자. JFIF 파일의 푸터는 FF D9이다. "FF D9"를 찾았다. 그런데 그 뒤 다시 FF D8 ~ (JFIF 헤더)가 시작되는 것을 발견했다. 그래서 맨 앞 ~ FF D9, FF D8 ~ 맨 끝 두 부분으로 헥사 코드를 나눠 저장해보니 앞 부분은 원래 받았던 징크스 사진, 뒷 부분은 아래 ..
Easy Crack (100)
Easy_CrackMe.exe 를 다운받고 열어보면 위와 같은 창이 뜬다. admin을 입력해보면, "Incorrect Password", 패스워드를 찾는 것이 목표인 것 같다. 이제 이 실행 파일을 올리 디버거에 넣어보자. 일단, 문자열부터 살펴보기로 하자 5y, R3versing, EasyCrackMe, Congratulation!!, Incorrect Password 등이 보인당 이제 틀린 비밀번호를 넣었을 때 Incorrect Password가 떴으니 콩그래츠가 뜨도록 풀어보자.. 우린 Congratulation!!을 원하니 그 곳을 더블클릭해서 해당 코드로 이동했다. 0040110B, 00401112를 보면 JNZ 00401135라고 되어있당 JNZ: Jump if Not Zero, 제로가 아닐..
SuNiNaTaS 16 (SYSTEM 155pt)
다운로드 버튼을 클릭하면 packet_dump.zip 파일이 다운되고, 그 안에는 피캡 파일이 있다. 지문에 회원을 위한 비밀번호를 찾으라고 했으니 로그인 폼, http 프로토콜이라고 생각해서 필터를 설정했다. 필터링해도 패킷이 엄청 뜨는데 그 중에 로그인 넘기는 POST만 찾아보니 6개가 나왔다. 클라이언트(써니나타스 회원)이 10.16.7.21, 서버(써니나타스)가 211.233.89.203이넹 패킷 하나 하나 들어가보니 Hid, Hpw가 들어있다. 위 6개 패킷을 다 확인했더니 다 다른 id, pw가 6쌍이 나왔다. 하나하나 해보자.. 그런데 일단 패킷에 나온 URL은 죽었다 그래서 써니타나스 홈페이지 로그인 폼에 시도해봤다.. 1. suninatas - suninatas: 로그인 실패 2. bla..
SuNiNaTaS 9 (REVERSING 144pt)
닥 이 사이트를 방문하자 Download를 누르면, SuNiNaTaS.zip 파일이 다운로드 되고 그 안에는 Project1.ext라는 실행파일이 들어있다. 그리고 압축을 푸려면, 암호를 입력해야 한다. 암호는 suninatas, 문제에 주어져있다. Project1.exe를 열어보자. 실행시키면 위의 프로그램이 뜨는데 뭔지 모르겠어서 올리디버거로 열어봤다. 봐도 잘 모르겠어서 일단 문자열부터 보기로 했다. 프로그램에 사용된 문자열 추출하기: 마우스 오른쪽 클릭 - Search for - All referenced text strings Congratulation 위에 913465라는 딱 봐도 AuthKey인 것 같은 숫자가 있다. 그대로 입력하니 풀렸다! 문제는 풀었지만 이제 막 리버싱을 시작한 내가 문..
SuNiNaTaS 5 (WEB 301pt)
핵심 소스는 아래와 같다. 음.. eval함수로 감싸져있는데 도대체 무슨 소린지 알 수가 없다. 난독화 코드다. 이를 난독화된 코드를 어떻게 해석할 수 있는지가 이 문제의 관건인 것 같다. 코드 마지막엔 Hint도 있는데 이후에 어떻게 활용할 지도 알아봐야 할 것 같다. 아마 저 password 폼에 넣는게 아닐까 싶다. 일단 자바 스크립트 코드 난독화 / 난독화 해석 사이트를 찾았다. -난독화 http://dean.edwards.name/packer/ /packer/ Copyright © 2004-2020 Dean Edwards. All rights reserved. dean.edwards.name -난독화 해석 https://beautifier.io/ Online JavaScript beautifie..