본문 바로가기

#CTF 2021

RITSEC CTF 2021 Write up

반응형

금요일, 09 4 2021, 16:00 UTC — 일요일, 11 4 2021, 16:00 UTC

 

https://ctftime.org/event/1309

[Forensics]

 

git clone을 한 후 디렉터리를 확인해 보면 flag.txt파일이 있다. 

하지만 파일 안에는 아무것도 적혀있지 않다.

 

git branch -r 

원격 저장소의 branch 정보를 보여 준다.

origin/!flag가 있다.

 

git checkout [원격 저장소의 branch 이름] 

해당 branch로 이동할 수 있다.

 

다시 flag.txt파일을 확인해보면 플래그가 적혀있다.

Flag : RS{git_is_just_a_tre3_with_lots_of_branches}


 

BIRDTHIEF_FYSA.pdf

pdf를 보면 4페이지에 검은색으로 무언가를 가려놓았다.

드래그를 해도 아무것도 나오지 않아 이미지인가 싶어 foremost로 확인해보았다.

 

>> foremost BIRDTHIEF_FYSA.pdf

 

Flag : RS{Make_sure_t0_read_the_briefing}

 


InceptionCTFRITSEC.7z 압축을 풀면 Reality.7z파일이 나온다.

또 압축을 풀게 되면 Subconscious.txt파일과 VanChase.7z파일이 있다.

 

Subconscious.txt

Flag : RITSEC{Dreamland}


Inception CTF : Dream2

225

Unfortunately, the subconscious isn’t enough for this mission, we have to kidnap Fischer we need to go further into the system of the mind. Use the flag found to edit the PowerShell script, entering the Flag in line three in-between the single quotes. Run the PowerShell script and wait for it to complete its actions.


 

VanChase.7z파일에 암호는 첫번째 플래그이다.

pw = Dreamland

 

압축을 풀면 Kicks.ps1파일과 Kidnap.txt파일, TheHotel.7z파일이 나온다.

 

Kidnap.txt

hex to ascii 

Flag : RITSEC{WaterUnderTheBridge}

 


Inception CTF : Dream3

200

While the first two steps were easy it’s all hard from here on out, ThePointMan is the most crucial role of the mission he has to be presentable but without giving away our intentions. Use Alternate Dream State to find the flag before the kick.


TheHotel.7z파일의 암호는 이전 플래그이다.

pw =WaterUnderTheBridge

 

압축을 풀면 ThePointMan.txt파일과 SnowFortress.7z파일 그리고 이름이 없는 txt파일이 있다.

 

ThePointMan.txt

여기에는 디코딩을 해보아도 패스워드가 보이지 않는다.

 

.txt

base64문자열이 보인다.

 

 

디코딩을 해보면 hex값이 나온다.

 

 

Flag : RITSEC{F@!!ingElev@tor}

 


Inception CTF : Dream4

200

Don’t lose yourself within the dreams, it’s critical to have your totem. Take a close look at the facts of the file presented to you. Please note the flag is marked with an “RITSEC=” rather than {} due to encoding limitations.

 

 

SnowFortress.7z파일의 패스워드는 F@!!ingElev@tor이다.

 

압축을 풀면 Limbo.7z파일과 PasswordPath.exe파일이 있다.

 

strings PasswordPath.exe

 

PasswordPath.exe

 

스크립트 속 hex값을 디코딩 하면 아래와 같은 html 문자열이 나온다.

 

<html>
<body>

<!DOCTYPE html>
<html>
<head>
    <title>Non, je ne regrette rien</title>
<HTA:APPLICATION
  APPLICATIONNAME="Non, je ne regrette rien"
  ID="Inception"
  VERSION="1.0"
  SCROLL="no"/>
 
<style type="text/css">
</head>
    <div id="feature">
            <div id="content
				</style>
                <h1 id="unavailable" class="loading">Building Dreams....</h1>
				<script type="text/javascript" language="javascript">
					function RunFile() {
					WshShell = new ActiveXObject("WScript.Shell");
					WshShell.Run("notepad %USERPROFILE%/Desktop/InceptionCTF/Reality/VanChase/TheHotel/ThePointMan.txt", 1, false);
					}
				</script>
        </div>
    </div>
<body>
	<input type="button" value="Implant Inception Here" onclick="RunFile();"/>
	<p style="color:white;">
-.. .-. . .- -- ...
..-. . . .-..
.-. . .- .-..
.-- .... . -.
.-- . .----. .-. .
.. -.
- .... . -- .-.-.-
.. - .----. ...
--- -. .-.. -.--
.-- .... . -.
.-- .
.-- .- -.- .
..- .--.
- .... .- -
.-- .
.-. . .- .-.. .. --.. .
... --- -- . - .... .. -. --.
.-- .- ...
.- -.-. - ..- .- .-.. .-.. -.--
... - .-. .- -. --. . .-.-.-
.-. .. - ... . -.-. -...- -.. .. ...- . .-. ... .. --- -. 
</p>
</body>
</body>
  </html>

 

모스부호를 디코딩 하면 플래그가 나온다.

 

 

Flag : RITSEC{DIVERSION}

 


Inception CTF : Dream5

200

We’re almost there, we just need Fischer to open the safe! That top looks awfully weird though.


Limbo.7z파일의 패스워드는 DIVERSION

 

압축을 풀면 Inception.jpg파일이 있다.

 

Inception.jpg

뭔가 사진이 깨진 것 같다. 파이썬 픽셀 문제는 아닌 것 같다.

strings 명령어로 확인해보면 아래 base64문자열이 보인다.

 

 

Flag : RITSEC{528491} 


 

Please_Click_all_the_Things.7z파일 압축을 풀면 Please_Click_all_the_Things.msg파일이 있다.

strings로 확인해보면 중간에 엄청 긴 hex값이 보인다.

 

<html>
<body>

<!DOCTYPE html>
<html>
<head>
    <title>Its just another friendly file from you're local CTF</title>
    <style type="text/css">
        html {
            height: 100%;
            width: 100%;
        }

        #feature {
            width: 980px;
            margin: 95px auto 0 auto;
            overflow: auto;
        }

        #content {
            font-family: "Segoe UI";
            font-weight: normal;
            font-size: 22px;
            color: #ffffff;
            float: left;
            width: 460px;
            margin-top: 68px;
            margin-left: 0px;
            vertical-align: middle;
        }

            #content h1 {
                font-family: "Segoe UI Light";
                color: #ffffff;
                font-weight: normal;
                font-size: 60px;
                line-height: 48pt;
                width: 980px;
            }

        p a, p a:visited, p a:active, p a:hover {
            color: #ffffff;
        }

        #content a.button {
            background: #0DBCF2;
            border: 1px solid #FFFFFF;
            color: #FFFFFF;
            display: inline-block;
            font-family: Segoe UI;
            font-size: 24px;
            line-height: 46px;
            margin-top: 10px;
            padding: 0 15px 3px;
            text-decoration: none;
        }

            #content a.button img {
                float: right;
                padding: 10px 0 0 15px;
            }

            #content a.button:hover {
                background: #1C75BC;
            }

/* loading dots */

.loading:after {
  content: '.';
  animation: dots 1s steps(5, end) infinite}

@keyframes dots {
  0%, 20% {
    color: rgba(0,0,0,0);
    text-shadow:
      .25em 0 0 rgba(0,0,0,0),
      .5em 0 0 rgba(0,0,0,0);}
  40% {
    color: white;
    text-shadow:
      .25em 0 0 rgba(0,0,0,0),
      .5em 0 0 rgba(0,0,0,0);}
  60% {
    text-shadow:
      .25em 0 0 white,
      .5em 0 0 rgba(0,0,0,0);}
  80%, 100% {
    text-shadow:
      .25em 0 0 white,
      .5em 0 0 white;}}
    </style>
</head>
<body bgcolor="#00abec">
    <div id="feature">
            <div id="content">
                <h1 id="unavailable" class="loading">Try Harder</h1>
                <p id="tryAgain" class="loading">The Defender That Could</p>
        </div>
    </div>
</body>


  <head> 
<flag="UklUU0VDe0gzcjMhdCEkfQ==">
</body>
  </html>

디코딩 하면 제일 하단에 base64문자열이 보인다.

 

Flag : RITSEC{H3r3!t!$}


[Crypto]

Flag : RS{WTCHIMTTIONGAMEISWRTH}


[web]

문제에서 주어진 경로 뒤에 robots.txt를 입력하여 확인해보면 base64 문자열을 볼 수 있다.

 

 

Flag : RS{R0bots_ar3_b4d}

 

 

 

 

 

 

 

 

 

반응형

'#CTF 2021' 카테고리의 다른 글

DCTF 2021 write up  (0) 2021.05.17
UMDCTF 2021 write up  (0) 2021.04.19
Shakti CTF 2021 write up  (0) 2021.04.05
Tenable CTF 2021 write up  (0) 2021.02.23
SecureBug CTF 2021 write up  (0) 2021.02.19