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

hamayanhamayan's blog

Spring MVC [Tenable CTF 2021]

  • Spring MVC 1
  • Spring MVC 2
    • /mainでPOSTリクエストすると、flag2がある
    • flag{flag2_de3981}
  • Spring MVC 3
    • /mainmagicWord=pleaseをPOSTすれば、flag3が出てくる
    • flag{flag3_0d431e}
  • Spring MVC 4
    • /mainで空のJSONをPOSTすれば、flag4が出てくる
    • flag{flag4_695954}
  • Spring MVC 5
    • /mainでOPTIONSリクエストすれば、flag5が出てくる
    • flag{flag5_70102b}
  • Spring MVC 6
    • /mainMagic-Word: pleaseをヘッダーにつけてGETリクエストすれば、flag6が出てくる
    • flag{flag6_ca1ddf}
  • Spring MVC 7 (Hiding in Plain Sight)
    • .hello.htmlを見ると、 <p th:if="${name == 'please'}"> <span class="hidden" th:text="${@flagService.getFlag('hidden_flag')}" /> </p>
    • これは/をGETしたときに参照されるので、/?name=pleaseとしてソースコードを確認すればflagが出てくる
    • flag{hidden_flag_1dbc4}
  • Spring MVC 8 (Sessionable)
    • .hello.htmlを見ると、 <p th:if="${#session.getAttribute('realName') == 'admin'}"> <span th:text="${#session.getAttribute('sessionFlag')}" /> </p>
    • /other?name=[username]でセッションのrealNameを更新できるので、これでadminに変更してから見に来てみる
    • flag{session_flag_0dac2c}