Juniors CTF Writeup

この大会は2017/12/2 1:00(JST)~2017/12/4 1:00(JST)に開催されました。
今回もチームで参戦。結果は900点で587チーム中99位でした。
自分で解けた問題をWriteupとして書いておきます。

Portal to another world (network admin trivial vpn)

VPNで問題のページにアクセスするだけ。ページに書かれているメッセージがフラグ。

Come on!

Sweet dreams (stegano)

問題ファイルdocxを解凍する。word\media\flag.pngにフラグが書いてある。

DIFFERENT AGE SANDWICH?

Music for people (stegano joy)

Music Studio Producerで開き、ピアノロールを見る。
f:id:satou-y:20171204221020p:plain

MUSIC_IS_COOL

What's inside her, Rick? (stegano)

問題ファイルはbmpファイル。0x39バイトから4バイトごとにつなげるとJPEGになりそう。

with open('what_is_inside.bmp', 'rb') as f:
    data = f.read()

jpg = ''
for i in range(0x39, len(data), 4):
    jpg += data[i]

with open('flag.jpg', 'wb') as f:
    f.write(jpg)

f:id:satou-y:20171204222036j:plain

Death!

PR me, please (web vpn)

popular.txtに載っているサイトのメインページにリンクを張ってそれを表明しなさいというような内容の問題。リファラーにpopular.txtに記載されているURLの一つを指定してアクセスする。

$ curl -e https://www.yandex.ru/ http://10.0.181.112:15110/
<!DOCTYPE html>
<html lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="http://getbootstrap.com/favicon.ico">

    <title>Личный сайт Рика</title>

    <!-- Bootstrap core CSS -->
    <link href="bootstrap.css" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="sticky-footer.css" rel="stylesheet">
  </head>

  <body>

    <!-- Begin page content -->
    <main role="main" class="container">
      <div class="mt-1">
        <h1>Личный сайт Рика</h1>
		<h1>(пока в стадии пиара)</h1>
      </div>
	  <br>
      <p class="lead">Добро пожаловать, мои первые посетители!</p>
    <img src="1.jpg" class="img-responsive center-block">
	      <p>На этом сайте я буду в будущем выкладывать свои научные труды: первый материал будет о черной материи, а далее о перемещении во времени!</p>
	
	<p>Flag: yoUUGOOODhacker46466464 </p>	<br>
	<p>Просмотров сайта за всё время: 3956</p>
	</main>

    <footer class="footer">
      <div class="container">
        <span class="text-muted">Супер умный Рики, 2017</span>
      </div>
    </footer>
  

</body></html>
yoUUGOOODhacker46466464

Terry test (admin)

zipを解凍すると、さらにzipとパスワードのtxtが展開される。さらに解凍すると、同じように展開される。どうやらこれが繰り返されるようだ。プログラムで自動で解凍させる。

import os
import zipfile

for i in range(2, 201):
    txt = '%d.txt' % i
    zip = '%d.zip' % i
    with open(txt, 'r') as f:
        pw = f.read()

    zf = zipfile.ZipFile(zip, 'r')
    zf.setpassword(pw)
    zf.extractall('.')
    zf.close()

    os.remove(txt)
    os.remove(zip)

200回解凍すると、最後にmessage.txtにフラグが書いてあった。

bearlovehoney