NOT4DOG
방명록 RSS 태그 글쓰기 관리자
 
[CTF] Dreamhack strcmp 문제 Write-up
CTF Write-up 2021-12-30 13:25:26

반응형

문제)

if you can bypass the strcmp function, you get the flag.

 

strcmp (문자열 비교 함수)우회하라는 문제이다.

먼저 메인 페이지에 접속해보았다.

Main Page 화면

password를 입력하는 창Source Code를 제공하고 있다. Source Code를 보면,

password는 md5로 random한 값을 생성하고 그 값에 sha1 암호화방식까지 사용되어

brute force로는 불가능하다. 문제에서 strcmp 함수를 우회하라고 했으니,

brup suite을 사용하기로 하였다.

PW 123을 입력한 화면

테스트로 '123' 을 넣어 보았는데 당연하게도 (Wrong password..) 실패했다.

하지만 페이지에서 제공한 Source Code에서 이 페이지가 php 언어로 만들어졌음을 알았다.

php에는 널리 알려진 strcmp 취약점 중 하나가 있는데

 

php strcmp함수에는 $a값에 문자열이나 숫자열이 아닌 배열을 인자로 넣으면

반환 값을 비교 값이 같은 0으로 출력하는 취약점이 있다.

 

결국 반환값은 0이 되어, 언제나 True가 된다. 이 점을 이용하였다.

 

PW 값에 배열을 적용한 화면 (취약점 이용)

 

FLAG 획득

 

반응형


[CTF] Dreamhack command-injection-1 문제 Write-up
CTF Write-up 2021-12-29 23:53:46

반응형

문제) 특정 Host에 ping 패킷을 보내는 서비스입니다.
          Command Injection을 통해 플래그를 획득하세요. 플래그는 flag.py에 있습니다.

 

메인페이지에 들어가보면 Ping을 점검할 수 있는 페이지가 나온다.

Ping이란 IP주소를 통해 정상적인 연결여부를 확인할 수 있는 네트워크 점검 명령어이다.

Main Page

구글 (8.8.8.8)로 ping을 해본 화면이다.

ping 명령어는 정상작동하며, 문제에서 Command Injection 이라 했으므로,

Host IP를 입력하는곳에 명령어를 Injection 하는것으로 보인다.

구글(8.8.8.8) ping test

이번에도 역시 Brute Suite를 이용하여 진행하였다.

Web Injection 관련 문제에는 이만한 도구가 없다.

먼저 Brute Suite로 리눅스 기본 명령어 중 하나인 ls를 정규표현화해서 넣어보았다.

ls 명령어가 수행된 모습

ls로 현재 디렉토리에 있는 파일들을 출력하였는데 

문제에서 말한 flag.py를 바로 찾을 수 있었다.

cat 명령어로 flag.py의 내용 확인

이번엔 ls가 아닌 cat 명령어로 flag.py 파일의 내용을 확인하고자 했다.

정규표현식을 지키기 위해 "의 위치에 유의해야 한다.

FLAG 획득

FLAG를 획득할 수 있었다.

반응형


[CTF] Dreamhack web-misconf-1 문제 Write-up
CTF Write-up 2021-12-29 23:25:36

반응형

문제) 기본 설정을 사용한 서비스입니다.
          로그인한 후 Organization에 플래그를 설정해 놓았습니다.

 

문제에서 FLAG의 위치를 알려주길래 조금 놀랐다.

우선 Main Page에 접속하였다.

Main Page 화면

Grafana 페이지가 나왔는데 찾아보니 웹 서버 관리 페이지로 보인다.

우선 아무런 정보도 없으니 제일 흔한 admin/admin으로 로그인 시도를 하였다.

로그인 성공?

admin/admin으로 로그인에 성공하였다.

wargame 문제에선 흔한 일이긴하다. Brute force도 방법의 일종이니 넘어간다.

Server Admin Setting Page

서버 관리자 설정메뉴를 둘러보던중에 싱겁게도 FLAG를 획득할 수 있었다.

문제에서 "로그인한 후 Organization에 플래그를 설정해 놓았습니다." 라고 했는데 

Organization_name 항목에 평문으로 저장되어 있었다.

DH{default_account_is very dangerous}

 

반응형


[CTF] Dreamhack broken-png 문제 Write-up
CTF Write-up 2021-12-29 22:57:06

반응형

문제) 드림컴퍼니에서 디자이너로 일하는 드림이는 직장 동료에게 내일 사용해야 하는

          드림뱅크의 홍보 이미지를 메일을 통해 전달 받았습니다.

          하지만 이메일 전송 과정에서 문제가 발생해 이미지가 정상적으로 전달되지 않았습니다.

드림이: 전달해주신 홍보 이미지가 원래 정사각형으로 알고 있는데,
               반밖에 오지 않은 것 같아요! 다시 보내 주실 수 있나요?
드림뱅크 직원: 담당 직원이 어제 퇴사를 해서
                            지금 당장 이미지를 다시 전달 드리기 어렵습니다.

드림이: 네?

드림이를 위해 오늘 오후 6시까지 깨진 이미지를 복구해주세요!

 

image.png 파일을 준다.

FLAG 확인이 불가능한 이미지

이 문제는 보자마자 Signature Code 가 생각날수밖에 없는 문제다.

그래서 Hex Editor로 image.png의 Hex Code를 들여다보았다.

.PNG 파일 고유의 Signature Code에는 문제가 없다. (89 50 4E 47 0D 0A 1A 0A)

하지만 Signature Code가 아닌 IHDR 부분 이후에 이상한 점을 발견할 수 있었다.

IHDR 이란 Chunk (공통된 데이터를 가지고 있는 데이터들의 집합을 일컫는다)

                        중요 Chunk에는 IHDR, IDAT, PLTE, IEND Chunk가 있다.

image.png의 Hex Code

 

표시한 빨간색 부분이 이미지의 너비, 파란색 부분이 이미지의 높이를 저장하는데

문제에서는 분명 정사각형의 이미지 파일이라고 나와있다. 하지만 너비와 높이의 길이가 각각

01과 02로 직사각형 모양의 이미지 파일로 저장이 되어있었다.

 

그래서 수정을 통해 너비와 높이의 길이를 서로 같게 해주고 저장하였다.

(정사각형이므로 → 02, 02)

IHDR 너비, 길이 관련 Hex Code 수정

 

저장 후 같은 image.png 파일을 다시 열어보면 FLAG의 확인이 가능하다.

FLAG 획득

반응형