はまやんはまやんはまやん

hamayanhamayan's blog

UMDCTF 2020 Web Writeups

CTFtime.org / UMDCTF 2020
解けた問題と、解説があった問題について書いている。

[解説なし] Wat ...

In Calculus 5, I learned that there was a new number invented by subtracting two things. This number is on my next exam, and I need to figure out what it is. If I don't, I fail the exam.
Can you help figure it out?
http://159.89.228.183:8090
Author: WittsEnd2

f:id:hamayanhamayan:20200425191841p:plain

何をすればいいかわからない。

Al's Advanced ATMs

Al says his advanced ATMs are impenetrable. I'm not so sure...
http://159.89.228.183:8087
Author: t0pc4r

Reactで作られたサイト。
正直Reactはあまり詳しくないのだが、Reactから生成されたと思しきjavascriptコードが置かれている。

f:id:hamayanhamayan:20200425191900p:plain

うーん。これを解析していってもいいけど、まずは他の部分も見てみるか。
参照されている2つのjavascriptを見てみる。

/static/js/2.94cef37c.chunk.js
長すぎる。さすがにこれを解析させるほど鬼じゃないだろう。

/static/js/main.3d1e78a2.chunk.js
こっちはまだ見れるレベルな気がする。

f:id:hamayanhamayan:20200425191916p:plain

うん。ロジックが書かれているようだ。

}, r.a.createElement("h1", null, "Super Secret Database"), r.a.createElement(y.a, null, r.a.createElement("thead", null, r.a.createElement("tr", null, r.a.createElement("th", null, "Username"), r.a.createElement("th", null, "Password"))), r.a.createElement("tbody", null, r.a.createElement("tr", null, r.a.createElement("td", null, "root"), r.a.createElement("td", null, "dG9vcg==")), r.a.createElement("tr", null, r.a.createElement("td", null, "admin"), r.a.createElement("td", null, "YWRtaW4=")), r.a.createElement("tr", null, r.a.createElement("td", null, "user"), r.a.createElement("td", null, "cGFzc3dvcmQ=")), r.a.createElement("tr", null, r.a.createElement("td", null, "umd-csec"), r.a.createElement("td", null, "VU1EQ1RGLXtvcDNuX2RAdEBfYjY0X2JAZH0=")), r.a.createElement("tr", null, r.a.createElement("td", null, "AzureDiamond"), r.a.createElement("td", null, "SHVudGVyMg==")))))

なにやら、base64化された文字列が埋め込まれている。
cyberchefで中身を見てみよう。

  • dG9vcg== -> toor
  • YWRtaW4= -> admin
  • cGFzc3dvcmQ= -> password
  • VU1EQ1RGLXtvcDNuX2RAdEBfYjY0X2JAZH0= -> UMDCTF-{op3n_d@t@_b64_b@d}
  • SHVudGVyMg== -> Hunter2

フラグが書いてあった。

CSEC Invasion

Oh no! It looks like UMD CSEC's website has been invaded by Aliens! Can you help us fend them off?
Author: t0pc4r

とりあえず、UMD CSECのウェブサイトに行ってみる。

f:id:hamayanhamayan:20200425191954p:plain

開放感がある風景が広がっている。
エイリアンが侵入した形跡は無いように見えるが、ソースコードを見てみる。

f:id:hamayanhamayan:20200425192005p:plain

確かに、エイリアンからの挑戦状がそこにはあった。

CSEC Invasion - 2

Good job fending off the aliens on UMD CSEC's website, but it looks like some robots have started to invade as well.
Good luck.
Author: t0pc4r

再度、UMD CSECのウェブサイトに行く。
『robots』とあるので、疑うべきは/robots.txtであろう。
アクセスしてみると、フラグを見つけることができる。

# https://www.robotstxt.org/robotstxt.html
# UMDCTF-{d0m0_@r1g@t0_mr_r0b0t0}
User-agent: *
Disallow:

Chungus Vault 2.0

We found out the username and password of an administrator, but can't log in to the site as an administrator. Can you figure out what is going on?
http://159.89.228.183:8088
Author: WittsEnd2

f:id:hamayanhamayan:20200425192023p:plain

日本人なのでよくわからないキャラクターだが、きっとアメリカのミームだろう。
お腹を指さしているようにも見えるが、Web問題なので画像解析はさせないだろうと思って放置。

既に入力欄が埋まっており、Submitをすると、ユーザー権限でログインができる。
何を入れても、Successfully logged in as userとなるみたいで、実際は成功していないっぽい。
ソースコードを見ると、どっかにPOSTしている訳ではないみたい。
/main.jsを参照している。そっちを見てみよう。
難読化されている。これを解析しなきゃ、ならない?これの解析はしんどい。

以下、UMD-CTF walkthroughを参考。

他を見てみると、
<input type="hidden" id="check" value="e9b7a334826ff2ff28b066a92ba8734cb1134720fc5879592247f47b8d2a17d7">
というのがあり、Hash-identifierを使って、何のハッシュ値かを特定すると、Sha-256である。
CrackStationに投げると、user-loginが得られる。
admin-loginに変えて、ログインするとアドミンユーザーでログインできる。

[解説なし] CSEC Invasion - 3

Those robots were tough, but are you any match for the monsters that are looking to mash their way through UMD CSEC's website.
Author: t0pc4r

ふーむよくわからない。
UMD CSECのサイトに行くと、何かアップロードできそうな所はあるが、普通に使われていそうで、攻撃していいものかわからない。
素直にrobots.txtに立ち返ると、disableに何も入っていない。
クローラーが普通にクロールできる状態であるということだが、スキャナーを使ってみればいいのかな?
でも、このサイトってクローラー使っていやつ?ちょっと怖い。

[解説なし] SignStealingSoftware-P4

We now have everything we need. Let's play ball and beat the Astros at their own game!
http://159.89.228.183:8083
Author: WittsEnd2

f:id:hamayanhamayan:20200425192053p:plain

アストロズに勝つゲームが始まる。
いきなり暴動が始まりそうな感じに見えるが、そういうときもあるだろう。

適当に振ったり振らなかったりしていたり、判断がもたついていると負ける。
審判に何か抗議しているようだ。アストロズは何かズルをしているのか?

パケットを見ている感じ、クライアント側で完結しているようだ。
ということはjavascriptが主体で動いているようなので、ソースから、/main.jsを見てみる。

f:id:hamayanhamayan:20200425192108p:plain

また難読化?

[解説なし] SignStealingSoftware-P3

While stealing signs, we found the Houston Astro's database of batting statistics. See what you can find from it....
http://159.89.228.183:8082
Author: WittsEnd2

SignStealingSoftware-P2

We are now in the system! Looks like the developers are still there, now we just need to find the key so we can create more user accounts, so our team can steal all the signs!
http://159.89.228.183:8081
Author: WittsEnd2

SignStealingSoftware-P2 UMDCTF2020 | from Sousse, with love
ここによるとLFIができる。
それを使って、/etc/passwdを見てみると、gitserverというユーザーがあり、/home/gitserver/.git/HEADを見るとファイルが存在している。
/home/gitserver/.git/logs/HEADを見てみると、編集点が見られて、base64デコードすると、答えが出てくる。

[解説なし] SignStealingSoftware-P1

We need to use the software that lets the Houston Astros use their cameras to steal our signs! Your mission, if you choose to accept is to get in and get us an account so that we can log in to their account any time that we want. The first step is to get in.
The login link is below, let us know when you have succeeded!
http://198.199.67.221
Author: WittsEnd2

どんな問題だっけ。