-
사이트를 처음 방문하면 다양한 새 사진 갤러리와 자신의 새 사진을 제출할 수 있는 업로드 페이지로 이동하는 링크만 표시된다.
설명에 따르면 "최첨단" 조류 방지 기술로 보호되기 때문에 일종의 필터링이 진행되고 있다는 것을 알 수 있다.
(이미지 메타데이터에 새 이름이 포함되어 있을 경우에만 허용되는 필터링이 있었다.)
이미지 메타데이터 필터링을 우회하고 파일 업로드 취약점을 이용해 푸는 문제인 줄 알았다.
확장자를 엉망으로 만들어도 업로드가 되는 것을 보고 이미지 뒤에 웹셸을 삽입해 업로드 하였지만 파일 업로드 후 웹 서버 어디에 저장되었는지를 도통 알 수 없었다. (
파일 업로드 경로를 알려고 몇 시간 동안 계속 뻘짓을 하였다. 그래서 CTF 도중에는 풀지 못하였다..ㅋㅋ)
알고보니 이 문제는 이미지 메타데이터에 SQL 공격 페이로드를 삽입해 SQL Injection 취약점으로 푸는 문제였다.
우선 doves.sdc.tf 에서 아무 사진이다 다운 받았다. (메타데이터에 새이름이 적혀 있기 때문에 필터링에 안걸림)
https://dove.sdc.tf/img/birds/blue_tailed_bee_eater.jpg
이미지 메타데이터에 삽입할 SQL Injection 공격 페이로드는 아래와 같다.
Payload : ' UNION SELECT id,password,password FROM employee_accts WHERE password LIKE ' %ctf%' --
메타데이터를 삽입하기 위해서 exiftool을 사용하였고
ExifTool by Phil Harvey
0 (Information Type) AFCP, AIFF, APE, APP0, APP1, APP11, APP12, APP13, APP14, APP15, APP3, APP4, APP5, APP6, APP8, ASF, Audible, CanonVRD, Composite, DICOM, DNG, DV, DjVu, Ducky, EXE, EXIF, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font, FotoStat
exiftool.org
$ exiftool -Description="' UNION SELECT NULL,password,NULL FROM employee_accts WHERE password LIKE '%sdctf%' -- " ./blue_tailed_bee_eater.jpeg
위의 명령어로 이미지 메타데이터에 SQL Injection 공격 페이로드를 삽입해주었다.
여기서 BurpSuite를 사용하여 파일 업로드 요청을 캡처하고 ' 을 ' 로 바꿔주어야 한다.
그렇지 않으면 SQLite ERROR가 뜬다.
바꾼 후 요청을 보내보았고 아래와 같이 Flag를 확인할 수 있다.
Flag : sdctf{th3_e4r1y_b1rd_n3rd_g3t5_the_fl4g_a1e45fb4}
'CTF > San Diego CTF 2022' 카테고리의 다른 글
[SDCTF 2022] CURL Up and Read (0) 2022.05.09 [SDCTF 2022] HuMongous Mistake (0) 2022.05.09 [SDCTF 2022] JaWT that down! (0) 2022.05.09 [SDCTF 2022] Lots of Logs (0) 2022.05.09 댓글