반응형
반응형
반응형

H3X0R CTF에서 못 풀어보았던 문제들을 다시 풀고 그 풀이를 적어보았습니다.



3D



윈도우의 3D paint === 그림판 3D의 프로젝트 파일들이다.





그림판 3D를 실행시킨다.




다른이름으로 저장에서 그림판 3D 프로젝트로 저장을 클릭한다.




아무이름으로 저장한다.

그리고 그림판 3D를 종료한다.




그림판 3D의 프로젝트 파일이 위치한 경로로 이동한다.

%localappdata%\Packages\Microsoft.MSPaint_8wekyb3d8bbwe\LocalState\Projects



Checkpoint 라는 폴더가 생성되어 있다.




해당 폴더의 파일들을 모두 문제 파일들로 덮어쓴다.




다시 그림판 3D를 실행하고 아까 저장해두었던 프로젝트를 연다.




상단에 3D보기를 활성화하고 글자와 상자를 옆으로 치운다. 

그리고 플래그를 뒤집는다. 하단의 회전도구를 이용해 180도 돌려주었다.




3D보기를 비활성화 한다. 그러면 플래그가 보인다.


FLAG : H3X0R{So_Useful_Paint_3D}

'}'가 없지만.. 채워준다.





Git Advance1




git reflog를 본다. 

d819cad 가 FLAG_COMMIT 이다.




git checkout d819cad를 하고 git log를 보면




flag를 찾을 수 있다.


FLAG : h3x0r{g1t_g1t_dhtrlt_lets_g1t}


반응형

'CTF Write Up' 카테고리의 다른 글

YISF 2018 예선 write-up  (0) 2018.08.15
KYSIS CTF 2018 Write-Up  (0) 2018.08.07
KDMHS CTF 2018 Write-up  (0) 2018.06.18
H3X0R 4rd CTF 2018 [easy_png] Write-up  (0) 2018.06.14
CODEGATE 2018 OPEN CTF Write-up  (0) 2018.04.06
반응형

Reversing


EZPZ



EZPZ.exe 파일이 하나 주어진다.


해당 파일을 Exeinfo PE로 까보면 C#으로 작성된 파일임을 알 수 있다.








따라서 해당 파일을 .NET Reflector로 열었다.



EZPZ.exe > EZPZ > EZ > button1_Click(Object, EventArgs) : Void 에서 플래그를 확인할 수 있다.


FLAG : dimi{Welcome_reversing}




이 이후로 봉사를 가야되서 한문제 밖에 못풀어봤다 ㅠㅠ


반응형

'CTF Write Up' 카테고리의 다른 글

KYSIS CTF 2018 Write-Up  (0) 2018.08.07
H3X0R 4rd CTF 2018 Write-up  (0) 2018.07.29
H3X0R 4rd CTF 2018 [easy_png] Write-up  (0) 2018.06.14
CODEGATE 2018 OPEN CTF Write-up  (0) 2018.04.06
제 1회 TEAMH4C CTF Write Up  (0) 2017.10.29
반응형

H3X0R 4rd CTF 2018 [easy_png] Write-up




아무런 이미지도 표시되지 않는 png파일이 주어진다.


이 파일을 HxD로 열어보았다.






마지막 부분을 보면, 49 45 4E 44 AE 42 60 82 IEND®B`‚ 으로 끝나야할 파일이 그 뒤에 데이터가 더 있음을 알 수 있다.

그 데이터를 보면 sRGB 로 시작하는데, 파일 헤더를 살펴보면 sRGB부분이 빠져있다.

그렇다면 이 마지막에 있는 sRGB부분이 헤더에서 빠진 sRGB부분일 것이다.






빠진 부분을 채워주었다.






그러고 나니 FLAG가 나왔다.

반응형

'CTF Write Up' 카테고리의 다른 글

H3X0R 4rd CTF 2018 Write-up  (0) 2018.07.29
KDMHS CTF 2018 Write-up  (0) 2018.06.18
CODEGATE 2018 OPEN CTF Write-up  (0) 2018.04.06
제 1회 TEAMH4C CTF Write Up  (0) 2017.10.29
[EKOPARTY CTF 2017] Malbolge  (1) 2017.09.17
반응형


4월 5월 코드게이트에서 이벤트로 진행되었던 OPEN CTF 일부 문제 풀이입니다.



- DoorLock Hacking

- Car Canbus Hacking





DoorLock Hacking


도어락의 펌웨어를 분석하여 비밀번호를 알아내서 도어락 해제후 안에 들어있는 FLAG를 얻으면 되는 것이었습니다.


주어진 펌웨어는 ARM에서 작동하는 32bit ELF 파일입니다.


IDA를 이용하여 분석하면 됩니다.




Shift + F12 단축키를 이용해 Strings를 확인 할 수 있습니다.





들어가보면 키패드 문자처럼 보이는 것들이 뜨네요.


여기서 스크롤을 위로 올라가다 보면




각 함수 하나에 정수 하나씩 있는 것을 확인 할 수 있습니다.


조합해보면 


19981217


누군가의 생일 같아 보이네요.


키패드를 누를때 *눌러 시작하고 #을 눌러 완료하면 됩니다.



도어락 비밀번호 : *19981217#


그후 안에 있는 FLAG를 확인 합니다.






Car Canbus Hacking


자동차 계기판에서 RPM을 5000으로 올리면 되는 문제.

-아두이노 불량인 줄 모르고 3시간 동안 삽질했었던....



문제를 풀기 위해선 아두이노와 캔통신모듈이 필요했습니다. 



힌트로 제공된 링크 :


http://orasman.tistory.com/282

http://bimmerforums.com/forum/showthread.php?1887229-E46-Can-bus-project




첫번째 링크 포스트를 통해 이두아노와 캔통신모듈의 배선 연결 표를 참고하여 연결할 수 있습니다.


아두이노를 설치한 후 다음 링크에서 라이브러리를 다운받아 설치합니다.

https://github.com/coryjfowler/MCP_CAN_lib



아두이노를 설치해 주고 위 링크에 있는 예제중 CAN_Send를 불러 옵니다.


기본 설정은 힌트를 참고해 수정해 줍니다.


MCP_16MHZ -> MCP_8MHZ

delay(100); -> delay(10);  # 사실 딜레이는 큰 상관이 없습니다.


CS는 10번핀에 꽂아줍니다.



이제 수정해야 할값은 ID와 DATA뿐입니다.


이것들은 두번째 링크를 참고해 줍니다.


우리한테 필요한부분은 RPM을 올리는 것이므로 RPM부분을 찾아봅시다.



ARBID: 0x316 (DME1) 
-B0
-B1 
-B2 RPM LSB
-B3 RPM MSB [RPM=(hex2dec("byte3"&"byte2"))/6.4]
-B4
-B5
-B6
-B7



설명을 보면 ID는 0x316, B0~B7은 DATA배열에서 각 설명입니다.

B2와 B3만 수정해주면 될 것 같습니다.


B3을 보면 RPM=(hex2dex("byte3"&"byte2"))/6.4 라는 식이 있습니다.


이 식의 의미는 B3 + B2 의 값을 10진수로 변환 하여 6.4로 나눈 값이 RPM이 된다는 것입니다.


여기서 B3 + B2의 의미는 예로 들면 B2 = 0xAB이고 B3= 0xCD일때 0xCDAB가 되는 것입니다.



우리는 RPM = 5000으로 만들어야 합니다.


5000 x 6.4 = 32000, dex2hex(32000) = 0x7D00


B3 = 0x7D, B2 = 0x00 이 되겠네요.



위의 값을 가져와 코드를 수정해 줍시다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <mcp_can.h>
#include <SPI.h>
 
MCP_CAN CAN0(10);     // Set CS to pin 10
 
void setup()
{
  Serial.begin(115200);
 
  if(CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_8MHZ) == CAN_OK) Serial.println("MCP2515 Initialized Successfully!");
  else Serial.println("Error Initializing MCP2515...");
 
  CAN0.setMode(MCP_NORMAL);   // Change to normal mode to allow messages to be transmitted
}
 
byte data[8= {0x000x000x000x7D0x000x000x000x00};
 
void loop()
{
  byte sndStat = CAN0.sendMsgBuf(0x31608, data);
  if(sndStat == CAN_OK){
    Serial.println("Message Sent Successfully!");
  } else {
    Serial.println("Error Sending Message...");
  }
  delay(10);
}
cs



이후 아두이노에 코드를 업로드 하면 계기판의 RPM이 5를 가리키고 있는 것을 확인 할 수 있습니다.

반응형

'CTF Write Up' 카테고리의 다른 글

KDMHS CTF 2018 Write-up  (0) 2018.06.18
H3X0R 4rd CTF 2018 [easy_png] Write-up  (0) 2018.06.14
제 1회 TEAMH4C CTF Write Up  (0) 2017.10.29
[EKOPARTY CTF 2017] Malbolge  (1) 2017.09.17
CRC CTF 2017 Write-up  (0) 2017.09.13
반응형

제 2회 TeamH4C CTF 2020 Write-up 보러가기(클릭)



제 1회 TEAMH4C CTF Write Up


[Forensics] ArchiveFun


Stage 1 에서 Stage 10 까지 가야 한다.


stage1.zip 안에 stage2.yz1 이 있다.

yz1 압축파일은 IZArc 라는 프로그램으로 풀 수 있다.


그러면 stage3.zip를 얻을 수 있다.

stage3는 폴더 안에 폴더 안에 폴더...로 있기 때문에 HxD로 열어서 PK시그니처 부터 Dump 해서 zip파일을 만들어 준다.



stage4.zip 안에 힌트와 stage5가 있다.

힌트에는 Compressed by LZMA2 , LZMA2로 압축되어졌다고 한다. 이 압축파일은 7z로 풀 수 있으므로 stage5의 확장자를 7z로 바꾸어 주면 되는데

시그니처 부분이 비워져 있기 때문에 37 7A BC AF 27 1C 를 넣어 주어야 한다.



stage5.7z 안에 힌트와 samefilewithanother.txt 와 stage6.zip이 있다.

stage6.zip 안에는 힌트, samefilewithanother.txt, stage7.zip이 패스워드가 걸려 있다.

여기서 막혔는데 힌트가 printable,글자 수 모름 이라서 5자리까지 brute force 를 했지만 뚤리지 않았다. 

푸신 분은 pkcrack으로 평문공격하면 된다고 하셨다..



[MISC] deasiestone


-와 +로 이루어진 문자열을 준다.

--+----+ -+++-+-- -++----+ -++-+-++ -++--+-+ -++-++-+ --++--++ -+---+-- --++---- -+++-+++ -++-+++- -+++-+-- --++---- -+++-+-- -++-+--- -++--+-+ -+++---- --++-+-- -+-+--+- --++-+-- -+---+-- -+--+--+ -+-+--++ --++--++ -++---++ --++---+ -+++-+-- -++++--+ --+----+

-를 0으로 보고 +를 1로 보았을 때 모두 각 첫 바이트가 0으로 시작하는 ASCII 범위의 값들이기 때문에

- +를 각각 0 과 1로 치환하여 ascii로 바꾸어 주면 된다.


!takem3D0wnt0thep4R4DIS3c1ty!


FLAG : h4c{!takem3D0wnt0thep4R4DIS3c1ty!}



[MISC] Modulation


docx파일을 준다. docx는 zip으로 풀 수 있기 때문에 zip으로 풀어준다.



document.xml 를 보면 가사 속에 HEX값이 있다. 누가 봐도 플래그 값이다.


FLAG : h4c{W0W!!Sunmi_is_b3au7iFul!!}



[MISC] What The Issue


what_issue 라는 파일이 있다.


HxD로 열어보면 hex값이 0과 1로만 이뤄져 있다.


ascii로 WhatarethefullnamesofexploitablevulnerabilitiesinWPA2? 가 나온다.


What are the full names of exploitable vulnerabilities in WPA2? 의 답은 KRACKS 의 풀네임 Key_Reinstallation_Attacks 이다.


FLAG : h4c{Key_Reinstallation_Attacks}



[MISC] ExtremeJPG


용량이 매우 크다. Hxd로 봤을때 jpg의 헤더가 계속 나오는 것을 알 수 있었다.

foremost 명령어를 사용해 jpg파일들을 추출 했다.



1000개의 jpg중 중간에 하나 플래그가 적혀있는 이미지가 있다.



FLAG : h4c{w0w_y0u_kn0w_jp9_f1l3_3nd-s1gn4tur3@@_4nd_g00d..._..4t_pr0gramm1ng..!}



[MISC] Scratch


페이지 소스를 보면

다 nohack 인데 하나만 flag 뒤집은 galf로 되어 있다. 그 값인 IzFzdGhpc3MwbTNraW5kT2ZKb2tlPz8j 를 base64 디코딩 해주면 된다.



#1sthiss0m3kindOfJoke??#


FLAG : h4c{#1sthiss0m3kindOfJoke??#}



[Pwnable] SCIJ



사용자로부터 문자열을 받고 필터링을 한 뒤 /bin/echo 와 사용자로부터 받은 문자열을 붙인다.

그리고 그 것을 system함수로 보내준다.


필터링을 하는 부분에서 &를 필터링 하지 않기 때문에 a && ls를 쓰면

echo a; ls; 와 같은 명령어 사용이 된다.


a && ls 를 보내고, a && cat flag.txt 를 해서 flag를 얻었다



반응형

'CTF Write Up' 카테고리의 다른 글

H3X0R 4rd CTF 2018 [easy_png] Write-up  (0) 2018.06.14
CODEGATE 2018 OPEN CTF Write-up  (0) 2018.04.06
[EKOPARTY CTF 2017] Malbolge  (1) 2017.09.17
CRC CTF 2017 Write-up  (0) 2017.09.13
Tokyo Westerns CTF 3rd 2017 write up  (0) 2017.09.04
반응형

CRC CTF write up (M4ndU).pdf


CRC CTF write-up 입니다.

반응형
반응형

1. Welcome!!



flag : TWCTF{Welcome_To_TWCTF2017!!}





2. Rev Rev Rev


간단한 리버싱 문제다.




32bit ELF 파일이기 때문에 IDA 32bit로 열어보았다.




2개의 분기점을 통과한다. 피해야할 주소값과 가야할 주소값을 찾아서 angr을 이용해 풀었다.




exploit.py

1
2
3
4
5
6
7
8
9
10
11
12
13
import angr
 
 
def main():
= angr.Project("./rev",load_options={'auto_load_libs':False})
ex = p.factory.path_group()
ex.explore(find=0x804867c, avoid=(0x804860d0x804868e))
ex.run()
return ex.found[0].state.posix.dumps(0).split('\0')[0]
 
 
if __name__ == '__main__':
print (main())

cs






Flag : TWCTF{qpzisyDnbmboz76oglxpzYdk}


반응형

'CTF Write Up' 카테고리의 다른 글

[EKOPARTY CTF 2017] Malbolge  (1) 2017.09.17
CRC CTF 2017 Write-up  (0) 2017.09.13
[YISF CTF 2017 예선] For 100 , '프로젝트 유출'  (0) 2017.08.11
[YISF CTF 2017 예선] For 50 , '문제유출'  (0) 2017.08.11
[Bugs_Bunny CTF] Crypto-50  (0) 2017.07.31
반응형

압축을 풀면 파일이 하나 나온다.


[Forensic] Leakage of confidential Project.E01


hex로 보았을 때 for 50 문제와는 다르지만 문제에서 이미지 파일이라고 했기 때문에 이번에도 Access Data 의 FTK Imager로 열어보았다.


정상적으로 열렸다. 유저가 '박코드' 라는 사람이라서 유저폴더에 OxCODE 폴더에 들어간다.


메세지를 주고받는 프로그램들을 모두 살펴보아야 하는데 윈도우 기본 앱이라고 해도 감을 못잡았다가 나중에 메일 앱이라는 힌트를 보고 메일이 저장되는 경로를 검색해 보았다.


메일 앱의 메일은 Users\[유저이름]\Local\Comms\Unistore\data\3 폴더에 저장된다고 한다.


해당 경로로이동하면 a 부터 p 까지의 이름이 붙은 폴더들이 존재하고 그 중 a,d,e,g,h,j,k,m,n,p 폴더에 .dat 확장자를 가진 파일이 있다.


xml로 보면 될거 같아 확장자명을 xml로 바꾸고 인터넷 브라우저로 보았다. 그러면 데이터가 한글로 바뀌여서 읽을 수 있게 된다.

그러나 창에 뜬 내용만으로는 부족하거나 표시가 안되기도 하기 때문에 소스보기로 내용을 봐야 한다. 그러면 저장된 내용을 다 확인할 수 있다.




n폴더에 담긴 내용에 프로젝트 파일 다운로드 링크가 있으며


p폴더에 파일을 열 비밀번호가 있다. 비밀번호를 이용하여 문서를 열어보면 맨 밑에 FLAG가 있다.


FLAG : YISF{S0ME_W1ND0WS_4PP_HA5_EVIDENC3_A8OUT_U5ER'S_BEHAVI0R}




반응형

'CTF Write Up' 카테고리의 다른 글

CRC CTF 2017 Write-up  (0) 2017.09.13
Tokyo Westerns CTF 3rd 2017 write up  (0) 2017.09.04
[YISF CTF 2017 예선] For 50 , '문제유출'  (0) 2017.08.11
[Bugs_Bunny CTF] Crypto-50  (0) 2017.07.31
[Bugs_Bunny CTF 2017] Crypto-15  (0) 2017.07.31
반응형

순천향대학교 청소년 정보보호 페스티벌


포렌식 50점 문제


해당 문제는 용량 때문에 당일날 몇 시간전에 사전 배포되었다.



문제 내용은 대회가 끝나버리면서 스샷을 저장하지 못했다...





대회가 시작되고 공개된 비밀번호로 압축을 풀어준다.


[Forensic]Leakage of Challenges.ad1


FxD로 열어보니 


41 44 53 45 47 4D 45 4E 54 45 44 46 49 4C 45 00   ADSEGMENTEDFILE.

 

으로 시작한다.


AccessData의 FTK Imager 으로 열어보면 된다.


문제에 웹 브라우저를 사용했다라고 되어있었고 크롬이 설치되어 있으므로 크롬의 데이터들을 찾아 보았다.


일단 방문기록을 확인해본다.

G:\Forensic 50\Users\InJung\AppData\Local\Google\Chrome\User Data\Default

에서 History 파일에 저장되어있다.


이 파일은 DB Browser for SQLite로 열어볼 수 있다.


urls 테이블을 보면 특정 사이트로 추정되는 http://www.nonamed.xyz 를 찾을 수 있다.

해당 사이트에 들어가면 여러 게시물들이 뜬다. 




(이때 flag값을 얻을 수 있을 것이라 생각했지만...)

5번째 글은 비밀글로 되어있었다... ID와 PW를 얻기 위해 방문기록을 얻었던 같은 디렉토리에서 Login Data를 추출해서 확인을 해보았다.

ID는 얻을 수 있었지만 PW는 암호화되어 있었다.


이 암호화된 PW를 decrypt 하기 위해 많은 삽질을 했었다..

OSForensics라는 프로그램을 설치하고 비밀번호를 알아내려고 했다. 내 크롬에 저장되어있는 아이디와 비밀번호가 잘 표시되길레

문제에서 추출했던 Login Data를 내 것과 바꿔치기 해서 재시도를 해보았다. 될 것이라 생각했는데 decrypt 실패라고 떴다.

왜지..라고 생각하다가 유저폴더를 통째로 추출해서 내 컴의 유저 폴더에 집어넣고 재시도 했더니 decrypt가 되버렸다.





이렇게 얻은 ID 와 PW를 사용하여 사이트에 로그인하면 비밀글을 확인할 수 있다.



FLAG : YISF{SOme7imes_W3bBr0w5er_St0r3d_y0uR_Pa$$worD!}



반응형

+ Recent posts