간단한 스테가노그래피 문제
문제 자체는 어렵진 않은데 중간에 훼이크가 좀 있어서 시간을 좀 잡아먹었다.
문제파일로 ezoterik.jpg 파일이 주어진다.
ezoterik.jpg 파일을 열어보면 이런 사진이다.
사진 중간을 보면 이렇게 알수없는 기호들이 나열되어있는것이 보이는데
사실 이건 프로그래밍 언어다.
이렇게 + [ - > < . 기호로 이루어진 언어는 BrainFxxx 이라고 한다.
(x로 적었으나 모두가 생각하는 그 단어가 맞다.)
위키피디아를 찾아보면 실제 있는 언어인걸 알 수 있다.
당연히 실제로는 잘 사용되지 않는 언어이고, 이름처럼 그냥 장난처럼 만들어진 언어이다.
일단 저걸 먼저 해석해봐야겠다 싶어서
저걸 일일이 다 메모장에 받아적어서 컴파일 해봤는데
아무것도 안나왔다..
그냥 훼이크였던 것이다.
HxD 프로그램을 이용해서 ezoterik.jpg 파일을 열어보면
파일 맨 앞에 FF D8 이라는 문자열이 나오는것을 볼 수 있다.
이런걸 파일 시그니처 라고 부르는데,
모든 JPG 파일은 맨 처음 시작할때 FF D8로 시작한다.
(보통 FF D8 FF E0 까지 4바이트 정도로 본다.)
마찬가지로 끝날때는 FF D9로 항상 끝이 나는데
주어진 JPG 파일에서 FF D9를 찾아보면,
FF D9에서 파일이 끝나지 않고, 아랫쪽에 이상한 문자열이 더 있는것을 볼 수 있다.
이런식으로 메세지를 JPG 파일안에 숨길 수 있다.
2TLEdubBbS21p7u3AUWQpj1TB98gUrgHFAiFZmbeJ8qZFb9qCUc8Qp6o86eJYkrm2NLexkSDyRYd3X9sRCRKJzoZnDtrWZKcHPxjoRaFPHfmeUyoxyyWQtiqEgdJR1WU4ywAYqRq7o55XLUgmdit6svgviN8qy72wvLvT2eWjECbqHdrKa2WjiAEvgaGxVedY8SRXXcU9JbP5Ps3RY2ieejz6DrF9NBD7mri2wrsyDs9gpVgosxnYPbwjGdmsq7GwudbqtJ7SeKgaStmygyfPast5F3ZKL9KeC2LzCeenffoZ4d4Cna7TZdkUsfdK1HNmoB46fo9jK5ENQwnWdPmZBnZ4h8uDxHpQF74rs3wPcpmch6Byu31och1cyz8JxgXkacHpTrGeAN2bEhRp8kDQpmPtj9QqaAgxTbam9hoB4mvtrRmRx5GnzzZoWW5qDxwMvgKCYWiLwtLcvjDZPNdHGbvFspFeCq7kBcTeyrjYeHxuwwwM1GpdwMdxzNiFK1jYkA4DUZRohuKxeyhBFiY9HuwD6zKf9nZMThoYwTGhAJR2d3GqVqXGsivAKLs1oBzrmH9V6vaMwAjM7Hu69TLfKHtZUThoiEDftxPJdraNxoQps3mFamNbT1U3kRdpAz5s5kq6i2jLBUjBjAdV9N8jWNqx4RgiaHTW5qqb8E6JvHgQyrVkLmMdsjoLAWaWZLRw2pQpBJehRsx1LU6wmAC1nfeLbdQxPmytaMUURBDhHVqPNxwThCzZsnA9RuKrYWGsmyTxCzVUEjvUXaU4hkoV62qn7G1TnVRiADNhRfMnxm8R2ZoSPxEhVaFyHvLweq
뒤에 있는 문자열 전체를 가져와 보았다.
알파벳 대소문자와 숫자로 이루어진게 뭔가 Base64로 인코딩 된 듯한 느낌이었다.
CyberChef(https://gchq.github.io/CyberChef) 사이트에서 Base64 디코딩을 해봤는데
의외로 이상한 문자열이 나왔다.
여러가지 시도해보다가 Base58로 디코딩을 해봤더니
정상적인 문자열이 나오는 것을 확인했다.
elevator lolwat 으로 시작해서
아래쪽에 action main 이라고 되어있는것으로 보아
프로그래밍 언어인거 같아서 찾아보니
Elevator 라는 프로그래밍 언어라고 한다.
아까 봤던 BrainFxxx 처럼 재미로 만든 프로그래밍 언어이다.
elevator lolwat
action main
show 114
show 116
show 99
show 112
show 123
show 78
show 111
show 116
show 32
show 113
show 117
show 105
show 116
show 101
show 32
show 110
show 111
show 114
show 109
show 97
show 108
show 32
show 115
show 116
show 101
show 103
show 111
show 95
show 52
show 120
show 98
show 98
show 52
show 53
show 103
show 121
show 116
show 106
show 125
end action
action show num
floor num
outFloor
end action
end elevator
전체 코드는 위와 같이 나왔는데
대충 봐도 뭔가 복잡한게 없고 그냥
show 000 이런형식이라 단순히 ASCII 코드를 print 하는 함수라고 생각했다.
show 뒤에 있는 숫자들만 모아서
CyberChef에서 From Decimal 을 이용해 ASCII 코드 디코딩을 해주면
플래그를 찾을 수 있다.
'CTF > 포렌식' 카테고리의 다른 글
[HouseplantCTF] Music Lab - 포렌식 / 스테가노그래피 / Audacity (61) | 2022.06.21 |
---|---|
[HouseplantCTF] Neko Hero - 포렌식 / 스테가노그래피 / Stegsolve (64) | 2022.06.20 |
[HackArmour CTF] Sussy - 포렌식 / 랜섬웨어 / Strings (44) | 2022.05.29 |
[EZCTF] Bernie - 포렌식 / 스테가노그래피 / steghide (70) | 2022.05.23 |
[UMDCTF] Sensitive - 포렌식 / PDF / Python (65) | 2022.05.12 |