<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>hmyang444 님의 블로그</title>
    <link>https://hmyang444.tistory.com/</link>
    <description>hmyang444 님의 블로그 입니다.</description>
    <language>ko</language>
    <pubDate>Mon, 1 Jun 2026 18:44:21 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>hmyang444</managingEditor>
    <item>
      <title>XSS 공격과 우회방법</title>
      <link>https://hmyang444.tistory.com/84</link>
      <description>&lt;h2 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;1. xss 공격 유형&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;Reflected XSS:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;사용자가 입력한 값이 서버를 거쳐 화면에 즉시 반사되는 형태. &lt;/b&gt;주로 악성 링크를 클릭하도록 유도하는 피싱 공격에 쓰인다.&amp;nbsp;&lt;br /&gt;(xss-1 드림핵 문제가 반사형 XSS인 것을 확인할 수 있다.)&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;Stored XSS:&lt;/b&gt; &lt;br /&gt;게시판 글이나 댓글처럼 &lt;b&gt;악성 스크립트가 서버 데이터베이스에 저장&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;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,0&quot;&gt;DOM-based XSS:&lt;/b&gt; &lt;br /&gt;서버를 거치지 않고, &lt;b&gt;브라우저가 자바스크립트로 HTML(DOM)을 동적으로 제어하는 과정에서 발생하는 형태.&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;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. 세션 하이재킹과 쿠키 보호 조치&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;세션 하이재킹: 쿠키를 탈취해 다른 사람의 계정으로 로그인하는 행위&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;---&amp;gt; 이를 막기 위한 다양한 보안 옵션이 있음&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,0&quot;&gt;HttpOnly Flag:&lt;/b&gt; &lt;b&gt;자바스크립트(document.cookie)로 쿠키에 접근하는 것을 원천 차단합니다&lt;/b&gt;. XSS가 터지더라도 쿠키만큼은 지킬 수 있는 가장 강력한 방법이다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,1,0&quot;&gt;Secure Flag:&lt;/b&gt; &lt;b&gt;HTTPS(암호화 통신) 연결일 때만&lt;/b&gt; 쿠키를 전송하도록 제한한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,2,0&quot;&gt;SameSite:&lt;/b&gt; 교차 사이트(Cross-Site) 요청 시 쿠키 전송 여부를 결정하여 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;h2 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;3. XSS 필터링 우회 기법 (Bypass)&lt;/h2&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;현업의 서비스들은 대부분 &lt;b&gt;&amp;lt;script&amp;gt; 같은 위험한 태그를 막아두는 필터링(방화벽)이 적용되어 있다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;그렇다면 이를 우회하는 방법을 알아보자&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;대소문자 섞어 쓰기:&lt;/b&gt; &amp;lt;sCrIpT&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,0&quot;&gt;이벤트 핸들러 활용:&lt;/b&gt;&amp;nbsp; &amp;lt;img src=x onerror=...&amp;gt; 외에도 &amp;lt;svg onload=...&amp;gt;, &amp;lt;body onload=...&amp;gt;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,2,0&quot;&gt;태그 난독화 및 중첩:&lt;/b&gt; &amp;lt;sc&amp;lt;script&amp;gt;ript&amp;gt; (서버가 내부의 script를 한 번 지우면 바깥쪽이 합쳐져서 실행됨)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size26&quot;&gt;4. XSS의 근본적인 방어 대책&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;HTML Entity Encoding:&lt;/b&gt; 사용자가 입력한 문자 중&lt;b&gt; 위험한 특수문자(&amp;lt;, &amp;gt;, &quot;, ', &amp;amp; 등)를 안전한 텍스트 기호(&amp;amp;lt;, &amp;amp;gt;, &amp;amp;quot; 등)로 변환&lt;/b&gt;하여 브라우저가 코드가 아닌 단순 문자로 인식하게 만듭니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,1,0&quot;&gt;CSP (Content Security Policy):&lt;/b&gt; &lt;b&gt;웹 페이지에서 실행할 수 있는 스크립트의 출처나 종류를 제한하는 브라우저 보안 정책&lt;/b&gt;입니다. XSS가 발생하더라도 사전에 허가되지 않은 외부 스크립트의 실행을 차단할 수 있습니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h1 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot;&gt;&amp;nbsp;&lt;/h1&gt;
&lt;pre id=&quot;code_1779156341196&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/usr/bin/python3
from flask import Flask, request, render_template
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import urllib
import os

app = Flask(__name__)
app.secret_key = os.urandom(32)

try:
    FLAG = open(&quot;./flag.txt&quot;, &quot;r&quot;).read()
except:
    FLAG = &quot;[**FLAG**]&quot;


def read_url(url, cookie={&quot;name&quot;: &quot;name&quot;, &quot;value&quot;: &quot;value&quot;}):
    cookie.update({&quot;domain&quot;: &quot;127.0.0.1&quot;})
    driver = None
    try:
        service = Service(executable_path=&quot;/usr/local/bin/chromedriver&quot;)
        options = webdriver.ChromeOptions()
        options.binary_location = &quot;/usr/bin/google-chrome&quot;
        for _ in [
            &quot;headless&quot;,
            &quot;window-size=1920x1080&quot;,
            &quot;disable-gpu&quot;,
            &quot;no-sandbox&quot;,
            &quot;disable-dev-shm-usage&quot;,
        ]:
            options.add_argument(_)
        driver = webdriver.Chrome(service=service, options=options)
        driver.implicitly_wait(3)
        driver.set_page_load_timeout(3)
        driver.get(&quot;http://127.0.0.1:8000/&quot;)
        driver.add_cookie(cookie)
        driver.get(url)
    except Exception as e:
        # return str(e)
        return False
    finally:
        if driver is not None:
            driver.quit()
    return True


def check_xss(param, cookie={&quot;name&quot;: &quot;name&quot;, &quot;value&quot;: &quot;value&quot;}):
    url = f&quot;http://127.0.0.1:8000/vuln?param={urllib.parse.quote(param)}&quot;
    return read_url(url, cookie)


@app.route(&quot;/&quot;)
def index():
    return render_template(&quot;index.html&quot;)


@app.route(&quot;/vuln&quot;)
def vuln():
    param = request.args.get(&quot;param&quot;, &quot;&quot;)
    return param


@app.route(&quot;/flag&quot;, methods=[&quot;GET&quot;, &quot;POST&quot;])
def flag():
    if request.method == &quot;GET&quot;:
        return render_template(&quot;flag.html&quot;)
    elif request.method == &quot;POST&quot;:
        param = request.form.get(&quot;param&quot;)
        if not check_xss(param, {&quot;name&quot;: &quot;flag&quot;, &quot;value&quot;: FLAG.strip()}):
            return '&amp;lt;script&amp;gt;alert(&quot;wrong??&quot;);history.go(-1);&amp;lt;/script&amp;gt;'

        return '&amp;lt;script&amp;gt;alert(&quot;good&quot;);history.go(-1);&amp;lt;/script&amp;gt;'


memo_text = &quot;&quot;


@app.route(&quot;/memo&quot;)
def memo():
    global memo_text
    text = request.args.get(&quot;memo&quot;, &quot;&quot;)
    memo_text += text + &quot;\n&quot;
    return render_template(&quot;memo.html&quot;, memo=memo_text)


app.run(host=&quot;0.0.0.0&quot;, port=8000)&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;(1) check_xss&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;사용자가 입력한 param값을 인자로 가진 url을 만들고 그걸 읽는거지&lt;/p&gt;
&lt;pre id=&quot;code_1779158476926&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;def check_xss(param, cookie={&quot;name&quot;: &quot;name&quot;, &quot;value&quot;: &quot;value&quot;}):
    # 사용자가 입력한 param을 파이썬 내부에서 quote()로 감싸서 URL을 만듭니다.
    url = f&quot;http://127.0.0.1:8000/vuln?param={urllib.parse.quote(param)}&quot;
    return read_url(url, cookie) &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;(2) 코드 비교&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;vuln코드는 param의 값을 그대로 출력하고 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--&amp;gt; 결과적으로 서버가 html 코드라고 생각해서 코드를 실행해버리면 xss공격에 당하게 되는 것&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;memo코드는 render_template을 이용해서 memo.html에서 출력하고 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--&amp;gt; 화면에 그대로 뜨는거니까 공격 코드가 실행되지 않음(보안 높음)&lt;/p&gt;
&lt;pre id=&quot;code_1779158596718&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@app.route(&quot;/vuln&quot;)
def vuln():
    param = request.args.get(&quot;param&quot;, &quot;&quot;)
    return param  

@app.route(&quot;/memo&quot;)
def memo():
    ...
    return render_template(&quot;memo.html&quot;, memo=memo_text)&lt;/code&gt;&lt;/pre&gt;</description>
      <category>SWUFORCE/워게임</category>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/84</guid>
      <comments>https://hmyang444.tistory.com/84#entry84comment</comments>
      <pubDate>Tue, 19 May 2026 11:47:04 +0900</pubDate>
    </item>
    <item>
      <title>최종 정리(판결문)</title>
      <link>https://hmyang444.tistory.com/83</link>
      <description>&lt;h2 data-path-to-node=&quot;4&quot; data-ke-size=&quot;size26&quot;&gt;대법원 2023도17590 및 광주지방법원 2025노2116 (최종 무죄)&lt;/h2&gt;
&lt;h4 data-path-to-node=&quot;6&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h3 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size23&quot;&gt;1) 사건 개요 (A씨와 B씨 사이의 사건 전개)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;8&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,0,0&quot;&gt;A씨 (피고인):&lt;/b&gt; 전남 나주 D농협의 전 경제상무 (2014년 1월 퇴사)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0&quot;&gt;B씨 (피고소인):&lt;/b&gt; D농협의 현직 조합장&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,2,0&quot;&gt;사건 전개:&lt;/b&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;8,2,1&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;2014년 2월, 퇴사한 A씨가 산악회 기부행위로 인해 조합장 B씨 측으로부터 공직선거법 위반으로 먼저 고발을 당함.&lt;/li&gt;
&lt;li&gt;2014년 8월, A씨는 B씨가 조합원들에게 수박을 돌리고 개인 명의로 축&amp;middot;부의금을 보내는 등 농업협동조합법을 위반했다며 '맞고발'을 진행함.&lt;/li&gt;
&lt;li&gt;이 과정에서 A씨는 재직 시절 확보해 둔 &lt;b data-index-in-node=&quot;23&quot; data-path-to-node=&quot;8,2,1,2,0&quot;&gt;CCTV 녹화자료&lt;/b&gt; 및 B씨의 이름, 주소, 계좌번호 등이 담긴 &lt;b data-index-in-node=&quot;58&quot; data-path-to-node=&quot;8,2,1,2,0&quot;&gt;꽃배달내역서, 거래내역확인서 등&lt;/b&gt;을 수사기관에 증거로 제출함.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;9&quot; data-ke-size=&quot;size23&quot;&gt;2) 사실 원인 및 문제점 정리&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;제3자 정보 포함:&lt;/b&gt; 제출된 증거 자료에는 피고소인(B씨)뿐만 아니라 돈을 송금받은 중도매인, 조합원 등 &lt;b data-index-in-node=&quot;58&quot; data-path-to-node=&quot;10,0,0&quot;&gt;사건과 아무 상관 없는 수많은 제3자의 개인정보가 필터링 없이 포함&lt;/b&gt;되어 있었음.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;사적 동기 의혹:&lt;/b&gt; A씨는 향후 조합장 선거 출마를 염두에 두고 토론회 등에서 자신에게 유리하게 사용할 목적으로 재직 시절 해당 자료들을 수집&amp;middot;보관해 왔음.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size23&quot;&gt;3) 보도자료 및 행정처분&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본 사건은 수사기관에 증거를 제출한 행위가&lt;b&gt; 개인정보보호법상 형사처벌 대상인 '누설'에 해당하는지&lt;/b&gt;를 두고 &lt;b data-index-in-node=&quot;58&quot; data-path-to-node=&quot;12,0,0&quot;&gt;8년간 공방을 벌인 끝에 최종 무죄&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-path-to-node=&quot;14&quot; data-ke-size=&quot;size26&quot;&gt;행정처분 및 관련 법령 (형사 책임)&lt;/h2&gt;
&lt;h3 data-path-to-node=&quot;15&quot; data-ke-size=&quot;size23&quot;&gt;1) 개인정보처리자의 &lt;u&gt;위반 행위&lt;/u&gt;&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;B씨(조합장)의 범죄 사실을 입증하기 위해, 업무상 알게 된 조합 내부 자료(CCTV, 금융 거래 전표 등)를 정보주체의 동의 없이 외부(수사기관)에 무단 유출함.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;17&quot; data-ke-size=&quot;size23&quot;&gt;2) 위반 법 조문&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;18&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,0,0&quot;&gt;&lt;u&gt;개인정보 보호법 제59조(금지행위) 제2호&lt;/u&gt;:&lt;/b&gt; 개인정보를 처리하거나 처리하였던 자는 업무상 알게 된 개인정보를 누설하거나 권한 없이 다른 사람이 이용하도록 제공하는 행위를 하여서는 아니 된다.&lt;/li&gt;
&lt;li&gt;&lt;u&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;18,1,0&quot;&gt;개인정보 보호법 제71조(벌칙) 제5호:&lt;/b&gt;&lt;/u&gt; 제59조 제2호의 규정을 위반하여 업무상 알게 된 개인정보를 누설하거나 권한 없이 다른 사람이 이용하도록 제공한 자는 &lt;b data-index-in-node=&quot;89&quot; data-path-to-node=&quot;18,1,0&quot;&gt;5년 이하의 징역 또는 5천만 원 이하의 벌금&lt;/b&gt;에 처한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size26&quot;&gt;소송 (형사 소송 경과)&lt;/h2&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;21&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.2791%;&quot;&gt;&lt;b&gt;심급&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.9534%;&quot;&gt;&lt;b&gt;사건 번호&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.0232%;&quot;&gt;&lt;b&gt;판결 결과&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.628%;&quot;&gt;&lt;b&gt;주요 판단 근거&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.2791%;&quot;&gt;&lt;span data-path-to-node=&quot;21,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,1,0,0&quot;&gt;원심 (1심)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.9534%;&quot;&gt;&lt;span data-path-to-node=&quot;21,1,1,0&quot;&gt;2017고정445&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.0232%;&quot;&gt;&lt;span data-path-to-node=&quot;21,1,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,1,2,0&quot;&gt;유죄&lt;/b&gt; (벌금 500만 원)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.628%;&quot;&gt;&lt;span data-path-to-node=&quot;21,1,3,0&quot;&gt;부정한 목적이 없어도 '누설' 자체로 처벌 가능.&lt;br /&gt;법률의 착오나 정당행위 불인정.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.2791%;&quot;&gt;&lt;span data-path-to-node=&quot;21,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,2,0,0&quot;&gt;항소심 (2심)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.9534%;&quot;&gt;&lt;span data-path-to-node=&quot;21,2,1,0&quot;&gt;2017노2205&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.0232%;&quot;&gt;&lt;span data-path-to-node=&quot;21,2,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,2,2,0&quot;&gt;무죄&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.628%;&quot;&gt;&lt;span data-path-to-node=&quot;21,2,3,0&quot;&gt;수사기관에 증거를 내는 것은 '누설'이 아님.&lt;br /&gt;이를 처벌하면 국민의 수사 협조가 위축됨.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.2791%;&quot;&gt;&lt;span data-path-to-node=&quot;21,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,3,0,0&quot;&gt;상고심 (대법원)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.9534%;&quot;&gt;&lt;span data-path-to-node=&quot;21,3,1,0&quot;&gt;2018도1966&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.0232%;&quot;&gt;&lt;span data-path-to-node=&quot;21,3,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,3,2,0&quot;&gt;유죄 취지 파기환송&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.628%;&quot;&gt;&lt;span data-path-to-node=&quot;21,3,3,0&quot;&gt;수사기관에 냈더라도 동의가 없었다면 법리적으로 &lt;b data-index-in-node=&quot;26&quot; data-path-to-node=&quot;21,3,3,0&quot;&gt;'누설'은 맞음.&lt;br /&gt;&lt;/b&gt; 2심이 법리 오해함.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.2791%;&quot;&gt;&lt;span data-path-to-node=&quot;21,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,4,0,0&quot;&gt;환송 후 2심&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.9534%;&quot;&gt;&lt;span data-path-to-node=&quot;21,4,1,0&quot;&gt;2022노2565&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.0232%;&quot;&gt;&lt;span data-path-to-node=&quot;21,4,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,4,2,0&quot;&gt;유죄&lt;/b&gt; (벌금 500만 원)&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.628%;&quot;&gt;&lt;span data-path-to-node=&quot;21,4,3,0&quot;&gt;대법원 취지에 따라 유죄 판결. &lt;br /&gt;사적 선거 목적이 크고 보충성이 없어 정당행위 부정.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.2791%;&quot;&gt;&lt;span data-path-to-node=&quot;21,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,5,0,0&quot;&gt;재상고심 (대법원)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.9534%;&quot;&gt;&lt;span data-path-to-node=&quot;21,5,1,0&quot;&gt;2023도17590&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.0232%;&quot;&gt;&lt;span data-path-to-node=&quot;21,5,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,5,2,0&quot;&gt;무죄 취지 파기재환송&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.628%;&quot;&gt;&lt;span data-path-to-node=&quot;21,5,3,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,5,3,0&quot;&gt;'누설'은 맞지만 '정당행위'에 해당하기에 처벌할 수 없음.&lt;br /&gt;&lt;/b&gt; 실질적 공익성과 현실적 불가피성 인정.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 16.2791%;&quot;&gt;&lt;span data-path-to-node=&quot;21,6,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,6,0,0&quot;&gt;최종 판결&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 13.9534%;&quot;&gt;&lt;span data-path-to-node=&quot;21,6,1,0&quot;&gt;2025노2116&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 18.0232%;&quot;&gt;&lt;span data-path-to-node=&quot;21,6,2,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,6,2,0&quot;&gt;무죄 확정&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.628%;&quot;&gt;&lt;span data-path-to-node=&quot;21,6,3,0&quot;&gt;대법원의 정당행위 법리를 수용하여 최종 무죄 판결.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-path-to-node=&quot;22&quot; data-ke-size=&quot;size23&quot;&gt;1) 원고(검사)의 주장&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;23&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;과거 판례(구 공공기관 개인정보보호법)에 비추어 볼 때, 동의 없이 타인의 정보를 알지 못하는 자(수사기관)에게 넘긴 것은&amp;nbsp; &amp;nbsp; 명백한 누설이다. 사적 보관 목적이 뚜렷하므로 처벌해야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;(1) 구법과 신법의 본질적 취지 동일성&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;2011년 「공공기관의 개인정보보호에 관한 법률」이 폐지되고 통합된 「개인정보 보호법」이 제정되었으나, &lt;b data-index-in-node=&quot;58&quot; data-path-to-node=&quot;5,0,1,0,0&quot;&gt;'개인정보의 누설을 금지하여 정보주체를 보호하겠다'는 본질적인 입법 취지와 목적은 전혀 변하지 않았다.&lt;/b&gt; 법 조문의 표현은 일부 달라졌을지라도, 궁극적으로 개인정보를 함부로 퍼뜨리지 말고, 직무상 알게 된 정보를 남용하지 말라는 지향점은 신&amp;middot;구법이 완벽히 일치한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;(2) 실질적 구성요건의 동일성&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;현행 개인정보 보호법 제71조 제5호, 제59조 제2호 위반죄는 구법 제23조 제2항, 제11조 위반죄와 비교했을 때, 범행 주체가 '공공기관 직원'에서 '일반 개인정보처리자'로 확장되고 조문에서 '부당한 목적'이라는 표현이 삭제되었을 뿐, &lt;b data-index-in-node=&quot;135&quot; data-path-to-node=&quot;5,1,1,0,0&quot;&gt;나머지 행위 형태와 구성요건은 실질적으로 동일하다.&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,0&quot;&gt;(3) 수사기관 제출 행위 역시 명백한 '누설'&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5,2,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;구법과 신법에서 '누설'이란 &quot;아직 해당 개인정보를 알지 못하는 타인에게 이를 알려주는 일체의 행위&quot;를 의미한다. 아무리 범죄를 수사하는 국가기관(수사기관)이라 할지라도, 고소&amp;middot;고발 단계에서는 피고소인의 개인정보를 알지 못하는 '타인'에 불과하다.&lt;/li&gt;
&lt;li&gt;따라서 고소장에 다른 정보주체의 개인정보를 첨부하여 경찰서에 제출할 때,&lt;br /&gt;&lt;b data-index-in-node=&quot;41&quot; data-path-to-node=&quot;5,2,1,1,0&quot;&gt;① 정보주체의 동의를 받지 아니하고, &lt;br /&gt;② 관련 법령에 정한 적법한 절차(영장 등)를 거치지 않았다면,&lt;br /&gt;이는 예외 없이 개인정보의 &amp;lsquo;누설&amp;rsquo;에 해당한다.&lt;br /&gt;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,3,0&quot;&gt;(4) 사적 보관 및 남용에 따른 처벌 필요성&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5,3,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;피고인은 과거 상무 재직 시절 업무상 알게 된 CCTV, 꽃배달 내역 등의 개인정보를 퇴사 후까지 사적으로 보관하고 있었다.&amp;nbsp; &amp;nbsp;수사기관에 정보를 제공하는 것 자체가 무조건 금지되는 것은 아니며, 압수수색 영장이나 법적 사실조회 등 '합법적인 절차'를 밟아 가져오게 했어야 마땅하다.&lt;/li&gt;
&lt;li&gt;그럼에도 불구하고 피고인은 향후 조합장 선거 출마라는 사적 이익을 위해 자료를 무단 반출&amp;middot;보관하다가 고소장에 마음대로 적어 유출했으므로, 이는 명백히 처벌받아야 하는 위법 행위이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size23&quot;&gt;&amp;nbsp;&lt;/h3&gt;
&lt;h3 data-path-to-node=&quot;24&quot; data-ke-size=&quot;size23&quot;&gt;2) 피고인(A씨)의 주장&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;25&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;변호사 자문을 거쳐 공익적 비위를 고발하기 위해 수사기관에 증거로 제출한 것이므로 위법성이 조각되는 정당행위(형법 제20조)에 해당한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;26&quot; data-ke-size=&quot;size23&quot;&gt;3) 대법원 및 최종 판결 요지 (무죄 판정 5대 요인)&lt;/h3&gt;
&lt;blockquote data-path-to-node=&quot;27&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-path-to-node=&quot;27,0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;27,0&quot;&gt;&quot;법을 위반한 '누설'은 맞으나, 사회상규에 위배되지 않는 '정당행위'이므로 처벌할 수 없다.&quot;&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;28&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;28,0,0&quot;&gt;공익성:&lt;/b&gt; 제보를 통해 실제 조합장의 불법 행위가 밝혀져 처벌됨으로써 조직의 투명성이 제고됨.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;28,1,0&quot;&gt;민감정보가 아님:&lt;/b&gt; 공개된 장소의 CCTV 및 꽃배달 내역 등은 사생활을 심각하게 침해하는 민감정보가 아님.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;28,2,0&quot;&gt;제한성:&lt;/b&gt; 일반 대중이 아닌 비밀 준수 의무가 있는 '수사기관'에만 한정적으로 제공되어 재유출 위험이 낮음.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;28,3,0&quot;&gt;현실성:&lt;/b&gt; 고소&amp;middot;고발 시 증거물 내 피고소인의 개인정보를 일일이 동의받고 제출하는 것은 현실적으로 불가능함.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;28,4,0&quot;&gt;이익 비교형량:&lt;/b&gt; 침해된 개인정보의 권리보다 '깨끗한 선거와 조합 운영'이라는 사회적 이익이 훨씬 큼.&lt;/li&gt;
&lt;/ol&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-path-to-node=&quot;30&quot; data-ke-size=&quot;size26&quot;&gt;수행팀 의견&lt;/h2&gt;
&lt;h3 data-path-to-node=&quot;31&quot; data-ke-size=&quot;size23&quot;&gt;[1] 결과론적 무죄 판결의 문제점?&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;32&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이번 판결은 '실질적 정의'와 '공익 실현'을 위해 형법상 정당행위를 폭넓게 인정해 준 사례라고 볼 수 있다. 그러나 이는 결과가 성공하면 정당행위로 무죄, 실패하면 개인정보보호법 위반 유죄가 되는 위험한 선례를 남긴 것이라고 볼 수도 있다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;특히 내부 직원이 퇴사 시 공익 제보용이라는 주관적 명목으로 기업의 데이터나&amp;nbsp; CCTV 영상을 사적으로 보관하는 행위에 면죄부로 오용될 수 있으며, 이는 기업의 데이터 반출 방지(DLP) 정책 등 내부 통제 시스템을 무력화할 우려가 있다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;33&quot; data-ke-size=&quot;size23&quot;&gt;[2] 데이터 보관 방식의 위법성&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;34&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개인정보보호법 제21조 및 제25조에 따르면 CCTV 영상은 목적 달성 후(통상 30일 이내) 파기되어야 마땅하다. 퇴사한 상무가 이 영상을 사적 매체에 지속해서 보관하고 있었다는 점은 명백한 &lt;b data-index-in-node=&quot;109&quot; data-path-to-node=&quot;34,0,0&quot;&gt;기술적&amp;middot;관리적 보호조치 위반&lt;/b&gt;이다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;만약 A의 저장매체가 해킹당하거나 분실되어 유튜브나 온라인 커뮤니티 등 제3자에게 2차 유출되었다면 사생활 침해로 이어졌을 것이다. 법원이 &lt;u&gt;고발의 정당성에만 매몰되어 &lt;b data-index-in-node=&quot;99&quot; data-path-to-node=&quot;34,1,0&quot;&gt;데이터 보관 방식의 위법성&lt;/b&gt;을 지나치게 경시한 것은&lt;/u&gt; 정보보호 측면에서 아쉽다고 느껴진다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;35&quot; data-ke-size=&quot;size23&quot;&gt;[3] 대법원이 제공 대상을 '수사기관'으로 한정한 이유&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;36&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;대법원이 이례적으로 정당행위를 인정한 핵심 배경은 정보의 도달처가 '수사기관'이었기 때문이다. 만약 피고인이 이를 유튜브나 언론에 폭로했다면 법적 판단이 내려지기도 전에 마녀사냥 등 심각한 사회적 파장을 낳았을 것이다. 이는 정보보호와 개인의 권리 보장을 위해 사적 구제가 아닌 공적 제도를 이용해야 한다는 법원의 최소한의 가이드라인으로 해석된다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;37&quot; data-ke-size=&quot;size23&quot;&gt;[4] 디지털 증거 확보 방법 필요&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;38&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;일반 개인이 구체적인 증거 없이 말로만 고발하면 수사기관이 착수하지 않는 것이 현실이다. 따라서 개인이 위험하게 데이터를 사적 복제&amp;middot;유출하도록 방치할 것이 아니라, 다음과 같은 &lt;b data-index-in-node=&quot;100&quot; data-path-to-node=&quot;38,0,0&quot;&gt;안전하고 적법한 기술적/제도적 창구&lt;/b&gt;가 마련되어야 한다.&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;38,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;38,0,1,0,0&quot;&gt;공익신고 전담 플랫폼 및 증거보존신청 제도 활성화:&lt;/b&gt; 국가 기관에 해당 플랫폼의 로그나 CCTV 자산에 대한 '증거보존'을 즉시 신청할 수 있는 간소화된 시스템 프로세스 구축&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;38,0,1,1,0&quot;&gt;수사기관 제출용 자동 마스킹 툴 제공:&lt;/b&gt; 고발자가 증거를 제출할 때 사건과 무관한 제3자의 정보(얼굴, 타인 계좌 등)를 손쉽게 비실명화하여 제출할 수 있는 보안 솔루션 개발&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;h2 data-path-to-node=&quot;40&quot; data-ke-size=&quot;size26&quot;&gt;5. 마무리&lt;/h2&gt;
&lt;p data-path-to-node=&quot;41&quot; data-ke-size=&quot;size16&quot;&gt;&lt;i data-index-in-node=&quot;0&quot; data-path-to-node=&quot;41&quot;&gt;(추후 팀원들의 추가 의견과 토론 내용을 종합하여 최종 결론 작성 예정)&lt;/i&gt;&lt;/p&gt;</description>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/83</guid>
      <comments>https://hmyang444.tistory.com/83#entry83comment</comments>
      <pubDate>Sun, 17 May 2026 20:26:38 +0900</pubDate>
    </item>
    <item>
      <title>File Carving(+method)</title>
      <link>https://hmyang444.tistory.com/82</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;파일 카빙( File Carving )이란?&lt;/span&gt;&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;span&gt;파일 카빙은 &lt;/span&gt;&lt;/span&gt;&lt;span data-processed=&quot;true&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;파일 시스템의 메타데이터 없이,&lt;b&gt; 파일 자체의 고유한&lt;u&gt; 바이너리 시그니처(헤더와 푸터)를 기반으로&lt;/u&gt; 데이터를 추출하고 재조립하여 복구&lt;/b&gt;하는 디지털 포렌식 기술이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-path-to-node=&quot;3&quot; data-ke-size=&quot;size26&quot;&gt;왜 파일 카빙이 필요한가?&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;6&quot;&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;6,0,0&quot; data-index-in-node=&quot;0&quot;&gt;파일 시스템 손상:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;디스크 래핑, 포맷, 비정상적인 종료 등으로 인해 파일 시스템 자체가 완전히 깨졌을 때&lt;/li&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;6,1,0&quot; data-index-in-node=&quot;0&quot;&gt;의도적인 은닉:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;범죄 용의자가 증거를 인멸하기 위해&lt;u&gt; 파일 시스템 영역을 변조하거나, 파일 확장자를 강제로 변경했을 때&amp;nbsp;&lt;/u&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--&amp;gt; CTF 문제를 제작할 때는 의도적으로 은닉 방법을 사용하게 됨!&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;6&quot;&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;6,2,0&quot; data-index-in-node=&quot;0&quot;&gt;미할당 영역 분석:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;삭제된 파일이 머물러 있는 디스크의 빈 공간에서 유의미한 데이터를 얻어야 할 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-path-to-node=&quot;8&quot; data-ke-size=&quot;size26&quot;&gt;파일 카빙에서 비연속적 할당&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;파일 카빙 문제에서 제일 중요하다고 볼 수 있는 것이 이 문제이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;파일 카빙의 다양한 방법들인 시그니처 기반, 구조체 기반 카빙은 모두 파일 데이터가 디스크에 연속적으로 저장되어 있다는 가정하에 작동하는 것이다. 하지만 그렇지 않은 경우&lt;b&gt;! 파일이 조각나서 저장되는 비연속적 할당이 발생한다면 문제가 생긴다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;11&quot;&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;11,0,0&quot; data-index-in-node=&quot;0&quot;&gt;문제점:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;헤더 시그니처를 찾아서 데이터를 쭉 읽어가는데,&lt;u&gt; 중간에 다른 파일의 데이터가 끼어있거나 진짜 데이터는 디스크의 다른 저 멀리 떨어져 있는 곳에 저장되어 있다면?&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;11,1,0&quot; data-index-in-node=&quot;0&quot;&gt;결과:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;복구된 파일이 깨지거나, 다른 파일과 섞여서 열리지 않는 현상이 발생함&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;시그니처 기반 파일 카빙&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;각 파일의 고유 시그니처를 이용해 파일을 카빙하는 방식&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;시그니처에는 헤더(Header)와 푸터(Footer)시그니처가 존재하는데, 이 시그니처를 이용해 파일의 종류를 파악한 후 숨겨진 데이터를 찾아내거나 복구할 수 있는 것이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;다양한 파일 시그니처&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;855&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q9beU/dJMcacXqBIo/6YiKhlBAi27K4tXwuOqgj1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q9beU/dJMcacXqBIo/6YiKhlBAi27K4tXwuOqgj1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q9beU/dJMcacXqBIo/6YiKhlBAi27K4tXwuOqgj1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq9beU%2FdJMcacXqBIo%2F6YiKhlBAi27K4tXwuOqgj1%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;855&quot; height=&quot;421&quot; data-origin-width=&quot;855&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&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;h2 data-ke-size=&quot;size26&quot;&gt;CTF 문제 제작 아이디어&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;(1) 기본 시그니처 결합&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;말그대로 두 가지의 시그니처를 결합하는 방식&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;정상적인 이미지 파일(egg.png) 뒤에 플래그가 적힌 파일(flag.zip)을 통째로 붙여버리는 방식&lt;/u&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제작 방법&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 리눅스 명령어:&lt;/b&gt; cat egg,png flag.zip&amp;nbsp; &amp;gt;&amp;nbsp; chicken.png&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 윈도우: &lt;/b&gt;copy /b egg.png + flag.zip chicken.png&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;결과: 두 파일이 합쳐진 하나의 png 파일이 나온다&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;의도:&lt;/b&gt; 플레이어가 파일의 헤더를 보고 PNG인 걸 알았지만, HxD로 열어보니 맨 뒤에 ZIP 파일의 헤더 시그니처(50 4B 03 04)와 푸터가 있는 것을 발견하고, 이를 직접 잘라내거나(Carving) 카빙 툴을 돌려 획득하도록 하는 것&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;그렇다면 합쳐진 사진은 제대로 보이나??&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;찾아보니까 이미지 뷰어 프로그램들은 사진 파일을 열 때 파일의 전체 크기를 보지 않고, 오직 &lt;b data-index-in-node=&quot;46&quot; data-path-to-node=&quot;4&quot;&gt;PNG 시그니처의 규칙&lt;/b&gt;만 보고 작동한다고 함! 그래서 그 뒤에 붙어있는 flag.zip 데이터가 무엇이든 간에, 이미지 뷰어 입장에서는 PNG의 IEND 뒤에 있는 데이터들은 쓰레기 데이터로 취급하기 때문에 무시하고 앞의 egg.png 사진만 깔끔하게 띄워준다!(이부분은 걱정X)&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; 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-origin-width=&quot;1642&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSIWT8/dJMcahxG4vW/SiKbWwoQVcVxtTiMxh1U3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSIWT8/dJMcahxG4vW/SiKbWwoQVcVxtTiMxh1U3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSIWT8/dJMcahxG4vW/SiKbWwoQVcVxtTiMxh1U3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSIWT8%2FdJMcahxG4vW%2FSiKbWwoQVcVxtTiMxh1U3K%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;1642&quot; height=&quot;672&quot; data-origin-width=&quot;1642&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; 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-origin-width=&quot;2114&quot; data-origin-height=&quot;1218&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ndI23/dJMcahxG4wh/0XsWI9Oio83R6LdHCC5LEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ndI23/dJMcahxG4wh/0XsWI9Oio83R6LdHCC5LEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ndI23/dJMcahxG4wh/0XsWI9Oio83R6LdHCC5LEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FndI23%2FdJMcahxG4wh%2F0XsWI9Oio83R6LdHCC5LEK%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;2114&quot; height=&quot;1218&quot; data-origin-width=&quot;2114&quot; data-origin-height=&quot;1218&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1224&quot; data-origin-height=&quot;484&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VDZa5/dJMcac4btyf/PmjySKvsly86lAF2BeWQ41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VDZa5/dJMcac4btyf/PmjySKvsly86lAF2BeWQ41/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VDZa5/dJMcac4btyf/PmjySKvsly86lAF2BeWQ41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVDZa5%2FdJMcac4btyf%2FPmjySKvsly86lAF2BeWQ41%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;1224&quot; height=&quot;484&quot; data-origin-width=&quot;1224&quot; data-origin-height=&quot;484&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jpeg 푸터 시그니처 이후 바로 zip파일 시그니처인 PK가 보임&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1538&quot; data-origin-height=&quot;513&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bllIDT/dJMcaak0e0d/yr9b7lcKYacxm2Jy3qiNS1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bllIDT/dJMcaak0e0d/yr9b7lcKYacxm2Jy3qiNS1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bllIDT/dJMcaak0e0d/yr9b7lcKYacxm2Jy3qiNS1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbllIDT%2FdJMcaak0e0d%2Fyr9b7lcKYacxm2Jy3qiNS1%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;1538&quot; height=&quot;513&quot; data-origin-width=&quot;1538&quot; data-origin-height=&quot;513&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;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;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;(2)&amp;nbsp; 파일 구조체 변조 (훼손된 시그니처)&amp;nbsp;&lt;/h3&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;헤더나 푸터 시그니처, 내부 크기 정보&lt;/u&gt;를 임의로 수정하는 방식&lt;/p&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;--&amp;gt; 내부 크기 정보도 예전에 풀었던 width랑 height 크기를 다르게 만들어서 flag 숨겨두고... 그런 문제가 기억나긴하네요...ㅎ&lt;/p&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;제작 방법(1)&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;-&amp;nbsp; &lt;/b&gt;PNG 파일의 헤더(89 50 4E 47)를 AA BB CC DD 같은 엉뚱한 값으로 바꾸기&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;의도: &lt;/b&gt;일반적인 자동 카빙 툴은 헤더 시그니처 기반이라 이 파일을 못 찾아낸다고 함. 하지만 이 이미지파일을 HxD로 훑어보다가, 파일 중간에 PNG의 청크 데이터(IHDR, IDAT 등) 구조를 발견하고 PNG파일인 것을 깨닫고 헤더를 복구한 뒤 카빙해가는 것&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1372&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/drHsbW/dJMcahxG5lY/KYFKwlxjxgu9LkF7N2zKQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/drHsbW/dJMcahxG5lY/KYFKwlxjxgu9LkF7N2zKQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/drHsbW/dJMcahxG5lY/KYFKwlxjxgu9LkF7N2zKQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdrHsbW%2FdJMcahxG5lY%2FKYFKwlxjxgu9LkF7N2zKQ1%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;1372&quot; height=&quot;655&quot; data-origin-width=&quot;1372&quot; data-origin-height=&quot;655&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;PNG의 헤더 시그니처를 아예 다른 값으로 없애버리고 IHDR, IEND 이런 정보만으로 찾을 수 있도록 하는거지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그대신 헤더를 망가뜨리면 해당 png파일은 형식이 이상하다고 열리지는 않음(이건 좀 많이 쉬울 수도 있겠다)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2129&quot; data-origin-height=&quot;1210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ao2iA/dJMcaiDlxqe/fOJ4wr7NjbQRV3T01XncJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ao2iA/dJMcaiDlxqe/fOJ4wr7NjbQRV3T01XncJ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ao2iA/dJMcaiDlxqe/fOJ4wr7NjbQRV3T01XncJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAo2iA%2FdJMcaiDlxqe%2FfOJ4wr7NjbQRV3T01XncJ0%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;2129&quot; height=&quot;1210&quot; data-origin-width=&quot;2129&quot; data-origin-height=&quot;1210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아 그러니까 두 파일을 합친다고 생각을 하면, 처음 부분 말고 뒷 부분을 시그니처 훼손해도 괜찮겠다. 만약 첫 파일이 PNG파일이거나 이미지파일이면 깨지지는 않으니까&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;b&gt;제작 방법(2)&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot; data-path-to-node=&quot;15,0,1&quot;&gt;
&lt;li&gt;아래쪽에 플래그를 적어둔 이미지를 만들고, 아래쪽 공간에 플래그를 배치한다.&lt;/li&gt;
&lt;li&gt;HxD로 이 파일을 열면 맨 앞 헤더 바로 뒤에 IHDR 문자열이 보인다.&lt;/li&gt;
&lt;li&gt;IHDR 글자 바로 뒤쪽을 보면 &lt;u&gt;가로 크기(4바이트)와&lt;span&gt;&amp;nbsp;&lt;/span&gt;세로 크기(4바이트)데이터가 순서대로 들어있다.&lt;/u&gt;&lt;/li&gt;
&lt;li&gt;예를 들어 세로 크기 값이 바이너리로 00 00 03 E8(십진수 1000)로 되어 있다면, 이걸 00 00 02 BC(십진수 700) 정도로 줄여서 덮어쓰는 것&lt;br /&gt;&lt;br /&gt;&lt;b data-path-to-node=&quot;15,0,1,4,0&quot; data-index-in-node=&quot;0&quot;&gt;문제 만들 시 중요한 사항!!!&lt;br /&gt;&lt;/b&gt;PNG는 데이터 무결성을 위해 청크마다 CRC(오류 검증 코드)를 쓴다.&lt;br /&gt;즉, 크기를 강제로 바꾸면 CRC 에러가 나서 아예 사진이 안 열릴 수 있으므로 파이썬 스크립트로 조작된 세로 크기에 맞게 CRC 값까지 새로 계산해서 수정해줘야하는 것을 잊지 말기!!&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;krita(그림판) 이용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;가로 800,&lt;/span&gt;&lt;span&gt; 세로 &lt;/span&gt;&lt;b data-index-in-node=&quot;11&quot; data-path-to-node=&quot;6,1,0&quot;&gt;1000픽셀&lt;/b&gt;&lt;span&gt;짜리 흰색 이미지를 만들고 flag를 700 밑에다가 써줌&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;792&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d4oV0x/dJMcaayzOXf/dmAdsuJsLO068CmtJf8JI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d4oV0x/dJMcaayzOXf/dmAdsuJsLO068CmtJf8JI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d4oV0x/dJMcaayzOXf/dmAdsuJsLO068CmtJf8JI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd4oV0x%2FdJMcaayzOXf%2FdmAdsuJsLO068CmtJf8JI1%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;1147&quot; height=&quot;792&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;792&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hxd로 열어주고 너비, 높이 확인해주기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1366&quot; data-origin-height=&quot;989&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPiLHD/dJMcaiwzuHH/Z6hGv0pfVakNaUQW00Up2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPiLHD/dJMcaiwzuHH/Z6hGv0pfVakNaUQW00Up2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPiLHD/dJMcaiwzuHH/Z6hGv0pfVakNaUQW00Up2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPiLHD%2FdJMcaiwzuHH%2FZ6hGv0pfVakNaUQW00Up2K%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;1366&quot; height=&quot;989&quot; data-origin-width=&quot;1366&quot; data-origin-height=&quot;989&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;35&quot; data-path-to-node=&quot;11,3,0&quot;&gt;00 00 02 BC&lt;/b&gt;&lt;span&gt; (700을 뜻하는 16진수)로 높이 부분을 저장해줌(700으로)&amp;nbsp;&lt;/span&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-origin-width=&quot;1074&quot; data-origin-height=&quot;841&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLqOBz/dJMcaaZB6vI/gREmp7j44Ps91No4qPWSZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLqOBz/dJMcaaZB6vI/gREmp7j44Ps91No4qPWSZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLqOBz/dJMcaaZB6vI/gREmp7j44Ps91No4qPWSZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLqOBz%2FdJMcaaZB6vI%2FgREmp7j44Ps91No4qPWSZ0%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;1074&quot; height=&quot;841&quot; data-origin-width=&quot;1074&quot; data-origin-height=&quot;841&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;그치만 CRC를 꼭 맞춰줘야 함!!&lt;/p&gt;
&lt;pre id=&quot;code_1778935787841&quot; class=&quot;makefile&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;import zlib
import struct

#세로 크기 조작한 hide.png 파일을 바이너리로 읽어오기
F = open(&quot;hide.png&quot;, &quot;rb&quot;)
D = F.read()
F.close()

#크기를 조작한 IHDR 청크 데이터 영역만 떼어냄
IHDR_DATA = D[12:29]

NEW_CRC = zlib.crc32(IHDR_DATA)

NEW_CRC_BIN = struct.pack(&quot;&amp;gt;I&quot;, NEW_CRC)


CHALLENGE_FILE = D[:29] + NEW_CRC_BIN + D[33:]
F = open(&quot;challenge.png&quot;, &quot;wb&quot;)
F.write(CHALLENGE_FILE)
F.close()&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2111&quot; data-origin-height=&quot;1212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nzVHC/dJMcaak0gu2/b8UoEXQRQF6auNqkYTkeOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nzVHC/dJMcaak0gu2/b8UoEXQRQF6auNqkYTkeOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nzVHC/dJMcaak0gu2/b8UoEXQRQF6auNqkYTkeOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnzVHC%2FdJMcaak0gu2%2Fb8UoEXQRQF6auNqkYTkeOk%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;2111&quot; height=&quot;1212&quot; data-origin-width=&quot;2111&quot; data-origin-height=&quot;1212&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플레이어가 hxd로 열어서 크기를 조정해주면(어느정도 몇번은 해보겠지)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2139&quot; data-origin-height=&quot;1230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oUVf3/dJMcahxIk0B/FFKpOMpq9bucdY0z4N6ki1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oUVf3/dJMcahxIk0B/FFKpOMpq9bucdY0z4N6ki1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oUVf3/dJMcahxIk0B/FFKpOMpq9bucdY0z4N6ki1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoUVf3%2FdJMcahxIk0B%2FFFKpOMpq9bucdY0z4N6ki1%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;2139&quot; height=&quot;1230&quot; data-origin-width=&quot;2139&quot; data-origin-height=&quot;1230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;***PNG 파일은 항상 맨 앞에 헤더(8바이트)가 오고, 그 뒤로 &lt;b data-index-in-node=&quot;35&quot; data-path-to-node=&quot;5&quot;&gt;IHDR, IDAT, IEND&lt;/b&gt;라는 청크(Chunk)들이 순서대로 붙는 구조입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;Header:&lt;/b&gt; 89 50 4E 47 0D 0A 1A 0A&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;IHDR 청크:&lt;/b&gt; &lt;u&gt;파일의 메타데이터(가로/세로 크기, 색상 정보 등)&lt;/u&gt;가 들어있는 구간////&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;IDAT 청크:&lt;/b&gt; 실제 이미지 데이터가 압축되어 들어있는 구간&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,3,0&quot;&gt;IEND 청크:&lt;/b&gt; 49 45 4E 44 AE 42 60 82&lt;/li&gt;
&lt;/ul&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;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;(3) 윈도우 아티팩트 내 카빙&lt;/h3&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 용의자가 어떤 이미지를 본 뒤에 삭제를 했음 --&amp;gt; 우리 배운 아티팩트 중에 Thumcache는 삭제되도 데이터가 남는다고 배웠음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Thumbs.db나 thumbcache.db에 작은 미리보기 이미지를 저장함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 플레이어가 이 파일들을 보고 export해서 파일 카빙 기법을 할 수 있게끔 만들 수도 있겠다..!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--&amp;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;&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;</description>
      <category>SWUFORCE/윈도우 포렌식</category>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/82</guid>
      <comments>https://hmyang444.tistory.com/82#entry82comment</comments>
      <pubDate>Sat, 16 May 2026 21:56:47 +0900</pubDate>
    </item>
    <item>
      <title>워게임 - xss-1</title>
      <link>https://hmyang444.tistory.com/81</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #3f3f3f; text-align: left;&quot; data-v-b13878bc=&quot;&quot;&gt;&lt;span style=&quot;color: #1a1a1b;&quot; data-v-b13878bc=&quot;&quot;&gt;문제 설명&lt;/span&gt;&lt;/div&gt;
&lt;div id=&quot;challenge-description&quot; style=&quot;background-color: #ffffff; color: #3f3f3f; text-align: left;&quot; data-v-b13878bc=&quot;&quot;&gt;
&lt;div style=&quot;color: #000000;&quot; data-v-b13878bc=&quot;&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 기능과 입력받은 URL을 확인하는 봇이 구현된 서비스입니다.&lt;br /&gt;&lt;b&gt;XSS 취약점&lt;/b&gt;을 이용해 플래그를 획득하세요. 플래그는&lt;b&gt; flag.txt, FLAG 변수에 있습니다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;플래그 형식은 DH{...} 입니다.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1649&quot; data-origin-height=&quot;476&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ec5NA/dJMcagS4S3j/9k9f5kSxGdIlOGD6A0fBU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ec5NA/dJMcagS4S3j/9k9f5kSxGdIlOGD6A0fBU0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ec5NA/dJMcagS4S3j/9k9f5kSxGdIlOGD6A0fBU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEc5NA%2FdJMcagS4S3j%2F9k9f5kSxGdIlOGD6A0fBU0%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;1649&quot; height=&quot;476&quot; data-origin-width=&quot;1649&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;파이썬 코드와 static폴더, templates 폴더가 있습니당&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;그리고 vm을 부팅해서 웹사이트를 열어주니까&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;799&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FK1oW/dJMcaiQQIco/HnRASCBxDledqfPjeJH1Bk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FK1oW/dJMcaiQQIco/HnRASCBxDledqfPjeJH1Bk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FK1oW/dJMcaiQQIco/HnRASCBxDledqfPjeJH1Bk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFK1oW%2FdJMcaiQQIco%2FHnRASCBxDledqfPjeJH1Bk%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;2879&quot; height=&quot;799&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;799&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 3가지가 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 vuln(xss) 페이지에 들어가면 1이라고 alert대화상자가 뜬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2878&quot; data-origin-height=&quot;1287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8fHNF/dJMcabxsMs5/gPquxPFmixdsTC9LfnSA0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8fHNF/dJMcabxsMs5/gPquxPFmixdsTC9LfnSA0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8fHNF/dJMcabxsMs5/gPquxPFmixdsTC9LfnSA0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8fHNF%2FdJMcabxsMs5%2FgPquxPFmixdsTC9LfnSA0K%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;2878&quot; height=&quot;1287&quot; data-origin-width=&quot;2878&quot; data-origin-height=&quot;1287&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 다음 memo창에 들어가보면 hello라고 뜬다. 다음에 또 들어가면 밑에 hello가 계속 생기는 방식인 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;643&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXAWr8/dJMcai4nOpp/BW1o4c65e2LnxcGXqU6jrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXAWr8/dJMcai4nOpp/BW1o4c65e2LnxcGXqU6jrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXAWr8/dJMcai4nOpp/BW1o4c65e2LnxcGXqU6jrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXAWr8%2FdJMcai4nOpp%2FBW1o4c65e2LnxcGXqU6jrk%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;2879&quot; height=&quot;643&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;643&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;flag창에 들어가면 URL을 입력할 수 있는 듯 보인다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;505&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIVJnE/dJMcahYK8XI/IThPjkFrFDSQxw98uZhnf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIVJnE/dJMcahYK8XI/IThPjkFrFDSQxw98uZhnf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIVJnE/dJMcahYK8XI/IThPjkFrFDSQxw98uZhnf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIVJnE%2FdJMcahYK8XI%2FIThPjkFrFDSQxw98uZhnf1%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;2879&quot; height=&quot;505&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;505&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1779156361099&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/usr/bin/python3
from flask import Flask, request, render_template
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
import urllib
import os

app = Flask(__name__)
app.secret_key = os.urandom(32)

try:
    FLAG = open(&quot;./flag.txt&quot;, &quot;r&quot;).read()
except:
    FLAG = &quot;[**FLAG**]&quot;


def read_url(url, cookie={&quot;name&quot;: &quot;name&quot;, &quot;value&quot;: &quot;value&quot;}):
    cookie.update({&quot;domain&quot;: &quot;127.0.0.1&quot;})
    driver = None
    try:
        service = Service(executable_path=&quot;/usr/local/bin/chromedriver&quot;)
        options = webdriver.ChromeOptions()
        options.binary_location = &quot;/usr/bin/google-chrome&quot;
        for _ in [
            &quot;headless&quot;,
            &quot;window-size=1920x1080&quot;,
            &quot;disable-gpu&quot;,
            &quot;no-sandbox&quot;,
            &quot;disable-dev-shm-usage&quot;,
        ]:
            options.add_argument(_)
        driver = webdriver.Chrome(service=service, options=options)
        driver.implicitly_wait(3)
        driver.set_page_load_timeout(3)
        driver.get(&quot;http://127.0.0.1:8000/&quot;)
        driver.add_cookie(cookie)
        driver.get(url)
    except Exception as e:
        # return str(e)
        return False
    finally:
        if driver is not None:
            driver.quit()
    return True


def check_xss(param, cookie={&quot;name&quot;: &quot;name&quot;, &quot;value&quot;: &quot;value&quot;}):
    url = f&quot;http://127.0.0.1:8000/vuln?param={urllib.parse.quote(param)}&quot;
    return read_url(url, cookie)


@app.route(&quot;/&quot;)
def index():
    return render_template(&quot;index.html&quot;)


@app.route(&quot;/vuln&quot;)
def vuln():
    param = request.args.get(&quot;param&quot;, &quot;&quot;)
    return param


@app.route(&quot;/flag&quot;, methods=[&quot;GET&quot;, &quot;POST&quot;])
def flag():
    if request.method == &quot;GET&quot;:
        return render_template(&quot;flag.html&quot;)
    elif request.method == &quot;POST&quot;:
        param = request.form.get(&quot;param&quot;)
        if not check_xss(param, {&quot;name&quot;: &quot;flag&quot;, &quot;value&quot;: FLAG.strip()}):
            return '&amp;lt;script&amp;gt;alert(&quot;wrong??&quot;);history.go(-1);&amp;lt;/script&amp;gt;'

        return '&amp;lt;script&amp;gt;alert(&quot;good&quot;);history.go(-1);&amp;lt;/script&amp;gt;'


memo_text = &quot;&quot;


@app.route(&quot;/memo&quot;)
def memo():
    global memo_text
    text = request.args.get(&quot;memo&quot;, &quot;&quot;)
    memo_text += text + &quot;\n&quot;
    return render_template(&quot;memo.html&quot;, memo=memo_text)


app.run(host=&quot;0.0.0.0&quot;, port=8000)&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;계속 시도해봣는데 진짜 너무 어려워서...writeup을 봐주엇습니다........ㅠ&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) vuln(xss) page: param을 인자로 가져와서 화면에 표시함/ alert로 띄움&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;(2) flag page: 메소드를 get이나 post로 가져오는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;get인 경우 flag.html으로 이동하고, post인 경우 check_xss를 진행함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--&amp;gt; check_xss를 보면 alert대화상자가 보이는 것이 vuln()페이지로 이동하는 것이라고 함!!!&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) memo page: memo의 인자를 가져와서 memo_text를 출력함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #121314; color: #bbbebf;&quot;&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;@&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;app&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;route&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;/flag&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #ffa657;&quot;&gt;methods&lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;[&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;GET&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;POST&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;])&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #ff7b72;&quot;&gt;def&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;flag&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;():&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;request&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;method&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;GET&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;render_template&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;flag.html&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;elif&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;request&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;method&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;==&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;POST&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d4d4d4;&quot;&gt;=&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;request&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;form&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;get&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;param&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;if&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #569cd6;&quot;&gt;not&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;check_xss&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: #c9d1d9;&quot;&gt;param&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;, {&lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;name&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;flag&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;&quot;value&quot;&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;: &lt;/span&gt;&lt;span style=&quot;color: #79c0ff;&quot;&gt;FLAG&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;.&lt;/span&gt;&lt;span style=&quot;color: #d2a8ff;&quot;&gt;strip&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;()}):&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'&amp;lt;script&amp;gt;alert(&quot;wrong??&quot;);history.go(-1);&amp;lt;/script&amp;gt;'&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span style=&quot;color: #c586c0;&quot;&gt;return&lt;/span&gt;&lt;span style=&quot;color: #bbbebf;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #a5d6ff;&quot;&gt;'&amp;lt;script&amp;gt;alert(&quot;good&quot;);history.go(-1);&amp;lt;/script&amp;gt;'&lt;/span&gt;&lt;/div&gt;
&lt;/div&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;check_xss를 하면 name: flag이고, value는 flag.strip(), &lt;u&gt;그러니까 cookie값이 생성되는 것임&lt;/u&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;b&gt;flag page에 내가 url을 입력할 수 있는데, memo창에 cookie값이 뜰 수 있도록 memo창으로 이동하게 시켜주면 됨(use param)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot;&gt;http://127.0.0.1:8000/vuln?param=&lt;/span&gt;&amp;nbsp;&amp;lt;script&amp;gt;memo?memo=hello + document.cookie&amp;lt;/script&amp;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;찾아보니까 script태그 안에 다른 location이나 href 태그를 같이 사용해야 한다고 함&lt;/p&gt;
&lt;div data-ved=&quot;0CAAQhtANahcKEwiD36P8pMSUAxUAAAAAHQAAAAAQOA&quot; data-hveid=&quot;0&quot;&gt;
&lt;pre class=&quot;python&quot; data-ke-language=&quot;python&quot;&gt;&lt;code&gt;http://127.0.0.1:8000/vuln?param=&amp;lt;script&amp;gt;location.href='http://127.0.0.1:8000/memo?memo=' %2b document.cookie;&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1432&quot; data-origin-height=&quot;411&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Op1bN/dJMcaffC161/HVMdk4rbOW0riZJSm8bOP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Op1bN/dJMcaffC161/HVMdk4rbOW0riZJSm8bOP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Op1bN/dJMcaffC161/HVMdk4rbOW0riZJSm8bOP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOp1bN%2FdJMcaffC161%2FHVMdk4rbOW0riZJSm8bOP1%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;1432&quot; height=&quot;411&quot; data-origin-width=&quot;1432&quot; data-origin-height=&quot;411&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;써주고 url창에 /memo를 쳐서 들어가보니&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1371&quot; data-origin-height=&quot;421&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Sq3uw/dJMcaii4hlG/JKWFjMaptei64PjEqhlMb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Sq3uw/dJMcaii4hlG/JKWFjMaptei64PjEqhlMb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Sq3uw/dJMcaii4hlG/JKWFjMaptei64PjEqhlMb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSq3uw%2FdJMcaii4hlG%2FJKWFjMaptei64PjEqhlMb0%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;1371&quot; height=&quot;421&quot; data-origin-width=&quot;1371&quot; data-origin-height=&quot;421&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DH{2c01577e9542ec24d68ba0ffb846508e}&lt;/p&gt;</description>
      <category>SWUFORCE/워게임</category>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/81</guid>
      <comments>https://hmyang444.tistory.com/81#entry81comment</comments>
      <pubDate>Fri, 15 May 2026 18:45:14 +0900</pubDate>
    </item>
    <item>
      <title>국가 망 보안체계(N2SF) 시대 본격화: &amp;lsquo;국가 사이버보안 기본지침&amp;rsquo; 개정으로 달라지는 공공 보안</title>
      <link>https://hmyang444.tistory.com/80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.igloo.co.kr/security-information/%eb%b3%b4%ec%95%88-101-%ea%b5%ad%ea%b0%80-%eb%a7%9d-%eb%b3%b4%ec%95%88%ec%b2%b4%ea%b3%84n2sf-%ec%8b%9c%eb%8c%80-%eb%b3%b8%ea%b2%a9%ed%99%94-%ea%b5%ad%ea%b0%80-%ec%82%ac%ec%9d%b4%eb%b2%84/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.igloo.co.kr/security-information/%eb%b3%b4%ec%95%88-101-%ea%b5%ad%ea%b0%80-%eb%a7%9d-%eb%b3%b4%ec%95%88%ec%b2%b4%ea%b3%84n2sf-%ec%8b%9c%eb%8c%80-%eb%b3%b8%ea%b2%a9%ed%99%94-%ea%b5%ad%ea%b0%80-%ec%82%ac%ec%9d%b4%eb%b2%84/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778832403394&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[보안 101] 국가 망 보안체계(N2SF) 시대 본격화: &amp;lsquo;국가 사이버보안 기본지침&amp;rsquo; 개정으로 달라지는&quot; data-og-description=&quot;[보안 101]&amp;nbsp;더보기 ▶ 매달 하나의 주제를 선정해 질문을 던지며, 보안에 한 걸음 더 가까이 다가갑니다.복잡하고 어렵게 느껴질 수 있는 보안 지식을 초보자도 쉽게 이해할 수 있도록, 기초 개념&quot; data-og-host=&quot;www.igloo.co.kr&quot; data-og-source-url=&quot;https://www.igloo.co.kr/security-information/%eb%b3%b4%ec%95%88-101-%ea%b5%ad%ea%b0%80-%eb%a7%9d-%eb%b3%b4%ec%95%88%ec%b2%b4%ea%b3%84n2sf-%ec%8b%9c%eb%8c%80-%eb%b3%b8%ea%b2%a9%ed%99%94-%ea%b5%ad%ea%b0%80-%ec%82%ac%ec%9d%b4%eb%b2%84/&quot; data-og-url=&quot;https://www.igloo.co.kr/security-information/보안-101-국가-망-보안체계n2sf-시대-본격화-국가-사이버/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bTMqmc/dJMb8SpM52J/KUm7MRsq4uV7pYOQSlM2Ak/img.jpg?width=920&amp;amp;height=624&amp;amp;face=0_0_920_624&quot;&gt;&lt;a href=&quot;https://www.igloo.co.kr/security-information/%eb%b3%b4%ec%95%88-101-%ea%b5%ad%ea%b0%80-%eb%a7%9d-%eb%b3%b4%ec%95%88%ec%b2%b4%ea%b3%84n2sf-%ec%8b%9c%eb%8c%80-%eb%b3%b8%ea%b2%a9%ed%99%94-%ea%b5%ad%ea%b0%80-%ec%82%ac%ec%9d%b4%eb%b2%84/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.igloo.co.kr/security-information/%eb%b3%b4%ec%95%88-101-%ea%b5%ad%ea%b0%80-%eb%a7%9d-%eb%b3%b4%ec%95%88%ec%b2%b4%ea%b3%84n2sf-%ec%8b%9c%eb%8c%80-%eb%b3%b8%ea%b2%a9%ed%99%94-%ea%b5%ad%ea%b0%80-%ec%82%ac%ec%9d%b4%eb%b2%84/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bTMqmc/dJMb8SpM52J/KUm7MRsq4uV7pYOQSlM2Ak/img.jpg?width=920&amp;amp;height=624&amp;amp;face=0_0_920_624');&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;[보안 101] 국가 망 보안체계(N2SF) 시대 본격화: &amp;lsquo;국가 사이버보안 기본지침&amp;rsquo; 개정으로 달라지는&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[보안 101]&amp;nbsp;더보기 ▶ 매달 하나의 주제를 선정해 질문을 던지며, 보안에 한 걸음 더 가까이 다가갑니다.복잡하고 어렵게 느껴질 수 있는 보안 지식을 초보자도 쉽게 이해할 수 있도록, 기초 개념&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.igloo.co.kr&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;국가정보원은 최근 '국가 사이버보안 기본지침' 개정안을 발표해, 국가 망 보안체계(N2SF)를 공식 반영하고 &lt;b&gt;정보 중요도에 따라 보안 수준을 차등적으로 적용하는 공공 보안 정책 개편&lt;/b&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://www.ncsc.go.kr/template/resources/file/nis_guide_lines_2023_1_31.pdf&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.ncsc.go.kr/template/resources/file/nis_guide_lines_2023_1_31.pdf &lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[국가 사이버보안 기본 지침]&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;왜 지금 공공 보안 정책이 바뀌고 있을까?&lt;/h2&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;장점: 외부 인터넷의 침입 가능성을 원천적으로 줄일 수 있음 --&amp;gt; 높은 보안성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 IT 환경은 &amp;nbsp;&lt;b&gt;생성형 AI, 클라우드, SaaS 기반 협업 환경, 원격근무 등 새로운 업무 방식이 확산되면서 &lt;/b&gt;기존의 망 분리 정책만으로는 변화하는 업무 환경을 수용하기가 어려워졌다.&lt;span style=&quot;background-color: #f3f3f3; color: #000000; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;특히 공공기관 역시 AI 기반 업무 혁신과 클라우드 활용 수요가 증가하면서, 보안을 유지하면서도 새로운 기술을 활용할 수 있는 방향에 대한 요구가 커지고 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;즉, 국정원에서는&lt;b&gt; 차단 중심 ---&amp;gt; 차등 적용 으로 체계를 바꾸고 싶어 한다.&lt;/b&gt;&lt;/h4&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;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;N2SF 기반 보안 체제&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개정안의 핵심: N2SF를 국가 사이버보안 기본지침에 공식적으로 반영한 점&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;실제 개정 지침의 내부망과 인터넷망 분리를 규정하던 기존 조문이 삭제되고, 「국가 망 보안체계(N2SF)」조항이 신설되며&lt;b&gt; 업무정보의 등급 식별과 처리, 정보시스템 위치, 보안통제 등에 관한 기준이 새롭게 포함되었다.&lt;/b&gt;&lt;/span&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;b&gt;업무 정보를 중요도에 따라 &lt;u&gt;기밀등급(Classified)&amp;middot;민감등급(Sensitive)&amp;middot;공개등급(Open)&lt;/u&gt;으로 구분하고,&lt;u&gt; 각 등급에 따라 서로 다른 보안 통제를 적용&lt;/u&gt;하게 됩니다. &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;&lt;b&gt;즉 망 분리 &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;nbsp; 어떤 정보를 어떻게 보호할 것인가 &lt;/b&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기밀등급(C): 국가 안보나 정책에 영향을 줄 수 있는 핵심 정보&lt;/li&gt;
&lt;/ul&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;민감등급(S): 내부 정책 검토 자료, 의사결정 과정 자료, &lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;일부 개인정보와 같은 정보는 암호화&amp;middot;접근통제 등 필요한 보안 요건을 충족할 경우 외부망이나 클라우드 환경에서도 활용할 수 있다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공개등급(O): 일반 인터넷 환경과 상용 클라우드 활용이 가능한 영역&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;이미 공개된 보도자료나 공공데이터와 같이 외부 공개가 가능한 정보는 민간과 유사한 형태의 업무 환경에서 보다 유연하게 활용될 가능성이 커지고 있다.&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&lt;/span&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정보의 중요도와 활용 목적, 접근 환경 등을 종합적으로 고려해 보호 수준을 정교하게 설계하는 데이터 중심 보안 체계로 공공 보안 운영 방향이 이동하고 있다는 것을 뜻한다.&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-origin-width=&quot;1028&quot; data-origin-height=&quot;1199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZw0z7/dJMcajoDj2o/79U9WV5xZtkgnQlEIOzdk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZw0z7/dJMcajoDj2o/79U9WV5xZtkgnQlEIOzdk1/img.png&quot; data-alt=&quot;(출처: 국가정보원 &amp;amp;lsquo;국가 망 보안체계(N2SF) 보안가이드라인 1.0&amp;amp;rsquo;)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZw0z7/dJMcajoDj2o/79U9WV5xZtkgnQlEIOzdk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZw0z7%2FdJMcajoDj2o%2F79U9WV5xZtkgnQlEIOzdk1%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;1028&quot; height=&quot;1199&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;1199&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(출처: 국가정보원 &amp;lsquo;국가 망 보안체계(N2SF) 보안가이드라인 1.0&amp;rsquo;)&lt;/figcaption&gt;
&lt;/figure&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-origin-width=&quot;693&quot; data-origin-height=&quot;920&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c2eaK6/dJMcadWi9WU/nqPnF4th5qUZGoQMkvusz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c2eaK6/dJMcadWi9WU/nqPnF4th5qUZGoQMkvusz1/img.png&quot; data-alt=&quot;(출처: 국가정보원 &amp;amp;lsquo;국가 망 보안체계(N2SF) 보안가이드라인 1.0&amp;amp;rsquo;)&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c2eaK6/dJMcadWi9WU/nqPnF4th5qUZGoQMkvusz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc2eaK6%2FdJMcadWi9WU%2FnqPnF4th5qUZGoQMkvusz1%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;693&quot; height=&quot;920&quot; data-origin-width=&quot;693&quot; data-origin-height=&quot;920&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;(출처: 국가정보원 &amp;lsquo;국가 망 보안체계(N2SF) 보안가이드라인 1.0&amp;rsquo;)&lt;/figcaption&gt;
&lt;/figure&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;&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;</description>
      <category>SWUFORCE/기술 보고서</category>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/80</guid>
      <comments>https://hmyang444.tistory.com/80#entry80comment</comments>
      <pubDate>Fri, 15 May 2026 17:44:05 +0900</pubDate>
    </item>
    <item>
      <title>광주지방법원 2025노2116 판결문(Opinion)</title>
      <link>https://hmyang444.tistory.com/79</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;광주지방법원 2025노2116 판결문을 보면서 좀 더 생각할 수 있는 insight나 나의 의견들을 정리헤보려고 한다.&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;span style=&quot;background-color: #ffc1c8;&quot;&gt;&lt;b&gt;1. CCTV 보관 방식 문제&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;피고인이 수사기관에 제출했던 &lt;b&gt;날짜 미상 9건 등 13건의 CCTV 녹화자료&lt;/b&gt;가 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 피고인이 수사기관에 제공한 사실은 누설에 해당하지만, 대법원은 조합장 C의 실제 범죄 사실을 공론화하고, 해당 조합을 위한 청렴성과 공익성의 행위의 측면에서 정당행위로 인정을 받았다. 하지만 피고인이 조합에서 경제상무로 근무를 했을 때 얻었던 CCTV 자료를 후일에 자신의 이익을 위해 보관해놓은 것이라는 의혹도 있다. 실제로 전 판결문에서는 개인적인 이유로 CCTV영상을 사용해 C를 고발했다고 판단했었다.&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;b&gt;피고인이 사직하고 나서 벌어진 사건이다.&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;CCTV는 고정형 영상정보처리기기&lt;/b&gt;이기 때문에 공개된 장소에서 원칙적으로 금지하지만, &lt;b&gt;범죄행위나 증거확보를 위해 허용한다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서&lt;b&gt; CCTV를 촬영하는 것은 문제가 되지 않는다.&lt;/b&gt; &lt;b&gt;그렇지만 CCTV 보관 기간이나, 해당 목적이 사라지면 CCTV를 파기해야 한다&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;&lt;u&gt;&lt;b&gt;대법원은 C의 부조리한 장면만 따로 모은 CCTV를 보관해놓은 것이 큰 문제가 아니라고 판단한 것일까? &lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;물론 그 영상을 다른 제3자에게 유출했다는 정황은 없지만, 왜 이 원칙들은 경시되는 것일까?&amp;nbsp;&lt;/b&gt;&lt;/u&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;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;CCTV 사적 보관, 위법?&lt;/h3&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;피고인이 퇴사 후에도 해당 영상을 가지고 있었다는 점은 법적으로 충분한 논란의 여지가 있다고 생각한다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;일단 먼저, 원칙적으로 개인정보 보호법 상 수집 목적인 범죄 예방, 시설 관리라는 목적이 달성되거나, 보관 기간이 지나면 CCTV 영상은 자연스럽게 파기되는 것이 원칙이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot; data-path-to-node=&quot;5&quot;&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;4,0,0&quot; data-index-in-node=&quot;0&quot;&gt;개인정보 보호법 제21조 (개인정보의 파기):&lt;br /&gt;&lt;/b&gt;개인정보 처리는 수집&amp;middot;이용 목적이 달성되면&lt;span&gt;&amp;nbsp;&lt;/span&gt;지체 없이&lt;span&gt;&amp;nbsp;&lt;/span&gt;그 개인정보를 파기해야 합니다.&lt;/li&gt;
&lt;li&gt;&lt;b data-path-to-node=&quot;4,1,0&quot; data-index-in-node=&quot;0&quot;&gt;개인정보 보호법 제25조 (영상정보처리기기의 설치&amp;middot;운영 제한):&lt;br /&gt;&lt;/b&gt;CCTV 운영자는 설치 목적(범죄예방 등) 외의 목적으로 기기를 조작하거나 다른 곳을 비춰서는 안 되며, 녹화된 정보는 안전하게 관리해야 합니다.&lt;br /&gt;통상 표준 개인정보 보호지침에 따라&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b data-path-to-node=&quot;4,1,1,1,0&quot; data-index-in-node=&quot;20&quot;&gt;30일 이내&lt;/b&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;파기를 권고합니다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;사직한 피고인이 재직 중 취득한 CCTV를 자신이 계속 가지고 있을 수 있게 저장매체에 담은 행위는 그 자체로&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;기술적, 관리적 보호조치 위반이나 개인정보 오남용에 해당할 가능성이 클 수 있다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;#기술적, 관리적 보호조치 위반&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;- 기술적 보호조치: 시스템적으로 보호하는 장치들&amp;nbsp; ex. 암호화, 저장 기록, 매체 보관&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;- 관리적 보호조치: 운영규칙들 ex. 내부 관리계획 수립, 개인정보보호책임자 지정 등&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;#개인정보 오남용: 수집 목적 범위를 벗어나서 사용하거나, 권한을 가진 자가 사적인 목적으로 사용하는 것&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;--&amp;gt; (사적인 동기를 가지고)고발하기 위한 것은 수집 목적에 해당하지도 않고, 상무 이사라는 권한을 가졌었던 자가 CCTV를 개인적으로 수집한 것 모두 해당함&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;법원은 어떤 판단을 했는가?&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;대법원: 실질주의적 판단을 해서, &lt;b&gt;절차적 위법성보다는 실질적 정의를 우선할 때가 있다.&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;이 사건에서도 법원은 피고인이 CCTV를 수집한 과정은 불완전(동의 없는 수집 및 보관)했을지라도, 그 결과(범죄 적발 및 공익 실현)의 가치가 훨씬 크다고 본 것이다.&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;해당 영상이 만약 수사기관이 아니라 다른 제3자에게 전달되거나, 다른 용도로 유출될 가능성을 고려하면 개인정보를 오남용하고 누출할 경각심이 좀 덜한 것이 아닌가 생각이 든다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이 판결은 결과적으로 공익을 실현했기 때문에 무죄가 되었지만, 보안 관리 측면에서는 매우 위험한 선례가 될 수 있다고 생각한다.&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;성공하면 정당행위로 무죄가 되고 실패하면 유죄가 됨&lt;br /&gt;&lt;/b&gt;만약 피고인이 제출한 자료가 유죄 판결로 이어지지 않았거나 범죄 혐의와 관련이 낮았다면, 피고인은 당연히 개인정보 보호법 위반으로 처벌받을 것이다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;사적 수집 및 사용의 정당화 우려&lt;/b&gt;&lt;br /&gt;공익을 위해서라면 일단 데이터를 복제해서 가지고 나가도 된다는 잘못된 인식을 심어줄 수 있ek.&lt;br /&gt;퇴사 시, 기업 입장에서는 자신들의 데이터의 반출 금지를 중요시 할 수 밖에 없다. 이런 기업 보안 정책이 무력화될 수도 있는 문제가 발생하지 않을까 생각이 든다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size18&quot;&gt;My Opinion&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;또한 영상 데이터의 특성을 생각해보자&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;영상데이터는 한 번 복제되어 유출된다면 완벽한 회수는 거의 불가능하다. 많은 2차, 3차 유출이 발생하게 되는 것이다. 즉, 피고인이 선한 의도로 보관했을지라도 피고인의 저장매체가 훼손된다든지, 해킹을 통한 유출이 발생하게 되면 의도치 않은 개인정보 유출 문제가 심각화될 위험이 있다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;또한 영상이 수사기관에게 제공하는 것을 한정되어 있는 이유를 생각해보자&lt;/b&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; 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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그렇다면 이번에는 현실적으로 생각해보자.&lt;/b&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;또한 일반인이 수사기관에 고발할 때, 구체적인 증거 없이 말만으로 행위를 고발하려고 하는 것은 말이 안된다. 그렇게 수사를 해주도 않고.... 중요한 증거가 있냐고 물어볼 것이고....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;i&gt;--&amp;gt; 그렇다면 어떤 방안이 생겨야 할까....?????&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&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;&lt;u&gt;&lt;b&gt;고발자가 적법하게 증거자료를 수집할 수 있는 무언가가 있어야 하지 않을까...(당연한 말이지만...)&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 찾아봤더니,, 공익신고 전담 창구라든지, &lt;b&gt;&lt;u&gt;증거 보존 신청&lt;/u&gt;&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;데이터를 안전하고 적법하게 인정받을 수 있게끔 수사기관에 넘길 수 있는 &lt;b&gt;기술적인 방안들이&lt;/b&gt; 우리 사회에 나와야 한다고 생각한다.&lt;/p&gt;</description>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/79</guid>
      <comments>https://hmyang444.tistory.com/79#entry79comment</comments>
      <pubDate>Thu, 14 May 2026 00:07:53 +0900</pubDate>
    </item>
    <item>
      <title>워게임 - Steg-Pack</title>
      <link>https://hmyang444.tistory.com/78</link>
      <description>&lt;div style=&quot;background-color: #ffffff; color: #3f3f3f; text-align: left;&quot; data-v-b13878bc=&quot;&quot;&gt;&lt;span style=&quot;color: #1a1a1b;&quot; data-v-b13878bc=&quot;&quot;&gt;문제 설명: &lt;/span&gt;&lt;span style=&quot;color: #000000; letter-spacing: 0px;&quot;&gt;가짜 flag를 피해서 진짜 flag를 찾아라!@&lt;/span&gt;&lt;/div&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.png파일이 하나 있음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2139&quot; data-origin-height=&quot;1226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3KsOh/dJMcag6yvaJ/zY6aswojqj3vXqCcFM8sak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3KsOh/dJMcag6yvaJ/zY6aswojqj3vXqCcFM8sak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3KsOh/dJMcag6yvaJ/zY6aswojqj3vXqCcFM8sak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3KsOh%2FdJMcag6yvaJ%2FzY6aswojqj3vXqCcFM8sak%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;2139&quot; height=&quot;1226&quot; data-origin-width=&quot;2139&quot; data-origin-height=&quot;1226&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가짜 flag를 피해 진짜 flag를 찾으라고 하니까, 이 사진은 필히 가짜 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;문제 제목이 steg-pack이니까, 스테가노그래피로 사진이 쌓여있다는 것일까? 싶어서&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Stegsolve를 사용해봄&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2372&quot; data-origin-height=&quot;1199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nBGzT/dJMcaiXymT1/d2be0LSmOkK5JWoVKUJk51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nBGzT/dJMcaiXymT1/d2be0LSmOkK5JWoVKUJk51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nBGzT/dJMcaiXymT1/d2be0LSmOkK5JWoVKUJk51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnBGzT%2FdJMcaiXymT1%2Fd2be0LSmOkK5JWoVKUJk51%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;2372&quot; height=&quot;1199&quot; data-origin-width=&quot;2372&quot; data-origin-height=&quot;1199&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;모를때는 hxd로 파일을 확인해보겠음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1370&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NuCLM/dJMcac379zv/0PFFjlLwreY3tKqSeNe4X1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NuCLM/dJMcac379zv/0PFFjlLwreY3tKqSeNe4X1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NuCLM/dJMcac379zv/0PFFjlLwreY3tKqSeNe4X1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNuCLM%2FdJMcac379zv%2F0PFFjlLwreY3tKqSeNe4X1%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;603&quot; height=&quot;286&quot; data-origin-width=&quot;1370&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;png파일 시그니처가 잘 보이고, png 푸터를 확인해보기 위해서 IEND를 검색해줌&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2158&quot; data-origin-height=&quot;824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czKMcI/dJMcag6yvnL/OGCapp1iA2WDLSlLfvLLR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czKMcI/dJMcag6yvnL/OGCapp1iA2WDLSlLfvLLR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czKMcI/dJMcag6yvnL/OGCapp1iA2WDLSlLfvLLR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczKMcI%2FdJMcag6yvnL%2FOGCapp1iA2WDLSlLfvLLR0%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;2158&quot; height=&quot;824&quot; data-origin-width=&quot;2158&quot; data-origin-height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IEND이후에 PK(압축파일), pass: 99999(비밀번호인가?) 뭐가 또 있는 것 같아서 확인해주기로 함&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;먼저 png 푸터 시그니처가 이렇게 8byte로 이루어져 있음&lt;/p&gt;
&lt;pre id=&quot;code_1778582208457&quot; class=&quot;basic&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;49 45 4E 44 AE 42 60 82(8 Byte)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pass 전 쉼표까지가 png파일이기 때문에 나머지 뒷 부분은 따로 잘라줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 부분을 삭제한 후 png파일을 열어봤는데, 처음처럼 그대로 fake_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;이제 뒷부분을 확인해주면 될 것 같음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2153&quot; data-origin-height=&quot;1128&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdTHHJ/dJMcadu9KnN/rWwjmryAkbkvfFYtCrF1s0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdTHHJ/dJMcadu9KnN/rWwjmryAkbkvfFYtCrF1s0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdTHHJ/dJMcadu9KnN/rWwjmryAkbkvfFYtCrF1s0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdTHHJ%2FdJMcadu9KnN%2FrWwjmryAkbkvfFYtCrF1s0%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;2153&quot; height=&quot;1128&quot; data-origin-width=&quot;2153&quot; data-origin-height=&quot;1128&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;1554&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qSK79/dJMcahLaMRT/Ugx92PLFajghte41HOlbS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qSK79/dJMcahLaMRT/Ugx92PLFajghte41HOlbS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qSK79/dJMcahLaMRT/Ugx92PLFajghte41HOlbS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqSK79%2FdJMcahLaMRT%2FUgx92PLFajghte41HOlbS0%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;2879&quot; height=&quot;1554&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;1554&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PK가 눈에 밟혀서 헤더 시그니처를 찾아주니까 9개나 나옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 푸터 시그니처는 맨 마지막에 하나밖에 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(zip파일이니까 이럴수도 있다고 함)&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;gt; zip파일 시작 시그니처: 50 4B 03 04(4608 시작)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; zip파일 푸터 시그니처: 마지막까지&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-origin-width=&quot;1537&quot; data-origin-height=&quot;340&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CLllI/dJMcadhHjaq/E08ytOem4CkE5UPAvkvof0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CLllI/dJMcadhHjaq/E08ytOem4CkE5UPAvkvof0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CLllI/dJMcadhHjaq/E08ytOem4CkE5UPAvkvof0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCLllI%2FdJMcadhHjaq%2FE08ytOem4CkE5UPAvkvof0%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;1537&quot; height=&quot;340&quot; data-origin-width=&quot;1537&quot; data-origin-height=&quot;340&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오 zip파일이 잘 열렸음&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-origin-width=&quot;1418&quot; data-origin-height=&quot;838&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l1Ihz/dJMcacQBNq2/Yes88FUWCRNPAAK07YJk4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l1Ihz/dJMcacQBNq2/Yes88FUWCRNPAAK07YJk4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l1Ihz/dJMcacQBNq2/Yes88FUWCRNPAAK07YJk4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl1Ihz%2FdJMcacQBNq2%2FYes88FUWCRNPAAK07YJk4K%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;1418&quot; height=&quot;838&quot; data-origin-width=&quot;1418&quot; data-origin-height=&quot;838&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2145&quot; data-origin-height=&quot;1147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLjMLS/dJMcaffydqp/0LDzPipsuyUrKKAlKI2xC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLjMLS/dJMcaffydqp/0LDzPipsuyUrKKAlKI2xC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLjMLS/dJMcaffydqp/0LDzPipsuyUrKKAlKI2xC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLjMLS%2FdJMcaffydqp%2F0LDzPipsuyUrKKAlKI2xC0%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;2145&quot; height=&quot;1147&quot; data-origin-width=&quot;2145&quot; data-origin-height=&quot;1147&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1651&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLotB5/dJMcaarKHSn/SL0N7uiqKG0vhqKZgUkNoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLotB5/dJMcaarKHSn/SL0N7uiqKG0vhqKZgUkNoK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLotB5/dJMcaarKHSn/SL0N7uiqKG0vhqKZgUkNoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLotB5%2FdJMcaarKHSn%2FSL0N7uiqKG0vhqKZgUkNoK%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;1651&quot; height=&quot;432&quot; data-origin-width=&quot;1651&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&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;h4 data-ke-size=&quot;size20&quot;&gt;ZIP 파일의 진짜 끝은 어디?&lt;/h4&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;zip파일 푸터 시그니처: 50 4B 05 06&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;이것은 정확히 말하면 EOCD(End of Central Directory Record)의 시작을 알리는 표식이라고 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;즉, zip파일 구조상 EOCD 섹션 안에 주석의 길이와 내용이 들어가게 된다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;만약 딱 시그니처까지만 복사하고 그 뒤의 가변 데이터를 잘라버리면, 압축 프로그램은 &quot;주석이 있다고 했는데 왜 데이터가 없지?&quot;라며 파일이 손상되었다고 판단해 열어주지 않는 것입니다. zip파일을 열어주지 않는 것임!!&lt;br /&gt;&lt;span style=&quot;color: #000000; font-size: 1.44em; letter-spacing: -1px;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-size: 1.44em; letter-spacing: -1px;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #000000; font-size: 1.44em; letter-spacing: -1px;&quot;&gt;분석 시 주의할 점&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;카빙(Carving)이나 파일 복구 작업을 할 때, ZIP 파일은 단순히 푸터 시그니처를 찾는 것으로 끝내면 안된다!&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;50 4B 05 06을 찾기&lt;/li&gt;
&lt;li&gt;해당 지점으로부터 &lt;b data-index-in-node=&quot;10&quot; data-path-to-node=&quot;13,1,0&quot;&gt;20~22바이트 뒤&lt;/b&gt;에 있는 'Comment Length' 값을 확인&amp;nbsp;&lt;/li&gt;
&lt;li&gt;그 길이만큼 데이터를 더 포함시켜야 완벽한 ZIP 파일이 됨&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 실무에서는 이렇게 다 계산하기 어렵기 때문에 그냥 시그니처 이후 null data나 아예 끝나는 지점까지 넉넉하게 추출하는 방식을 쓰곤 한다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>SWUFORCE/워게임</category>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/78</guid>
      <comments>https://hmyang444.tistory.com/78#entry78comment</comments>
      <pubDate>Tue, 12 May 2026 20:01:47 +0900</pubDate>
    </item>
    <item>
      <title>메모리 분석 데프콘 2019 챌린지 CTF 풀이</title>
      <link>https://hmyang444.tistory.com/77</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;메모리 분석 데프콘 2019 챌린지 문제 풀이를 위해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Triage-Memory.mem 파일 다운로드&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;b&gt;[1] get your volatility on&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;triage-memory.mem 파일의 SHA-1 해시값을 물어봄&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;413&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwUaWl/dJMb99M5xr4/kyXZIMXYCKo9aCyhn9a7Ik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwUaWl/dJMb99M5xr4/kyXZIMXYCKo9aCyhn9a7Ik/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwUaWl/dJMb99M5xr4/kyXZIMXYCKo9aCyhn9a7Ik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwUaWl%2FdJMb99M5xr4%2FkyXZIMXYCKo9aCyhn9a7Ik%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;492&quot; height=&quot;413&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;413&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2326&quot; data-origin-height=&quot;419&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIFQ6f/dJMcabRE1ub/UVs7tTiQbqaXyYwdkHlcD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIFQ6f/dJMcabRE1ub/UVs7tTiQbqaXyYwdkHlcD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIFQ6f/dJMcabRE1ub/UVs7tTiQbqaXyYwdkHlcD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIFQ6f%2FdJMcabRE1ub%2FUVs7tTiQbqaXyYwdkHlcD1%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;2326&quot; height=&quot;419&quot; data-origin-width=&quot;2326&quot; data-origin-height=&quot;419&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;터미널에서 volatility를 사용해서 imageinfo를 해줌 --&amp;gt; 이 파일의 정보들을 알아보기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2301&quot; data-origin-height=&quot;704&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEurvw/dJMcagyG1Be/LrNrtBIm2qBIk6Gn3VGR61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEurvw/dJMcagyG1Be/LrNrtBIm2qBIk6Gn3VGR61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEurvw/dJMcagyG1Be/LrNrtBIm2qBIk6Gn3VGR61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEurvw%2FdJMcagyG1Be%2FLrNrtBIm2qBIk6Gn3VGR61%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;2301&quot; height=&quot;704&quot; data-origin-width=&quot;2301&quot; data-origin-height=&quot;704&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;(1) KDBG: process 정보 추적하기 용이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) profile: win7, win2008&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) Image data and time: 2019-03-22 경&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;무튼 그래서 첫 번째 문제인 파일의 SHA-1 해시값을 알아보려고 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도구: &lt;span style=&quot;color: #0a0a0a; text-align: start;&quot;&gt;SHA1Sum.exe(강의와 똑같은 툴을 발견하지 못해서..다른 툴로 대체함)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-05-12 152629.png&quot; data-origin-width=&quot;2327&quot; data-origin-height=&quot;124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sK2e6/dJMcab5eUWA/N2UxIslDG0Jv3xlnK8GJd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sK2e6/dJMcab5eUWA/N2UxIslDG0Jv3xlnK8GJd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sK2e6/dJMcab5eUWA/N2UxIslDG0Jv3xlnK8GJd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsK2e6%2FdJMcab5eUWA%2FN2UxIslDG0Jv3xlnK8GJd1%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;1944&quot; height=&quot;104&quot; data-filename=&quot;스크린샷 2026-05-12 152629.png&quot; data-origin-width=&quot;2327&quot; data-origin-height=&quot;124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 도구가 있는 파일 안에 메모리 파일을 넣어서 설명해주는 option에 따라&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;.\SHA1Sum.exe compute '.\Adam Ferrante - Triage-Memory.mem' 를 해서 해시값을 얻음&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;&lt;b&gt;flag&amp;lt;c95e8cc8c946f95a109ea8e47a6800de10a27abd&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&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;b&gt;[2] profile&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;436&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbVQja/dJMcafmh6KM/qJjPafkjdKlTAeU5CRKLB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbVQja/dJMcafmh6KM/qJjPafkjdKlTAeU5CRKLB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbVQja/dJMcafmh6KM/qJjPafkjdKlTAeU5CRKLB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbVQja%2FdJMcafmh6KM%2FqJjPafkjdKlTAeU5CRKLB1%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;490&quot; height=&quot;436&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;436&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2332&quot; data-origin-height=&quot;639&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JI3F4/dJMcabc4iFQ/NYcx3f79rn2Y1xGl4xGsWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JI3F4/dJMcabc4iFQ/NYcx3f79rn2Y1xGl4xGsWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JI3F4/dJMcabc4iFQ/NYcx3f79rn2Y1xGl4xGsWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJI3F4%2FdJMcabc4iFQ%2FNYcx3f79rn2Y1xGl4xGsWk%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;2332&quot; height=&quot;639&quot; data-origin-width=&quot;2332&quot; data-origin-height=&quot;639&quot;/&gt;&lt;/span&gt;&lt;/figure&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;suggested profile을 보면 다양한 machine정보들이 나옴 --&amp;gt; 가장 적절한 profile = &lt;u&gt;제일 앞에 있는 것&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;flag&amp;lt;Win7SP1x64&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[3] hey, write this down&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;485&quot; data-origin-height=&quot;407&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CEcW3/dJMcad20oZh/OaVayJEk1Typ0UHEi3yP61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CEcW3/dJMcad20oZh/OaVayJEk1Typ0UHEi3yP61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CEcW3/dJMcad20oZh/OaVayJEk1Typ0UHEi3yP61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCEcW3%2FdJMcad20oZh%2FOaVayJEk1Typ0UHEi3yP61%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;485&quot; height=&quot;407&quot; data-origin-width=&quot;485&quot; data-origin-height=&quot;407&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;notepad.exe의 프로세스 ID를 구해보시오&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2340&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/U5sig/dJMcagMhq2w/xklaM6t64lPN1uZC24P1i1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/U5sig/dJMcagMhq2w/xklaM6t64lPN1uZC24P1i1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/U5sig/dJMcagMhq2w/xklaM6t64lPN1uZC24P1i1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FU5sig%2FdJMcagMhq2w%2FxklaM6t64lPN1uZC24P1i1%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;2340&quot; height=&quot;178&quot; data-origin-width=&quot;2340&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;volatility로 돌아가서 -f 옵션을 주고 pslist를 살펴보기로 함&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;b&gt;0xfffffa80054f9060&amp;nbsp; notepad.exe&amp;nbsp; &amp;nbsp; &amp;nbsp; 3032&amp;nbsp;&amp;nbsp;&amp;nbsp;1432&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 60&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 2019-03-22 05:32:22 UTC+0000&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;오프셋&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 파일명&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PID&amp;nbsp; &amp;nbsp; PPID&amp;nbsp; &amp;nbsp;THDS&amp;nbsp; HNDS&amp;nbsp; &amp;nbsp;SESS&amp;nbsp; &amp;nbsp; &amp;nbsp; WOw64&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; START&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;&lt;b&gt;즉, PID는 3032이다&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;flag&amp;lt;3032&amp;gt;&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;쉽게 볼 수 있는 법: pslist | finstr notdpad.exe&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;notpad만 따로 뽑아서 보여줌&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[4] wscript can haz children&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;410&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tOwwS/dJMcabEaXwO/y8r9s0AKWmj8LynkXHCGpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tOwwS/dJMcabEaXwO/y8r9s0AKWmj8LynkXHCGpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tOwwS/dJMcabEaXwO/y8r9s0AKWmj8LynkXHCGpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtOwwS%2FdJMcabEaXwO%2Fy8r9s0AKWmj8LynkXHCGpK%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;486&quot; height=&quot;410&quot; data-origin-width=&quot;486&quot; data-origin-height=&quot;410&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2793&quot; data-origin-height=&quot;95&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3EJio/dJMcabqE28a/OWKdEE3G5GwPNYdDtqmML1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3EJio/dJMcabqE28a/OWKdEE3G5GwPNYdDtqmML1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3EJio/dJMcabqE28a/OWKdEE3G5GwPNYdDtqmML1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3EJio%2FdJMcabqE28a%2FOWKdEE3G5GwPNYdDtqmML1%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;2793&quot; height=&quot;95&quot; data-origin-width=&quot;2793&quot; data-origin-height=&quot;95&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 wscript의 자식 프로세스의 이름을 알아야하니, pslist보다는 pstree로 보는 것이 낫다고 판단함&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2871&quot; data-origin-height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t6yRu/dJMcaakW9eV/j8p9tR0IqMVwsPGmeao0wK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t6yRu/dJMcaakW9eV/j8p9tR0IqMVwsPGmeao0wK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t6yRu/dJMcaakW9eV/j8p9tR0IqMVwsPGmeao0wK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft6yRu%2FdJMcaakW9eV%2Fj8p9tR0IqMVwsPGmeao0wK%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;2871&quot; height=&quot;231&quot; data-origin-width=&quot;2871&quot; data-origin-height=&quot;231&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pstree로 보니까 부모-자식 관계가 잘 보임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;hfs.exe --&amp;gt; wscript.exe --&amp;gt; &lt;b&gt;UWkpjFjDzM.exeImage&amp;nbsp;date&amp;nbsp;and&amp;nbsp;time&amp;nbsp;:&amp;nbsp;2019-03-22&amp;nbsp;05:46:00&amp;nbsp;UTC+0000&lt;/b&gt; --&amp;gt; cmd.exe&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&amp;lt; UWkpjFjDzM.exe &amp;gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[5] tcpip settings&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nyh3a/dJMcahxDE0y/swRYRLFdwkhivNeQcgrqp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nyh3a/dJMcahxDE0y/swRYRLFdwkhivNeQcgrqp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nyh3a/dJMcahxDE0y/swRYRLFdwkhivNeQcgrqp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnyh3a%2FdJMcahxDE0y%2FswRYRLFdwkhivNeQcgrqp0%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;483&quot; height=&quot;428&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RAM덤프(이미지파일)가 만들어졌었던 시간에 machine의 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;아까 봤던 ImageInfo에서 봤던 생성 시간:&amp;nbsp;&lt;b&gt;Image&amp;nbsp;date&amp;nbsp;and&amp;nbsp;time&amp;nbsp;:&amp;nbsp;2019-03-22&amp;nbsp;05:46:00&amp;nbsp;UTC+0000&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;--&amp;gt; 이 정보를 가지고 확인하면 될 것 같음&lt;/b&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-origin-width=&quot;2879&quot; data-origin-height=&quot;259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPoWxA/dJMcagZKNxx/XkkdGHLxaECrLuakk03ll1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPoWxA/dJMcagZKNxx/XkkdGHLxaECrLuakk03ll1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPoWxA/dJMcagZKNxx/XkkdGHLxaECrLuakk03ll1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPoWxA%2FdJMcagZKNxx%2FXkkdGHLxaECrLuakk03ll1%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;2879&quot; height=&quot;259&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;259&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IP주소니까 connections를 해야하나? 싶어서 해봤더니 profile이 winXP나 2003년 버전만 가능한 것 같음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 밑에 connscan이라고 tcp 연결에 대한 정보를 알려주는 것이 있는 것 같음&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;강의에서 netscan을 이용해보자고 하심&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;1536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgDvlF/dJMcaaedktD/KWYvY0rqz4Om7FxNZKo2hk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgDvlF/dJMcaaedktD/KWYvY0rqz4Om7FxNZKo2hk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgDvlF/dJMcaaedktD/KWYvY0rqz4Om7FxNZKo2hk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgDvlF%2FdJMcaaedktD%2FKWYvY0rqz4Om7FxNZKo2hk%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;2879&quot; height=&quot;1536&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;1536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한번 살펴보면 제대로된 local address 정보는 10.0.0.101 정도로 확인할 수 있다.&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&amp;lt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;10.0.0.101&lt;/span&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[6] intel&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;434&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfPOBo/dJMcaaL0WKi/lU55MuXghKgILjQD07KK2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfPOBo/dJMcaaL0WKi/lU55MuXghKgILjQD07KK2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfPOBo/dJMcaaL0WKi/lU55MuXghKgILjQD07KK2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfPOBo%2FdJMcaaL0WKi%2FlU55MuXghKgILjQD07KK2K%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;488&quot; height=&quot;434&quot; data-origin-width=&quot;488&quot; data-origin-height=&quot;434&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;감염된 PID에 의해서, 공격자의 IP주소를 찾아라&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2871&quot; data-origin-height=&quot;506&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kELwm/dJMcabRE4lM/TC9c3ciREUy4kXLhGFh8aK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kELwm/dJMcabRE4lM/TC9c3ciREUy4kXLhGFh8aK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kELwm/dJMcabRE4lM/TC9c3ciREUy4kXLhGFh8aK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkELwm%2FdJMcabRE4lM%2FTC9c3ciREUy4kXLhGFh8aK%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;2871&quot; height=&quot;506&quot; data-origin-width=&quot;2871&quot; data-origin-height=&quot;506&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;estabilished: 연결되어있는 상태 --&amp;gt; 의심&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;| findstr ESTABLISHED 를 통해서 자세히 확인해보면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2872&quot; data-origin-height=&quot;241&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/baDjtv/dJMcaaL0WTy/vc3PeMBo388hXXQajL4rCk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/baDjtv/dJMcaaL0WTy/vc3PeMBo388hXXQajL4rCk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/baDjtv/dJMcaaL0WTy/vc3PeMBo388hXXQajL4rCk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbaDjtv%2FdJMcaaL0WTy%2Fvc3PeMBo388hXXQajL4rCk%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;2872&quot; height=&quot;241&quot; data-origin-width=&quot;2872&quot; data-origin-height=&quot;241&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아까봤던 .exe파일이랑, OUTLOOK.EXE 파일이 서로 연결되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;outlook.exe&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Microsoft Outlook 애플리케이션의 실행 파일이기 때문에 악성일 확률이 낮음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉, UWkpjFjDzM.exe 의 10.0.0.106이 공격자 IP주소라고 봄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ 4444포트: 임의적으로 생성된 포트(의심해야 함)&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;b&gt;flag&amp;lt;10.0.0.106&amp;gt;&lt;/b&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[7] i &amp;lt;3 windows dependencies&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;485&quot; data-origin-height=&quot;443&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lVLw2/dJMcahdkcT2/kwyu3qWCd5OKuID4CKVc31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lVLw2/dJMcahdkcT2/kwyu3qWCd5OKuID4CKVc31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lVLw2/dJMcahdkcT2/kwyu3qWCd5OKuID4CKVc31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlVLw2%2FdJMcahdkcT2%2Fkwyu3qWCd5OKuID4CKVc31%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;485&quot; height=&quot;443&quot; data-origin-width=&quot;485&quot; data-origin-height=&quot;443&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;VCRUNTIME140.dll&lt;/b&gt;과 관련있는 프로세스 이름은 무엇인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dll: 동적 링크 라이브러리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러 파일들은 기능에 맞게끔 dll파일들을 공유해서 사용하게 됨&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;dll과 관련된 plugin을 살펴보니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dlldump&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Dump DLLs from a process address space&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dlllist&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Print list of loaded dlls for each process (유력)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ldrmodules&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Detect unlinked DLLs&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;dlllist부터 해봐야겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아니ㅋㅋㅋㅋㅋ....너무 많아서 이번에도 | findstr VCRUNTIME140.dll을 해주니까&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-05-12 161542.png&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;170&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bd5ihk/dJMcaglam3E/AaEsQImtNnCi8KYLkn8Pyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bd5ihk/dJMcaglam3E/AaEsQImtNnCi8KYLkn8Pyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bd5ihk/dJMcaglam3E/AaEsQImtNnCi8KYLkn8Pyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbd5ihk%2FdJMcaglam3E%2FAaEsQImtNnCi8KYLkn8Pyk%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;2879&quot; height=&quot;170&quot; data-filename=&quot;스크린샷 2026-05-12 161542.png&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DLL의 경로, 사이즈, offset 등 나옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 이 정보는 관련있는 프로세스를 알기는 어려우니까 dlldump를 해보려고 함&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;dlldump는 따로 옵션을 줘야하는데 이렇게 찾아서 해주니까 하나가 딱 뜸&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;vol.exe -f [메모리_덤프_파일] --profile=[프로필_이름] dlldump -D [저장할_디렉토리] -p [PID]&lt;br /&gt;&lt;span data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;주요 옵션 설명:&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;-f: 분석할 메모리 덤프 이미지 파일 경로를 지정합니다.&lt;br /&gt;&lt;/span&gt;&lt;span data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;--profile: 해당 메모리 이미지가 생성된 운영체제 정보(예: Win10x64)를 지정합니다.&lt;br /&gt;&lt;/span&gt;&lt;span data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;-D: 추출된 DLL 파일을 저장할 폴더 경로를 지정합니다.&lt;br /&gt;&lt;/span&gt;&lt;span data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;-p: 특정 프로세스의 DLL만 뽑고 싶을 때 해당 프로세스의 ID를 입력합니다. (지정하지 않으면 모든 프로세스의 DLL을 시도합니다.)&lt;br /&gt;&lt;/span&gt;&lt;span data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;-r: (선택) 정규 표현식을 사용하여 특정 이름을 가진 DLL만 필터링하여 추출할 수 있습니다.&lt;/span&gt;&lt;span data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;dIIojd_3m,dIIojd_3n&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-wiz-attrbind=&quot;class=dIIojd_3l/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&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-origin-width=&quot;2877&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/36XMC/dJMcac370iF/pWWLHCWoZLaQj3GVAHxD7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/36XMC/dJMcac370iF/pWWLHCWoZLaQj3GVAHxD7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/36XMC/dJMcac370iF/pWWLHCWoZLaQj3GVAHxD7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F36XMC%2FdJMcac370iF%2FpWWLHCWoZLaQj3GVAHxD7K%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;2877&quot; height=&quot;220&quot; data-origin-width=&quot;2877&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&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;이 VCRUNTIME140.dll과 관련있는 프로세스의 이름은 OfficeClickToR인 것 같음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인 줄 알았는데.. ClickToR이라고 하네..?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;굳이 dump파일을 할 필요가 없었던 것 같음...&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&amp;lt;ClickToR&amp;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;**추가: dlllist &amp;gt; dllist.txt로 저장해서 보기 쉽게 찾아볼 수 있음&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[8] mal-ware-are-you&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;485&quot; data-origin-height=&quot;432&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bG73A6/dJMb990HaHQ/jOfiDKIikD9ju2znpzE8lK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bG73A6/dJMb990HaHQ/jOfiDKIikD9ju2znpzE8lK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bG73A6/dJMb990HaHQ/jOfiDKIikD9ju2znpzE8lK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbG73A6%2FdJMb990HaHQ%2FjOfiDKIikD9ju2znpzE8lK%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;485&quot; height=&quot;432&quot; data-origin-width=&quot;485&quot; data-origin-height=&quot;432&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가능성있는 malware의 MD5해시값이 무엇인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--&amp;gt; 계속 유의깊에 살펴봤던 malware파일은 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;UWkpjFjDzM.exe&lt;span&gt;였음&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;---&amp;gt; &lt;b&gt;이 파일을 덤프를 떠야한다고 함&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;procdump: Dump a process to an executable file sample&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2871&quot; data-origin-height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t6yRu/dJMcaakW9eV/j8p9tR0IqMVwsPGmeao0wK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t6yRu/dJMcaakW9eV/j8p9tR0IqMVwsPGmeao0wK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t6yRu/dJMcaakW9eV/j8p9tR0IqMVwsPGmeao0wK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft6yRu%2FdJMcaakW9eV%2Fj8p9tR0IqMVwsPGmeao0wK%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;2871&quot; height=&quot;231&quot; data-origin-width=&quot;2871&quot; data-origin-height=&quot;231&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로세스의 PID: 3496&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;269&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVufLU/dJMcagyG56n/XN8Q3egUhgYF2Llw1YEuck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVufLU/dJMcagyG56n/XN8Q3egUhgYF2Llw1YEuck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVufLU/dJMcagyG56n/XN8Q3egUhgYF2Llw1YEuck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVufLU%2FdJMcagyG56n%2FXN8Q3egUhgYF2Llw1YEuck%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;2879&quot; height=&quot;269&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;269&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;덤프하고 MD5해시 프로그램 찾으려고 잠깜 눈돌린 사이..악성파일이라서 바로&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;근데 MD5 tool 다운받기 살짝 귀찮아서ㅎㅎ 어차피 악성코드고 virustotal에 던져봤음(원래 이렇게 하면,,안되지만..)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2850&quot; data-origin-height=&quot;1031&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wduak/dJMcaarKzT4/A91cdkMMQqxRlfkQD1xeI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wduak/dJMcaarKzT4/A91cdkMMQqxRlfkQD1xeI0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wduak/dJMcaarKzT4/A91cdkMMQqxRlfkQD1xeI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fwduak%2FdJMcaarKzT4%2FA91cdkMMQqxRlfkQD1xeI0%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;2850&quot; height=&quot;1031&quot; data-origin-width=&quot;2850&quot; data-origin-height=&quot;1031&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MD5:&lt;span style=&quot;color: #000000;&quot;&gt; &lt;a style=&quot;color: #000000; text-align: start;&quot;&gt;690ea20bc3bdfb328e23005d9a80c290&lt;/a&gt; &lt;/span&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;flag&amp;lt; &lt;span style=&quot;color: #000000;&quot;&gt;&lt;a style=&quot;color: #000000; text-align: start;&quot;&gt;690ea20bc3bdfb328e23005d9a80c290&lt;/a&gt;&lt;/span&gt; &amp;gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[9] lm-get bobs hash&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HaI9g/dJMcahYGrr0/CReVUmXZfUN3oavP8PgA21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HaI9g/dJMcahYGrr0/CReVUmXZfUN3oavP8PgA21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HaI9g/dJMcahYGrr0/CReVUmXZfUN3oavP8PgA21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHaI9g%2FdJMcahYGrr0%2FCReVUmXZfUN3oavP8PgA21%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;487&quot; height=&quot;412&quot; data-origin-width=&quot;487&quot; data-origin-height=&quot;412&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bobs의 계좌의 LM hash값이 무엇인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;plugin: hashdump - Dumps passwords hashes (LM/NTLM) from memory&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;윈도우의 사용자 계정 비밀번호 해시 정보는 레지스트리 하이브 파일(SAM, SYSTEM)에 저장되어 있는데, 이 명령어가 그 정보를 파싱해줌&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2782&quot; data-origin-height=&quot;238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mEnt1/dJMcaffx4HT/GhiRjpiarUyLaTiwWt5wLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mEnt1/dJMcaffx4HT/GhiRjpiarUyLaTiwWt5wLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mEnt1/dJMcaffx4HT/GhiRjpiarUyLaTiwWt5wLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmEnt1%2FdJMcaffx4HT%2FGhiRjpiarUyLaTiwWt5wLK%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;2782&quot; height=&quot;238&quot; data-origin-width=&quot;2782&quot; data-origin-height=&quot;238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Bob이란 사용자가 보임!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;LM 해시값: aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;flag &amp;lt;aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[10] vad the impaler&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;435&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2umhk/dJMcaarKAfB/xELTHaWUgOqkWLauMAdjH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2umhk/dJMcaarKAfB/xELTHaWUgOqkWLauMAdjH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2umhk/dJMcaarKAfB/xELTHaWUgOqkWLauMAdjH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2umhk%2FdJMcaarKAfB%2FxELTHaWUgOqkWLauMAdjH1%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;490&quot; height=&quot;435&quot; data-origin-width=&quot;490&quot; data-origin-height=&quot;435&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VAD: vitrtual address descriptor(가상 주소 관리자)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 오프셋에 대한 VAD의 protections를 구하시오&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;0xfffffa800577ba10&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;plugin을 찾아보면 다양한 vad plugin이 있음 --&amp;gt; vadinfo 먼저 해보록 하겠음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1079&quot; data-origin-height=&quot;273&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/doyXqf/dJMcaaL0ZwD/WnJNazRubWzMD7cTstiORK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/doyXqf/dJMcaaL0ZwD/WnJNazRubWzMD7cTstiORK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/doyXqf/dJMcaaL0ZwD/WnJNazRubWzMD7cTstiORK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdoyXqf%2FdJMcaaL0ZwD%2FWnJNazRubWzMD7cTstiORK%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;1079&quot; height=&quot;273&quot; data-origin-width=&quot;1079&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;txt파일로 저장해주고&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1916&quot; data-origin-height=&quot;894&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s08Ey/dJMcahdkfrl/KfOd7Qe8sGnLZ7Vxy5bLmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s08Ey/dJMcahdkfrl/KfOd7Qe8sGnLZ7Vxy5bLmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s08Ey/dJMcahdkfrl/KfOd7Qe8sGnLZ7Vxy5bLmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs08Ey%2FdJMcahdkfrl%2FKfOd7Qe8sGnLZ7Vxy5bLmK%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;1916&quot; height=&quot;894&quot; data-origin-width=&quot;1916&quot; data-origin-height=&quot;894&quot;/&gt;&lt;/span&gt;&lt;/figure&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;protection: PAGE_READONLY&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&amp;lt; PAGE_READONLY &amp;gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[11] vad the impaler&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;452&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xksrx/dJMcaja2End/dTR5Ken26ruskiYk9VW6x1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xksrx/dJMcaja2End/dTR5Ken26ruskiYk9VW6x1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xksrx/dJMcaja2End/dTR5Ken26ruskiYk9VW6x1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxksrx%2FdJMcaja2End%2FdTR5Ken26ruskiYk9VW6x1%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;482&quot; height=&quot;452&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;452&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;starting at 0x00000000033c0000, ending at 0x00000000033dffff&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1932&quot; data-origin-height=&quot;470&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzFoFa/dJMcaaywh6i/ZZYBkmAr8EoIpkWtFess91/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzFoFa/dJMcaaywh6i/ZZYBkmAr8EoIpkWtFess91/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzFoFa/dJMcaaywh6i/ZZYBkmAr8EoIpkWtFess91/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzFoFa%2FdJMcaaywh6i%2FZZYBkmAr8EoIpkWtFess91%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;1932&quot; height=&quot;470&quot; data-origin-width=&quot;1932&quot; data-origin-height=&quot;470&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;protection: PAGE_NOACCESS&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&amp;lt; PAGE_NOACCESS &amp;gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[12] vacation bible school&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;433&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NiiDx/dJMcafNnVFp/BURuaPpe9IjC0xsxVPexL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NiiDx/dJMcafNnVFp/BURuaPpe9IjC0xsxVPexL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NiiDx/dJMcafNnVFp/BURuaPpe9IjC0xsxVPexL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNiiDx%2FdJMcafNnVFp%2FBURuaPpe9IjC0xsxVPexL1%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;484&quot; height=&quot;433&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;433&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VBS script는 무엇인가?(파일 확장자없이 제출해라)&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-ved=&quot;2ahUKEwir79GEo7OUAxVCr1YBHecxHnoQi4wTegoIAggACAAIARAP&quot; data-bfc=&quot;&quot;&gt;
&lt;div style=&quot;color: #001d35;&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot; data-animation-nesting=&quot;&quot;&gt;VBS (&lt;span data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;YvOiFf_1a&quot; data-sfc-root=&quot;c&quot;&gt;VBScript, Visual Basic Scripting Edition&lt;/span&gt;)&lt;span data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;YvOiFf_1c,YvOiFf_1d&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-wiz-attrbind=&quot;class=YvOiFf_1b/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span style=&quot;color: #0a0a0a;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-ved=&quot;2ahUKEwir79GEo7OUAxVCr1YBHecxHnoQi4wTegoIAggACAAIARAR&quot; data-bfc=&quot;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-hveid=&quot;CAIIAAgACAEQEg&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;용도:&lt;/b&gt;&amp;nbsp;윈도우에서 단순 작업 자동화, 파일 시스템 조작, GUI 조작 등에 사용되는 경량 스크립트 언어입니다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-hveid=&quot;CAIIAAgACAEQEw&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;특징:&lt;/b&gt;.vbs&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;확장자를 사용하며 별도 설치 없이 윈도우에서 작동하지만, 악성 스크립트(랜섬웨어, 정보 유출)로 악용되기도 합니다.&lt;/span&gt;
&lt;div id=&quot;sdh__twCatDkEffj2roP8pTEkAg_2&quot;&gt;&lt;span data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;YvOiFf_63,YvOiFf_64&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-wiz-attrbind=&quot;class=YvOiFf_62/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&amp;nbsp;&lt;b&gt;wscript 실행 시&lt;/b&gt;, vbs 실행시킬 수 있음&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;YvOiFf_63,YvOiFf_64&quot; data-sfc-root=&quot;c&quot;&gt;&lt;span data-wiz-attrbind=&quot;class=YvOiFf_62/TKHnVd&quot; data-animation-atomic=&quot;&quot;&gt;&lt;span aria-hidden=&quot;true&quot;&gt;pstree를 보면, wscript.exe가 실행하고 나서 악성파일이 실행되는 것을 볼 수 있음&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2083&quot; data-origin-height=&quot;125&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqcq0Z/dJMb997qz79/McfZNGK6RhcQNcEOEkNtD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqcq0Z/dJMb997qz79/McfZNGK6RhcQNcEOEkNtD1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqcq0Z/dJMb997qz79/McfZNGK6RhcQNcEOEkNtD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqcq0Z%2FdJMb997qz79%2FMcfZNGK6RhcQNcEOEkNtD1%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;2083&quot; height=&quot;125&quot; data-origin-width=&quot;2083&quot; data-origin-height=&quot;125&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;wscript pid: 5116&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;cmdline: Display&amp;nbsp;process&amp;nbsp;command-line&amp;nbsp;arguments&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2818&quot; data-origin-height=&quot;235&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bVHyzi/dJMcaciJT82/mj0kkbTF3qxdUOqb7Cgwmk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bVHyzi/dJMcaciJT82/mj0kkbTF3qxdUOqb7Cgwmk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bVHyzi/dJMcaciJT82/mj0kkbTF3qxdUOqb7Cgwmk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbVHyzi%2FdJMcaciJT82%2Fmj0kkbTF3qxdUOqb7Cgwmk%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;2818&quot; height=&quot;235&quot; data-origin-width=&quot;2818&quot; data-origin-height=&quot;235&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경로가 보이고, vbs파일을 가지고 있음을 알 수 있음(vhjReUDeuumrX.vbs)&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&amp;lt; vhjReUDeuumrX &amp;gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[13] thx microsoft&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Wxapa/dJMcafzPa4I/AeRxBbqPvqGhXzPN5dh72k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Wxapa/dJMcafzPa4I/AeRxBbqPvqGhXzPN5dh72k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Wxapa/dJMcafzPa4I/AeRxBbqPvqGhXzPN5dh72k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWxapa%2FdJMcafzPa4I%2FAeRxBbqPvqGhXzPN5dh72k%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;480&quot; height=&quot;428&quot; data-origin-width=&quot;480&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2019-03-07 23:06:58 UTC시각에 작동한 어플리케이션의 이름은?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pslist로 다시 확인을 해봤는데..! 시각이 3/22만 있을 뿐, 그 전 시각은 보이지 않음&amp;nbsp;&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-origin-width=&quot;1843&quot; data-origin-height=&quot;696&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpUNuf/dJMcadWf9xR/k1ZtJzJdbi8b7Gn8A7dNKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpUNuf/dJMcadWf9xR/k1ZtJzJdbi8b7Gn8A7dNKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpUNuf/dJMcadWf9xR/k1ZtJzJdbi8b7Gn8A7dNKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpUNuf%2FdJMcadWf9xR%2Fk1ZtJzJdbi8b7Gn8A7dNKK%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;1843&quot; height=&quot;696&quot; data-origin-width=&quot;1843&quot; data-origin-height=&quot;696&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;application을 쳤을 때 보이는 shimcache를 해봐야겠음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1574&quot; data-origin-height=&quot;519&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Olbms/dJMcaiwvPMq/kBElTEklnWRk0RMBOVesC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Olbms/dJMcaiwvPMq/kBElTEklnWRk0RMBOVesC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Olbms/dJMcaiwvPMq/kBElTEklnWRk0RMBOVesC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOlbms%2FdJMcaiwvPMq%2FkBElTEklnWRk0RMBOVesC0%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;1574&quot; height=&quot;519&quot; data-origin-width=&quot;1574&quot; data-origin-height=&quot;519&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;경로: C:\Program&amp;nbsp;Files&amp;nbsp;(x86)\Microsoft\Skype&amp;nbsp;for&amp;nbsp;Desktop\Skype.exe&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;오 skype, 메세지 플랫폼인데&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;flag&amp;lt; Skype.exe &amp;gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[14] lightbulb moment&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;427&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bwSQt7/dJMcaaSOW2E/MXR2qhYW90f71DGakzUQh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bwSQt7/dJMcaaSOW2E/MXR2qhYW90f71DGakzUQh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bwSQt7/dJMcaaSOW2E/MXR2qhYW90f71DGakzUQh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbwSQt7%2FdJMcaaSOW2E%2FMXR2qhYW90f71DGakzUQh1%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;484&quot; height=&quot;427&quot; data-origin-width=&quot;484&quot; data-origin-height=&quot;427&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리가 덤프되었던 시간에 notepad.exe에 쓰여진 것이 무엇인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메모리 덤프 시간: 2019-03-22&amp;nbsp;05:46:00&amp;nbsp;UTC+0000&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-hveid=&quot;CAIIAAgBCAUQAw&quot; data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;span data-sfc-cb=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cp=&quot;&quot;&gt;&lt;b&gt;&lt;span data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;td53cb_13&quot; data-sfc-root=&quot;c&quot;&gt;memdump&lt;/span&gt;&lt;/b&gt;: 특정 프로세스의 메모리 영역을 덤프하여 파일로 저장합니다&lt;b&gt;. 저장된 덤프 파일 내에서 문자열 검색 등을 통해 구체적인 데이터를 확인할 수 있습니다.&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;notepad.exe정보: 0xfffffa80054f9060 notepad.exe&amp;nbsp; &amp;nbsp;&lt;b&gt;3032&amp;nbsp;&lt;/b&gt;&amp;nbsp;&amp;nbsp;1432&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;0 2019-03-22 05:32:22 UTC+0000&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pid: 3032&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2845&quot; data-origin-height=&quot;193&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfBzZp/dJMcacwk4uv/DWkwhhmCUYIv2jbnFOqeuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfBzZp/dJMcacwk4uv/DWkwhhmCUYIv2jbnFOqeuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfBzZp/dJMcacwk4uv/DWkwhhmCUYIv2jbnFOqeuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfBzZp%2FdJMcacwk4uv%2FDWkwhhmCUYIv2jbnFOqeuk%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;2845&quot; height=&quot;193&quot; data-origin-width=&quot;2845&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;--&amp;gt; 파일을 notepad로 열기보다는! strings 명령어를 사용해서 확인할 수 있음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LJ89Y/dJMcagS1XDS/yvJ627EtiO5bllKMBTLHZK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LJ89Y/dJMcagS1XDS/yvJ627EtiO5bllKMBTLHZK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LJ89Y/dJMcagS1XDS/yvJ627EtiO5bllKMBTLHZK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLJ89Y%2FdJMcagS1XDS%2FyvJ627EtiO5bllKMBTLHZK%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;1594&quot; height=&quot;185&quot; data-origin-width=&quot;1594&quot; data-origin-height=&quot;185&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2007&quot; data-origin-height=&quot;521&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AIp28/dJMcaaFiJnP/kVWBQdm8laPksPlVNpYXi0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AIp28/dJMcaaFiJnP/kVWBQdm8laPksPlVNpYXi0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AIp28/dJMcaaFiJnP/kVWBQdm8laPksPlVNpYXi0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAIp28%2FdJMcaaFiJnP%2FkVWBQdm8laPksPlVNpYXi0%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;2007&quot; height=&quot;521&quot; data-origin-width=&quot;2007&quot; data-origin-height=&quot;521&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[15] 8675309&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;404&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dL7b56/dJMcag6yqYG/kmEtCuqx4urXi55nmz6C8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dL7b56/dJMcag6yqYG/kmEtCuqx4urXi55nmz6C8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dL7b56/dJMcag6yqYG/kmEtCuqx4urXi55nmz6C8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdL7b56%2FdJMcag6yqYG%2FkmEtCuqx4urXi55nmz6C8k%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;482&quot; height=&quot;404&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;404&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;record 59045 파일의 shortname이 무엇인가?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;file recod 59045: MFT를 알고 있는 것인가를 물어보는 것&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1709&quot; data-origin-height=&quot;693&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vqzTp/dJMcaiJ1vNV/7V4RNrOEFMWqjwBwAkBtS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vqzTp/dJMcaiJ1vNV/7V4RNrOEFMWqjwBwAkBtS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vqzTp/dJMcaiJ1vNV/7V4RNrOEFMWqjwBwAkBtS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvqzTp%2FdJMcaiJ1vNV%2F7V4RNrOEFMWqjwBwAkBtS0%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;1709&quot; height=&quot;693&quot; data-origin-width=&quot;1709&quot; data-origin-height=&quot;693&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2851&quot; data-origin-height=&quot;174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oHdoY/dJMcaiQNzyY/zZ25KGwd0P4dxX2ImCnuH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oHdoY/dJMcaiQNzyY/zZ25KGwd0P4dxX2ImCnuH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oHdoY/dJMcaiQNzyY/zZ25KGwd0P4dxX2ImCnuH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoHdoY%2FdJMcaiQNzyY%2FzZ25KGwd0P4dxX2ImCnuH0%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;2851&quot; height=&quot;174&quot; data-origin-width=&quot;2851&quot; data-origin-height=&quot;174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2748&quot; data-origin-height=&quot;653&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lJCFd/dJMcafs1U0b/0Ryb7IEIx44J3SZQNJg510/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lJCFd/dJMcafs1U0b/0Ryb7IEIx44J3SZQNJg510/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lJCFd/dJMcafs1U0b/0Ryb7IEIx44J3SZQNJg510/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlJCFd%2FdJMcafs1U0b%2F0Ryb7IEIx44J3SZQNJg510%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;2748&quot; height=&quot;653&quot; data-origin-width=&quot;2748&quot; data-origin-height=&quot;653&quot;/&gt;&lt;/span&gt;&lt;/figure&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;flag&amp;lt;EMPLOY~1.XLS&amp;gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[16] whats - a - metasploit?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYDNeY/dJMcaiJ1vWA/9OgYLU5m68LDNerixL5ku0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYDNeY/dJMcaiJ1vWA/9OgYLU5m68LDNerixL5ku0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYDNeY/dJMcaiJ1vWA/9OgYLU5m68LDNerixL5ku0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYDNeY%2FdJMcaiJ1vWA%2F9OgYLU5m68LDNerixL5ku0%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;483&quot; height=&quot;430&quot; data-origin-width=&quot;483&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;meterpreter: &lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-processed=&quot;true&quot; data-sfc-cb=&quot;&quot; data-wiz-uids=&quot;po3njb_j&quot; data-sfc-root=&quot;c&quot;&gt;메타스플로잇(Metasploit) 프레임워크&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;에서 사용하는 고급 다기능 페이로드(Payload)이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;시스템 침투가 되면 meterpreter 형태로 침투가 된다고 함&lt;/span&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;아까 의심됐던 UXkpjFjDzM.exe를 덤프해주도록 하겠음(실시간 모드 끄기!)&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2503&quot; data-origin-height=&quot;296&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dpQOaF/dJMcaf0QHN3/10wlCa4BOLhJRj0sBFmHxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dpQOaF/dJMcaf0QHN3/10wlCa4BOLhJRj0sBFmHxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dpQOaF/dJMcaf0QHN3/10wlCa4BOLhJRj0sBFmHxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdpQOaF%2FdJMcaf0QHN3%2F10wlCa4BOLhJRj0sBFmHxK%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;2503&quot; height=&quot;296&quot; data-origin-width=&quot;2503&quot; data-origin-height=&quot;296&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;virustotal에서 하는게 맞는거고, 악성코드임을 확신하게 됨&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;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;UXkpjFjDzM.exe의 PID는 3456&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;0xfffffa8005a1d9e0&amp;nbsp;UWkpjFjDzM.exe&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt;3496&lt;/b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;5116&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;109&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1&amp;nbsp;2019-03-22&amp;nbsp;05:35:33&amp;nbsp;UTC+0000&lt;/span&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;span style=&quot;color: #333333; text-align: start;&quot;&gt;flag&amp;lt;3456&amp;gt;&lt;/span&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;span style=&quot;color: #333333; text-align: start;&quot;&gt;문제 끝.......&lt;/span&gt;&lt;/p&gt;</description>
      <category>SWUFORCE/윈도우 포렌식</category>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/77</guid>
      <comments>https://hmyang444.tistory.com/77#entry77comment</comments>
      <pubDate>Tue, 12 May 2026 17:52:46 +0900</pubDate>
    </item>
    <item>
      <title>Python - Flask 프레임워크/ @app.route()</title>
      <link>https://hmyang444.tistory.com/76</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;160&quot; data-end=&quot;179&quot;&gt;Flask란?&amp;nbsp;&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;181&quot; data-end=&quot;255&quot;&gt;Flask: &lt;span&gt;&amp;nbsp;&lt;/span&gt;Python 언어로 &lt;b&gt;웹 애플리케이션&lt;/b&gt;을 만들 수 있게 도와주는 아주 간단하고 가벼운 웹 프레임워크&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;181&quot; data-end=&quot;255&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;507&quot; data-end=&quot;530&quot;&gt;Flask를 사용하는 이유?&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: start;&quot; data-ke-list-type=&quot;disc&quot; data-start=&quot;532&quot; data-end=&quot;626&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-start=&quot;532&quot; data-end=&quot;556&quot;&gt;간단한 웹사이트를 만들고 싶을 때&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-start=&quot;584&quot; data-end=&quot;607&quot;&gt;프로토타입을 빠르게 만들어보고 싶을 때&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot; data-start=&quot;608&quot; data-end=&quot;626&quot;&gt;백엔드 기초를 배우고 싶을 때&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt;풀 스택 웹 프레임워크인 Django와는 달리 Flask는 개발자의 능력과 목적에 맞게 만들 수 있다고 한다. but Django는&lt;span style=&quot;background-color: #ffffff; color: #212529; text-align: start;&quot;&gt; 단순히 임포트해서 편리하게 사용할 수 있는 일부 부가적인 기능을 Flask는 직접 만들어야 하니 번거로움이 있을 수도 있다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot; data-start=&quot;1330&quot; data-end=&quot;1343&quot;&gt;라우팅이란?&lt;/h3&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1345&quot; data-end=&quot;1460&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot;&gt;최신 웹 애플리케이션은 사용자를 돕기 위해 의미 있는 URL을 사용한다. 사용자는 기억하기 쉽고 직접 방문할 수 있는 의미 있는 URL을 사용하는 페이지를 더 좋아하고 다시 방문할 가능성이 높다.&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1345&quot; data-end=&quot;1460&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1345&quot; data-end=&quot;1460&quot;&gt;&lt;u&gt;&lt;b&gt;@app.route():&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&amp;nbsp;파이썬&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot; data-sfc-cp=&quot;&quot; data-sfc-root=&quot;c&quot; data-sfc-cb=&quot;&quot;&gt;Flask&lt;/span&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;프레임워크에서&lt;b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;특정 URL(예:&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;/about&lt;/b&gt;&lt;span style=&quot;background-color: #ffffff; color: #0a0a0a; text-align: start;&quot;&gt;&lt;b&gt;)&lt;/b&gt;과 이를 처리할 파이썬 함수를 연결하는&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;데코레이터&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1345&quot; data-end=&quot;1460&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1345&quot; data-end=&quot;1460&quot;&gt;즉, @app.route()는&lt;span&gt;&amp;nbsp;&lt;/span&gt;사용자가 특정 주소(URL)에 접속했을 때 어떤 동작을 할지를 연결함&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;1345&quot; data-end=&quot;1460&quot;&gt;&lt;b&gt;또한 첫 번째 매개변수는 URL이다!!(중요)&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1778557314539&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/usr/bin/python3
from flask import Flask, request, render_template, make_response, redirect, url_for

app = Flask(__name__)

try:
    FLAG = open('./flag.txt', 'r').read()  
except:
    FLAG = '[**FLAG**]'

users = {
    'guest': 'guest',  
    'user': 'user1234', 
    'admin': FLAG   
}


# this is our session storage
session_storage = {             
}


@app.route('/')
def index():
    session_id = request.cookies.get('sessionid', None)   
    try:
        # get username from session_storage
        username = session_storage[session_id]  
    except KeyError:
        return render_template('index.html')

    return render_template('index.html', text=f'Hello {username}, {&quot;flag is &quot; + FLAG if username == &quot;admin&quot; else &quot;you are not admin&quot;}')


@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    elif request.method == 'POST':             #POST일 때 username, password를 읽어옴
        username = request.form.get('username')
        password = request.form.get('password')
        try:
            # you cannot know admin's pw
            pw = users[username]
        except:
            return '&amp;lt;script&amp;gt;alert(&quot;not found user&quot;);history.go(-1);&amp;lt;/script&amp;gt;'
        if pw == password:          
            resp = make_response(redirect(url_for('index')) )
            session_id = os.urandom(32).hex()     
            resp.set_cookie('sessionid', session_id)
            return resp
        return '&amp;lt;script&amp;gt;alert(&quot;wrong password&quot;);history.go(-1);&amp;lt;/script&amp;gt;'


@app.route('/admin')
def admin():
    # developer's note: review below commented code and uncomment it (TODO)

    #session_id = request.cookies.get('sessionid', None)
    #username = session_storage[session_id]
    #if username != 'admin':
    #    return render_template('index.html')

    return session_storage


if __name__ == '__main__':
    import os
    # create admin sessionid and save it to our storage
    # and also you cannot reveal admin's sesseionid by brute forcing!!! haha
    session_storage[os.urandom(32).hex()] = 'admin'
    print(session_storage)
    app.run(host='0.0.0.0', port=8000)&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;파이썬 코드에서 보면 총 3개의 @app.route()가 있다. 하나하나씩 분석해보면서 공부해보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1778557375719&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@app.route('/')
def index():
    session_id = request.cookies.get('sessionid', None)   
    try:
        # get username from session_storage
        username = session_storage[session_id]  
    except KeyError:
        return render_template('index.html')

    return render_template('index.html', text=f'Hello {username}, {&quot;flag is &quot; + FLAG if username == &quot;admin&quot; else &quot;you are not admin&quot;}')&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;(1) @app.route('\') 의 경로에 들어가면(메인경로)&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;b&gt;과정&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; sessionid를 가져오려고 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 쿠기가 없거나 잘못되면(keyerror) index.htmld을 불러옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt;&amp;nbsp; sesssionid가 있다면 index.html에다가 메세지가 출력됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex. hello _____, flag is ______________&amp;nbsp; &amp;nbsp;(admin인 경우)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; hello _____, you are not admin. (admin이 아닌 경우)&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;pre id=&quot;code_1778558259109&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    elif request.method == 'POST':             
        username = request.form.get('username')
        password = request.form.get('password')
        try:
            # you cannot know admin's pw
            pw = users[username]
        except:
            return '&amp;lt;script&amp;gt;alert(&quot;not found user&quot;);history.go(-1);&amp;lt;/script&amp;gt;'
        if pw == password:         
            resp = make_response(redirect(url_for('index')) )
            session_id = os.urandom(32).hex()  
            session_storage[session_id] = username
            resp.set_cookie('sessionid', session_id)
            return resp
        return '&amp;lt;script&amp;gt;alert(&quot;wrong password&quot;);history.go(-1);&amp;lt;/script&amp;gt;'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;(2) @app.route('/login', method = ['GET', 'POST'])&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫 번째 매개변수는 url, 두 번째 매개변수는 HTTP의 메시드(defalut = get)&lt;/p&gt;
&lt;h3 style=&quot;background-color: #ffffff; color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;HTTP 메서드&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/h3&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;웹 애플리케이션은 URL에 접근할 때 다양한 HTTP 메서드를 사용한다. 기본적으로 라우트는 특정 요청에만 응답하고, 데코레이터의&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span&gt;GET&lt;/span&gt;활용하면 다양한 HTTP 메서드를 처리할 수 있다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;과정&lt;/b&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; get 요청으로 처리를 한다면, login.html 페이지로 가게 됨&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; post 요청이라면, 사용자가 입력한 username과 password를 가져옴&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; users라는 사용자 아이디가 저장되어있는 곳에서 일치한지 확인을 하고&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 비밀번호 검증을 함&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 비밀번호가 다르면 (&quot;wrong password&quot;) 를 띄우고,&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;-&amp;gt; &lt;u&gt;같다면 sessionid를 랜덤 생성하고 쿠키에 저장하기&lt;/u&gt;&lt;/p&gt;
&lt;div style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #3e4349; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1778565181727&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@app.route('/admin')
def admin():
    # developer's note: review below commented code and uncomment it (TODO)

    #session_id = request.cookies.get('sessionid', None)
    #username = session_storage[session_id]
    #if username != 'admin':
    #    return render_template('index.html')

    return session_storage&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) @app.route('/admin')&amp;nbsp; &amp;nbsp;--&amp;gt; admin페이지(url)로 이동&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;gt; admin() 함수 실행, 즉 페이지로 이동하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; session_storage가 응답된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 이 과정에서 admin뿐만 아니라 다른 아이디의 sessionid가 다 드러나는 이유 중 하나!!(제일 중요한 코드~~))&lt;/p&gt;</description>
      <category>SWUFORCE/워게임</category>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/76</guid>
      <comments>https://hmyang444.tistory.com/76#entry76comment</comments>
      <pubDate>Tue, 12 May 2026 14:55:12 +0900</pubDate>
    </item>
    <item>
      <title>드림핵 워게임 - session-basic</title>
      <link>https://hmyang444.tistory.com/75</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dreamhack.io/wargame/challenges/409&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://dreamhack.io/wargame/challenges/409&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778483905666&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;로그인 | Dreamhack&quot; data-og-description=&quot;&quot; data-og-host=&quot;dreamhack.io&quot; data-og-source-url=&quot;https://dreamhack.io/wargame/challenges/409&quot; data-og-url=&quot;https://dreamhack.io/users/login?after=/wargame/challenges/409&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://dreamhack.io/wargame/challenges/409&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dreamhack.io/wargame/challenges/409&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;로그인 | Dreamhack&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dreamhack.io&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 style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;문제: 쿠키와 세션으로 인증 상태를 관리하는 간단한 로그인 서비스입니다. admin 계정으로 로그인에 성공하면 플래그를 획득할 수 있습니다.&amp;nbsp;플래그 형식은 DH{...} 입니다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;먼저 파이썬 파일을 하나 다운로드 받음&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;app.py을 visual studio code로 열어줌&lt;/p&gt;
&lt;pre id=&quot;code_1778483982448&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#!/usr/bin/python3
from flask import Flask, request, render_template, make_response, redirect, url_for

app = Flask(__name__)

try:
    FLAG = open('./flag.txt', 'r').read()  #뭔가 flag.txt파일을 열어오는 듯
except:
    FLAG = '[**FLAG**]'

users = {
    'guest': 'guest',  #이게 해당하는 아이디랑 비번인가보다
    'user': 'user1234',  #user의 아이디, 비번도 있고
    'admin': FLAG   #중요부분 -&amp;gt; admin에 대한 비밀번호는 flag로 표시되어 있음
}


# this is our session storage
session_storage = {             # session_strage가 있네..
}


@app.route('/')
def index():
    session_id = request.cookies.get('sessionid', None)   
    try:
        # get username from session_storage
        username = session_storage[session_id]  
    except KeyError:
        return render_template('index.html')

    return render_template('index.html', text=f'Hello {username}, {&quot;flag is &quot; + FLAG if username == &quot;admin&quot; else &quot;you are not admin&quot;}')


@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    elif request.method == 'POST':             #POST일 때 username, password를 읽어옴
        username = request.form.get('username')
        password = request.form.get('password')
        try:
            # you cannot know admin's pw
            pw = users[username]
        except:
            return '&amp;lt;script&amp;gt;alert(&quot;not found user&quot;);history.go(-1);&amp;lt;/script&amp;gt;'
        if pw == password:          #pw가 password랑 일치하면
            resp = make_response(redirect(url_for('index')) )
            session_id = os.urandom(32).hex()     #중요!! -&amp;gt; session_id를 랜덤으로 hex값으로 바꾸는 것 같음
            session_storage[session_id] = username
            resp.set_cookie('sessionid', session_id)
            return resp
        return '&amp;lt;script&amp;gt;alert(&quot;wrong password&quot;);history.go(-1);&amp;lt;/script&amp;gt;'


@app.route('/admin')
def admin():
    # developer's note: review below commented code and uncomment it (TODO)

    #session_id = request.cookies.get('sessionid', None)
    #username = session_storage[session_id]
    #if username != 'admin':
    #    return render_template('index.html')

    return session_storage


if __name__ == '__main__':
    import os
    # create admin sessionid and save it to our storage
    # and also you cannot reveal admin's sesseionid by brute forcing!!! haha
    session_storage[os.urandom(32).hex()] = 'admin'
    print(session_storage)
    app.run(host='0.0.0.0', port=8000)&lt;/code&gt;&lt;/pre&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;스크린샷 2026-05-11 105322.png&quot; data-origin-width=&quot;2876&quot; data-origin-height=&quot;1141&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buqA1f/dJMcahdjhgK/xloBbylkGlkBjTu06H4bg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buqA1f/dJMcahdjhgK/xloBbylkGlkBjTu06H4bg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buqA1f/dJMcahdjhgK/xloBbylkGlkBjTu06H4bg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuqA1f%2FdJMcahdjhgK%2FxloBbylkGlkBjTu06H4bg0%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;2876&quot; height=&quot;1141&quot; data-filename=&quot;스크린샷 2026-05-11 105322.png&quot; data-origin-width=&quot;2876&quot; data-origin-height=&quot;1141&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;당시의 나는 그냥 오류인가보다 하고 별 신경을 안 씀ㅋ...............&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;그리고 해당 login페이지를 열어보았음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2723&quot; data-origin-height=&quot;1454&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KfEvG/dJMcaarJEVo/fJUk45JGuxT42KIqTSYR9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KfEvG/dJMcaarJEVo/fJUk45JGuxT42KIqTSYR9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KfEvG/dJMcaarJEVo/fJUk45JGuxT42KIqTSYR9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKfEvG%2FdJMcaarJEVo%2FfJUk45JGuxT42KIqTSYR9K%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;2723&quot; height=&quot;1454&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;2723&quot; data-origin-height=&quot;1454&quot;/&gt;&lt;/span&gt;&lt;/figure&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;아직은 잘 모르겠으니까 알고 있는 guest - guest로 로그인을 해줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그랬더니 &quot;Hello guest, you are not admin&quot; 이라고 내용이 뜸&amp;nbsp; --&amp;gt; 파이썬 코드에서 본 것!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-05-11 104347.png&quot; data-origin-width=&quot;2871&quot; data-origin-height=&quot;1288&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b4fK7f/dJMcaarJEWh/TwRONAmMiWUWOBdpddv9U0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b4fK7f/dJMcaarJEWh/TwRONAmMiWUWOBdpddv9U0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b4fK7f/dJMcaarJEWh/TwRONAmMiWUWOBdpddv9U0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4fK7f%2FdJMcaarJEWh%2FTwRONAmMiWUWOBdpddv9U0%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;2871&quot; height=&quot;1288&quot; data-filename=&quot;스크린샷 2026-05-11 104347.png&quot; data-origin-width=&quot;2871&quot; data-origin-height=&quot;1288&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 문제가 session, cookie인만큼 작업자도구를 열어서 application값을 확인 안해줄 수가 없었다.&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;cookie에 들어가보니 guest로 로그인을 했을 때, sessionid(난수)가 생성되는 것을 확인할 수 있었음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금 보이는 guest의 sessionid의 값을 admin의 sessionid로 바꿔주면 되는 것 아닐까??? 약간 알 것 같은데 모르는 것 같은 느낌인..이상한 느낌&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;아까 python코드를 다시 보면&lt;br /&gt;&lt;b&gt;session_id = os.urandom(32).hex()&amp;nbsp; 라고 되어있는데&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 찾아보니 session_id를 랜덤 난수로 만들어주는데,&lt;b&gt; 32byte를 hex값으로(16진수) 바꿔준다고 함&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;그니까 이게 랜덤값이다 보니까 guest로 다시 로그인하면 새로운 session_id 값이 생기게 됨&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;그리고 나서 아무리 python 코드를 쳐다보고, 로그인을 해봐도 전혀.. 잘 모르겠어서&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;b&gt;&amp;gt;&amp;gt;&amp;gt; app.route()를 유의해서 볼 것(처음보는 거였는데)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;@app.route('/admin')&amp;nbsp;&lt;/b&gt; # /admin으로 들어가면 되는 것이었음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;# @app.route: 해당 앱의 URL을 함수에 쉽게 할당하기 위해 제공하는 파이썬 데코레이터 / 첫번째 매개변수는 URL&lt;br /&gt;&lt;b&gt;def&amp;nbsp;admin():&lt;/b&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;developer's&amp;nbsp;note:&amp;nbsp;review&amp;nbsp;below&amp;nbsp;commented&amp;nbsp;code&amp;nbsp;and&amp;nbsp;uncomment&amp;nbsp;it&amp;nbsp;(TODO) &lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#session_id&amp;nbsp;=&amp;nbsp;request.cookies.get('sessionid',&amp;nbsp;None) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#username&amp;nbsp;=&amp;nbsp;session_storage[session_id] &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#if&amp;nbsp;username&amp;nbsp;!=&amp;nbsp;'admin': &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;render_template('index.html') &lt;br /&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return&amp;nbsp;session_storage&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;소름돋게도 admin() 함수는 session_storage를 반환한다고 함 --&amp;gt; sessionid가 있을 것이라고 판단&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/J7roQ/dJMcaiQMZkc/6wrSY5w9L8x69XxxEqhQkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/J7roQ/dJMcaiQMZkc/6wrSY5w9L8x69XxxEqhQkk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/J7roQ/dJMcaiQMZkc/6wrSY5w9L8x69XxxEqhQkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJ7roQ%2FdJMcaiQMZkc%2F6wrSY5w9L8x69XxxEqhQkk%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;900&quot; height=&quot;168&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 보니까 경고창 밑에 들어갈 url이 있었음&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;스크린샷 2026-05-11 105842.png&quot; data-origin-width=&quot;2047&quot; data-origin-height=&quot;602&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYprYx/dJMcafs0YSf/TlGZ7mkhfnD04KPU2pmgB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYprYx/dJMcafs0YSf/TlGZ7mkhfnD04KPU2pmgB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYprYx/dJMcafs0YSf/TlGZ7mkhfnD04KPU2pmgB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYprYx%2FdJMcafs0YSf%2FTlGZ7mkhfnD04KPU2pmgB0%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;2047&quot; height=&quot;602&quot; data-filename=&quot;스크린샷 2026-05-11 105842.png&quot; data-origin-width=&quot;2047&quot; data-origin-height=&quot;602&quot;/&gt;&lt;/span&gt;&lt;/figure&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;스크린샷 2026-05-11 105742.png&quot; data-origin-width=&quot;1335&quot; data-origin-height=&quot;198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vK58U/dJMcafs0YSc/MmWvRzb3cLdLNpCGXCQhg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vK58U/dJMcafs0YSc/MmWvRzb3cLdLNpCGXCQhg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vK58U/dJMcafs0YSc/MmWvRzb3cLdLNpCGXCQhg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvK58U%2FdJMcafs0YSc%2FMmWvRzb3cLdLNpCGXCQhg1%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;1335&quot; height=&quot;198&quot; data-filename=&quot;스크린샷 2026-05-11 105742.png&quot; data-origin-width=&quot;1335&quot; data-origin-height=&quot;198&quot;/&gt;&lt;/span&gt;&lt;/figure&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;눌러봤더니 admin이 뜸!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;admin의 sessionid라고 생각해서 이것을 바꿔주기로 했음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-05-11 110703.png&quot; data-origin-width=&quot;2865&quot; data-origin-height=&quot;936&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjTnQl/dJMcahdjhgJ/t6KK4rmDXXa4dKrJRABMWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjTnQl/dJMcahdjhgJ/t6KK4rmDXXa4dKrJRABMWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjTnQl/dJMcahdjhgJ/t6KK4rmDXXa4dKrJRABMWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjTnQl%2FdJMcahdjhgJ%2Ft6KK4rmDXXa4dKrJRABMWk%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;2865&quot; height=&quot;936&quot; data-filename=&quot;스크린샷 2026-05-11 110703.png&quot; data-origin-width=&quot;2865&quot; data-origin-height=&quot;936&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;아무리 바꿔주고 세로고침을 해도 전혀 flag가 뜨지 않음&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;어떤 사람들은 burp suite에서 한다고 하길래 나도 따라해봤는데&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-05-11 145757.png&quot; data-origin-width=&quot;2840&quot; data-origin-height=&quot;1610&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/va2Rg/dJMcagrVySS/kyBfAkF3WMBeuwHgEnTFsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/va2Rg/dJMcagrVySS/kyBfAkF3WMBeuwHgEnTFsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/va2Rg/dJMcagrVySS/kyBfAkF3WMBeuwHgEnTFsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fva2Rg%2FdJMcagrVySS%2FkyBfAkF3WMBeuwHgEnTFsK%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;2840&quot; height=&quot;1610&quot; data-filename=&quot;스크린샷 2026-05-11 145757.png&quot; data-origin-width=&quot;2840&quot; data-origin-height=&quot;1610&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 이건 자꾸 hhtp를 입력하면 오류가 자꾸 떠서 다시 맘을 다잡고 해당 서버에서 해보기로 했음&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;다시 login페이지에 들어가서 guest로 로그인한 후&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 해당 페이지에다가 /admin을 쳐주었더니...!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 로그인한 모든 흔적들이 나오면서 admin에 대한 sessionid가 나옴!!&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;admin의 sessionid를 복사하고 다시 원래 창으로 돌아와서 sessionid값을 수정하고 세로고침을 하니까 flag가 바로 나옴!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3mham/dJMcafs0YSi/XdckVLkXc8nTZdlumdMQyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3mham/dJMcafs0YSi/XdckVLkXc8nTZdlumdMQyk/img.png&quot; data-is-animation=&quot;false&quot; data-origin-width=&quot;2877&quot; data-origin-height=&quot;673&quot; data-filename=&quot;스크린샷 2026-05-11 153137.png&quot; data-widthpercent=&quot;44.46&quot; style=&quot;width: 43.9469%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3mham/dJMcafs0YSi/XdckVLkXc8nTZdlumdMQyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3mham%2FdJMcafs0YSi%2FXdckVLkXc8nTZdlumdMQyk%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;2877&quot; height=&quot;673&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2026-05-11 153153.png&quot; data-origin-width=&quot;1678&quot; data-origin-height=&quot;486&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kDp9O/dJMcaarJEWg/qvdXUs8vXNnf05grYPPf50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kDp9O/dJMcaarJEWg/qvdXUs8vXNnf05grYPPf50/img.png&quot; data-alt=&quot;힘들었다....&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kDp9O/dJMcaarJEWg/qvdXUs8vXNnf05grYPPf50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkDp9O%2FdJMcaarJEWg%2FqvdXUs8vXNnf05grYPPf50%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;1678&quot; height=&quot;486&quot; data-filename=&quot;스크린샷 2026-05-11 153153.png&quot; data-origin-width=&quot;1678&quot; data-origin-height=&quot;486&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;힘들었다....&lt;/figcaption&gt;
&lt;/figure&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;# python의 app.route 에 대한 지식 --&amp;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;</description>
      <category>SWUFORCE/워게임</category>
      <author>hmyang444</author>
      <guid isPermaLink="true">https://hmyang444.tistory.com/75</guid>
      <comments>https://hmyang444.tistory.com/75#entry75comment</comments>
      <pubDate>Mon, 11 May 2026 16:50:39 +0900</pubDate>
    </item>
  </channel>
</rss>