일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 |
29 | 30 |
- Allocation Starategy
- 사이버보안학과
- webhacking
- 스케줄링
- Dreamhack
- Whois #AjouUniv #정보보안교육 #Pwnable
- N0Named
- 아주대학교 #Whois #정보보안교육 #4주차
- systemhacking
- N0NamedWargame #mandu-mandu #forensics #left_side_B
- N0NamedWargame #AjouUniv #mandu-mandu #forensics
- AjouUniv #Whois #정보보안교육 #Pwnable
- N0NamedWargame #mandu-mandu #forensics #길에서주어온만두
- Variable Partition
- 운영체제
- Pwnable
- 아주대학교
- ftz
- Whois #정보보안교육 #Ajou
- SuNiNaTaS #mandu-mandu #AjouUniv #forensics
- AjouUniv #SuniNatas #Web
- AjouUniv #Whois #정보보안교육
- 코딩도장
- HackCTF
- Whois #정보보안교육 #webhacking.kr
- hackerschool
- Memory Virtualization
- Whois #정보보안교육 #AjouUniv #Pwnable
- AjouUniv #Whois #Reversing
- python
- Today
- Total
chipkkang9's story
[N0Named Wargame Season2] Left Side B 본문
준비물: task.bmp, HxD, Visual Studio 2019

우선 task.bmp를 다운받아 열어보자.

음... 아무래도 NND{fake_flag}가 flag는 아니겠지..? 일단, 힌트에서 말하는 '문제 이름에 힌트가 있다'가 무슨 의미일지 생각해보았다. .bmp 확장자는 비트맵으로 되어있는 디지털 그림을 저장하는 데 쓰이는 그림 파일 서식이다. 그래서 힌트 그대로 '왼쪽에.. 있는... B..?' 라고 생각을 하다가 비트맵이기 때문에 우선은 확대를 해보기도 했지만, 특이점이 없어서 일단 HxD에 넣고 분석하기 시작했다.

.bmp 확장자는 [42 4D] 형태의 header signature, footer signature는 특별히 지정되어 있지 않다. 결론은 올바른 형태의 header signature를 가지고 있다는 것이다. '그럼 어떤 것이 문제일까?' 라는 마음으로 아래로 스크롤을 내려 보았다.

이게 뭘까? 하다가 교육 때 다루었던 LSB(Lease Significant Bit) 페이지가 생각났다. LSB는 말 그대로 '최하위 비트'를 의미하여, FE는 0을, FF는 1만을 가리키도록 하는 즉, 짝수인지 홀수인지를 판별하는 위치이다.

교육에서 본 LSB 페이지를 참고하면, 2진수 11111110은 16진수로 FE로 표현이 가능하고, 2진수는 11111111은 16진수로 FF로 표현이 가능하다. 그래서 FE는 0으로, FF는 1로 기억해서 처음부터 8자리를 한 번 바꿔줘보았다.
FE FF FE FE FF FF FF FE => 0 1 0 0 1 1 1 0 이렇게 변하게 된다. 이렇게 변환한 이진수를 다시 16진수로 바꾸면 78이 나오며, 이는 아스키코드상 'N'을 가리킨다. 딱히 다르게 번쩍이는 아이디어가 없어서 하나씩 이진수로 바꾸어주고 있었는데, '내가 왜 이런 미련한 짓을 하고 있을까..'하는 생각이 들어서 이를 자동으로 변환해주는 프로그램을 뚝딱 만들었다.

이렇게 [뭔가 이상한 부분]을 넣고 결과를 확인하면, 아래와 같은 결과가 나오게 된다.
01001110 01001110 01000100 01111011 01101100 01101001
01110011 01110100 01100101 01101110 01011111 01101100
01101001 01110011 01110100 01100101 01101110 01011111
01001001 01000011 01000001 01001110 01011111 01101100
01101001 01110011 01110100 01100101 01101110 01111101
결과를 또 하나씩 아스키코드로 변환해주다가, 이건 좀 아니다... 싶어서 이전에 다른 풀이자들이 어떻게 풀었는지를 보았더니 이진수를 아스키코드로 변환해주는 사이트를 발견했다. 그래서 적극 활용해주었고, 플래그가 제대로 나왔다!

플래그를 찾았지만, 아직도 힌트의 의미가 무엇인지는 잘 모르겠다... ㅠㅠ
레퍼런스
이진수를 아스키코드로 변환하는 사이트를 찾은 곳
[N0Named wargame] [C] Left Side B
문제에서 제목이 힌트라고 하는데, 일단 zip 파일을 열어보았다. 안에는 task.bmp 파일이 들어있다. 아무래도 이미지 파일이니까 스테가노그래피 문제 같고, 문제 제목이 힌트라고 해서 LSB 스테가
sseddi.tistory.com
'CTF > Forensic' 카테고리의 다른 글
[N0Named Wargame Season2] 우리의 추억들 문제풀이 (0) | 2021.07.20 |
---|---|
[N0Named Wargame Season 2] infect 문제풀이 (0) | 2021.07.20 |
[N0Named Wargame Season2] 길에서 주어온 만두 문제풀이 (0) | 2021.07.14 |
[N0Named Wargame Season2] 입사 테스트[2] 문제풀이 (0) | 2021.07.14 |
[N0Named Wargame Season2] MagicIMAGE 문제풀이 (2) | 2021.07.14 |