<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>PicoCTF2023 on RJ Blog</title>
    <link>https://tntrenjin.github.io/tags/picoctf2023/</link>
    <description>Recent content in PicoCTF2023 on RJ Blog</description>
    <generator>Hugo -- 0.150.0</generator>
    <language>zh-tw</language>
    <lastBuildDate>Mon, 24 Nov 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://tntrenjin.github.io/tags/picoctf2023/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>[Write-Up] Java Code Analysis!?!</title>
      <link>https://tntrenjin.github.io/write-up/picoctf2023/java-code-analysis/</link>
      <pubDate>Mon, 24 Nov 2025 00:00:00 +0000</pubDate>
      <guid>https://tntrenjin.github.io/write-up/picoctf2023/java-code-analysis/</guid>
      <description>&lt;h2 id=&#34;題目資訊&#34;&gt;題目資訊&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;來源：picoCTF2023&lt;/li&gt;
&lt;li&gt;分類：Web Exploitation&lt;/li&gt;
&lt;li&gt;難度：中&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;解題流程&#34;&gt;解題流程&lt;/h2&gt;
&lt;p&gt;先用題目給的帳號密碼登入&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://tntrenjin.github.io/write-up/picoctf2023/java-code-analysis/image.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;登入後，下面就會有特定身分才能開的書，其中一個就是 flag&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://tntrenjin.github.io/write-up/picoctf2023/java-code-analysis/image-1.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;因為網頁本身沒有特別的東西&lt;/p&gt;
&lt;p&gt;往後看 cookie、local storage 和 session storage&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;local storage 存了兩個值，分別是 auth-token 和 token-payload&lt;/li&gt;
&lt;li&gt;token 解開就是 payload 的值，如下圖&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://tntrenjin.github.io/write-up/picoctf2023/java-code-analysis/image-2.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;提示說 role 跟 userId 可能有有趣的東西&lt;/p&gt;
&lt;p&gt;直接把 role 改成 &lt;code&gt;Admin&lt;/code&gt;，userId 改成 &lt;code&gt;0&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;會發現使用者名稱換了，然後頭像找不到&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://tntrenjin.github.io/write-up/picoctf2023/java-code-analysis/image-3.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;如果直接改 token 畫面就沒東西，看來也會驗證簽章&lt;/p&gt;
&lt;p&gt;&lt;img loading=&#34;lazy&#34; src=&#34;https://tntrenjin.github.io/write-up/picoctf2023/java-code-analysis/image-4.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;好吧，轉頭找原始碼…&lt;/p&gt;
&lt;p&gt;提示說 controllers, services 和 security 值得注意&lt;/p&gt;
&lt;p&gt;翻一下有個產生 secret 的片段在 &lt;code&gt;/src/main/java/io/github/nandandesai/pico/security/SecretGenerator.java&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;alt text&#34; loading=&#34;lazy&#34; src=&#34;https://tntrenjin.github.io/write-up/picoctf2023/java-code-analysis/image-5.png&#34;&gt;&lt;/p&gt;
&lt;p&gt;所以 secret 就直接是 1234&lt;/p&gt;
&lt;p&gt;把 secret 改成 1234 再寫回去&lt;/p&gt;
&lt;p&gt;&lt;img alt=&#34;alt text&#34; loading=&#34;lazy&#34; src=&#34;https://tntrenjin.github.io/write-up/picoctf2023/java-code-analysis/image-6.png&#34;&gt;&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
