CTF/CTF-d

[ CTF-d ] Multimedia - 사진 속에서 빨간색이…

pental 2019. 11. 17. 15:42

단순히 빨간색을 뽑아내면 되는것 같은 문제였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import cv2
import matplotlib.pyplot as plt
photo = cv2.imread("hidden.png")
RGB = cv2.cvtColor(photo, cv2.COLOR_BGR2RGB)
= RGB.copy()
R[:,:,1= 0 # 1: 초록색 없애기
R[:,:,2= 0 # 2: 파란색 없애기
# 초록색만 뽑기
= RGB.copy()
G[:,:,0= 0 # 0: 빨간색 없애기
G[:,:,2= 0 # 2: 파란색 없애기
# 파란색만 뽑기
= RGB.copy()
B[:,:,0= 0 # 0: 빨간색 없애기
B[:,:,1= 0 # 1: 초록색 없애기
plt.subplot(141# 1행 2열에서 1번째 열
plt.imshow(RGB)
plt.subplot(142# 1행 2열에서 2번째 열
plt.imshow(R)
plt.subplot(143# 1행 2열에서 2번째 열
plt.imshow(G)
plt.subplot(144# 1행 2열에서 2번째 열
plt.imshow(B)
plt.show()
cs

그래서 빨간색, 초록색, 파란색을 뽑기위한 소스를 짰지만..

Image1. Extract Red, Green, Blue

결과는 놀라웠다. 정말 아무것도 나오지 않았으니 말이다.

LSB SteganoGraphy 라는 기법이 생각나서 바로 디코딩 시작.

https://incoherency.co.uk/image-steganography/#unhide

 

Image Steganography

Each channel (red, green, blue) of each pixel in an image is represented by an 8-bit value. To hide the secret image inside the cover image, we replace the n least significant bits of the cover pixel value with the same number of most significant bits from

incoherency.co.uk

소스 짤 능력이 안되니 이걸로 디코딩..

Image2. Decode Hidden.png
Image3. Flag

FLAG : tjctf{0dd5_4nd_3v3n5} 

Image 4. Correct Image.