<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>김승현</title>
    <link>https://kshind.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Mon, 13 Apr 2026 01:47:45 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>kshind</managingEditor>
    <item>
      <title>XML EXTERNAL ENTITY</title>
      <link>https://kshind.tistory.com/160</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;XML이란?&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Extensible Markup Language (XML)은 데이터를 저장하고 전송하기 위해 설계된 마크업 언어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발자가 임의의 데이터 구조를 텍스트 형식으로 정의하고 표현할 수 있도록 하며, HTML과 유사한 트리 구조&lt;/p&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;lt;saml:AttributeStatement&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;lt;saml:Attribute&amp;nbsp;Name=&quot;username&quot;&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;lt;saml:AttributeValue&amp;gt; &lt;br /&gt;&amp;nbsp;vickieli &lt;br /&gt;&amp;nbsp;&amp;lt;/saml:AttributeValue&amp;gt; &lt;br /&gt;&amp;nbsp;&amp;lt;/saml:Attribute&amp;gt; &lt;br /&gt;&amp;lt;/saml:AttributeStatement&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;XML은 사용자 정의 태그 이름을 사용하기 때문에 XML 문서를 자유롭게 구조화 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; XML 형식은 웹 애플리케이션의 인증, 파일 전송, 이미지 업로드, HTTP 데이터를&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 클라이언트와 서버 간에 전송하는 다양한 기능에서 널리 사용&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;또한 XML은 문서 형식 정의(DTD)를 포함할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 DTD는 외부 소스에서 로드하거나 DOCTYPE 태그 내에 문서 자체에 선언 가능함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시&lt;/p&gt;
&lt;pre id=&quot;code_1723020307437&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;!DOCTYPE example [
 &amp;lt;!ENTITY file &quot;Hello!&quot;&amp;gt;
]&amp;gt;
&amp;lt;example&amp;gt;&amp;amp;file;&amp;lt;/example&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XML 엔터티는 프로그래밍 언어의 변수처럼 작동함&lt;/p&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;amp;file; 구문을 사용하여 참조할 때마다 XML 문서는 그 자리에 file의 값을 로드.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 경우 XML 문서 내의 &amp;amp;file; 참조는 모두 &quot;Hello!&quot;로 대체됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XML 문서는 URL을 사용하여 로컬 또는 원격 콘텐츠에 접근하는 외부 엔터티도 사용할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엔터티의 값이 SYSTEM 키워드로 시작하면, 해당 엔터티는 외부 엔터티이며, 그 값은 URL에서 로드됨&lt;/p&gt;
&lt;pre id=&quot;code_1723020537141&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;!DOCTYPE example [
 &amp;lt;!ENTITY file SYSTEM &quot;file:///example.txt&quot;&amp;gt;
]&amp;gt;
&amp;lt;example&amp;gt;&amp;amp;file;&amp;lt;/example&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;예방법&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XXE 공격을 예방하는 방법은&amp;nbsp; XML 파서의 기능을 제한하는 것에 달려있음.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;XML 파서에서 DTD 처리를 비활성화해야 함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DTD 처리가 XXE 공격의 필수 조건이기 때문&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 DTD를 완전히 비활성화하는 것이 불가능하다면?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부 엔티티, 매개변수 엔티티, XML 문서에 포함된 인라인 DTD를 비활성화해야 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+XXE 기반의 DoS를 방지하기 위해, XML 파서의 파싱 시간과 파싱 깊이 제한&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;엔티티의 확장을 아예 비활성화&lt;/span&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;+XML대신 JSON 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;XXE 헌팅법&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;XML 데이터 입력 지점을 찾기
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;base64로 인코딩된 XML 코드 블록은 'PD94bWw'&lt;/li&gt;
&lt;li&gt;XML은 XML, HTML, DOCX, PPTX, XLSX, GPX, PDF, SVG, RSS 피드와 같은 문서 및 이미지 형식에 작성 가능&lt;br /&gt;또한, GIF, PNG, JPEG 파일과 같은 이미지 내에 포함된 메타데이터도 모두 XML 기반&lt;/li&gt;
&lt;li&gt;다른 형식의 입력을 받는 엔드포인트에서 요청의 Content-Type 헤더를 아래의
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Content-Type: text/xml&lt;/li&gt;
&lt;li&gt;Content-Type: application/xml&lt;/li&gt;
&lt;/ul&gt;
헤더들로 바꿔본 다음 요청 본문에 XML 데이터를 포함시켜 입력 시도 해보기&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;전형적인 XXE 테스트&lt;/li&gt;
&lt;li&gt;블라인드 XXE 테스트&lt;/li&gt;
&lt;li&gt;다른 파일 형식에 XXE 페이로드 삽입&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;공격 확대&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;SSRF 공격을 위한 기반 마련&lt;/li&gt;
&lt;li&gt;파일 읽기&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>book_summary</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/160</guid>
      <comments>https://kshind.tistory.com/160#entry160comment</comments>
      <pubDate>Wed, 7 Aug 2024 17:46:56 +0900</pubDate>
    </item>
    <item>
      <title>Bugbounty Boot Camp Chap.10 INSECURE DIRECT OBJECT REFERENCES</title>
      <link>https://kshind.tistory.com/158</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;IDOR&lt;/b&gt;(Insecure Direct Object References)란?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IDOR는 사용자가 객체 ID, 객체 번호 또는 파일 이름을 직접 참조하여 자신에게 속하지 않은 리소스에 접근 가능한 것과 같이 본질적으로 누락된 접근 제어를 의미함&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;가상 시나리오&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;example.com은 채팅 서비스이고 사용자의 아이디 및 비밀번호는 사이트가 저장하고 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://example.com/messages?user_id=1234&quot;&gt;https://example.com/messages?user_id=1234&lt;/a&gt;는 1234라는 아이디를 가진 사용자의 채팅기록을 볼 수 있는 URL임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 1234를 1233으로 고칠 수 있는데 이때 따로 접근 제어가 없다면 이는 IDOR 취약점이 존재하는 것임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IDOR 취약점의 영향&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;접근하면 안 되는 정보 읽기&lt;/li&gt;
&lt;li&gt;임의의 정보 수정 및 삭제&lt;/li&gt;
&lt;li&gt;데이터베이스 객체 외 리소스 또한 영향을 받을 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IDOR 취약점 예방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 취약점은 애플리케이션이 두 가지 역할을 제대로 하지 못할 때 발생한다고 할 수 있음&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;사용자 신원에 기반한 접근 제어&lt;/li&gt;
&lt;li&gt;사용자의 자원을 참조하기 위해 고유하고 예측 불가능한 키 또는 해시 사용&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IDOR 헌팅법&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;두 개의 계정 생성&lt;/li&gt;
&lt;li&gt;특징 발견 및 분석&lt;/li&gt;
&lt;li&gt;request 확인&lt;/li&gt;
&lt;li&gt;특징값(ID)들 변경&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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>book_summary</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/158</guid>
      <comments>https://kshind.tistory.com/158#entry158comment</comments>
      <pubDate>Sun, 28 Jul 2024 01:09:09 +0900</pubDate>
    </item>
    <item>
      <title>AWS Security Basics - Secure Directory Services</title>
      <link>https://kshind.tistory.com/157</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f8f9fa; color: #1f1f1f; text-align: left;&quot;&gt;&lt;b&gt;디렉터리 서비스&lt;/b&gt;란? &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f8f9fa; color: #1f1f1f; text-align: left;&quot;&gt;관리자가 자신의 환경을 논리적, 계층적으로 구성, 관리, 제어 및 액세스할 수 있도록 하는 시스템 소프트웨어이며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체에 대한 정보를 객체 유형 및 속성별로 쿼리하고 관리할 수 있는 중앙 집중식 보안 데이터베이스 역할을 함&lt;span style=&quot;background-color: #f8f9fa; color: #1f1f1f; text-align: left;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;온프레미스 환경에 대한 리소스 관리 및 거버넌스를 중앙 집중화하는 데 탁월함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 다른 시스템/프로그램 작동을 위한 밑바탕이 되곤 함&lt;/p&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;rarr;서버, 스토리지 및 네트워크 리소스에 대한 보안 액세스를 제공함&lt;/p&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;도메인의 ID를 인증 및 승인하고 이를 보호하는 중앙 위치를 제공함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr;관리를 단순화하고 추가 보안 계층 ​​및 문제를 제공함&lt;/p&gt;
&lt;/div&gt;
&lt;/div&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;&lt;b&gt;AWS 디렉터리 서비스&lt;/b&gt;는 특정 상황 및 환경에 따라 여러 디렉터리 서비스를 제공함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;Microsoft Active Directory
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Windows 환경 내 네트워크 리소스의 인증/권한 부여 및 관리를 중앙 집중화하는 디렉터리 서비스&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Simple AD
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클라우드 내 디렉토리 설정 및 관리를 단순화하는 microsft Active Directory 호환 디렉토리 서비스&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Use Pools
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f8f9fa; color: #1f1f1f; text-align: left;&quot;&gt;애플리케이션에 대한 사용자 가입, 로그인 및 액세스 제어 기능을 제공하는 완전 관리형 사용자 디렉터리 서비스&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Cloud Directory
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;클라우드에서 계층적 데이터를 구성하고 관리하기 위한 사용자 정의 디렉터리 스키마를 생성할 수 있는 &lt;br /&gt;유연하고&amp;nbsp;확장&amp;nbsp;가능한&amp;nbsp;클라우드&amp;nbsp;네이티브&amp;nbsp;디렉터리&amp;nbsp;서비스&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Microsoft Active Directory와 Simple AD는 주로 기계를 다루기 위해,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Use Pools와 Cloud Directory는 웹과 애플리케이션을 다루기 위해 주로 사용됨&amp;nbsp;&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;Microsoft AD Service&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;관리자가 이를 생성하기 위해선 두 가지 방법이 있음&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;지원되는 Windows 서버의 EC2 인스턴스를 생성하고 AD 서비스를 수동으로 생성&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f8f9fa; color: #1f1f1f; text-align: left;&quot;&gt;AWS 디렉터리 서비스를 사용하여 Microsoft AD 서비스를 자동으로 생성&lt;/span&gt;&lt;/li&gt;
&lt;/ol&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;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;&lt;span style=&quot;background-color: #f8f9fa;&quot;&gt;Using AWS Directory Service&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #1f1f1f;&quot;&gt;&lt;span style=&quot;background-color: #f8f9fa;&quot;&gt;AWS Directory Service를 사용할 때, 아래의 방법에 따라 관리가 단순화될 수 있음&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가용성을 높이기 위해 다른 두 개의 가용성 집합에 인스턴스들 생성&lt;/li&gt;
&lt;li&gt;소프트웨어&amp;nbsp;설치&amp;nbsp;및&amp;nbsp;기본&amp;nbsp;구성&amp;nbsp;수행&lt;/li&gt;
&lt;li&gt;소프트웨어 및 OS 업데이트 및 유지 보수&lt;/li&gt;
&lt;li&gt;Directory Service 서버를 사용할 수 없을 때 관리자가 알 수 있도록 경고 설정&lt;/li&gt;
&lt;li&gt;스냅샷 생성 및 모든 서버 저장 및 복원&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Microsoft AD 디렉터리 서비스의 경우,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS Directory Service는 포털에서 고급 설정에 액세스할 수 있도록 하고 주요 입력을 요청함으로써 단순화함&lt;/p&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;rarr; 관리자가 Microsoft AD 툴 및 아키텍처에 대한 이해의 필요성을 없애줌&lt;/p&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Creating AWS Managed Microsoft AD Directory&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1690&quot; data-origin-height=&quot;691&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuJHfI/btsIOWnuMkc/vWi7sIKvGS3vbhLaBdMEC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuJHfI/btsIOWnuMkc/vWi7sIKvGS3vbhLaBdMEC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuJHfI/btsIOWnuMkc/vWi7sIKvGS3vbhLaBdMEC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuJHfI%2FbtsIOWnuMkc%2FvWi7sIKvGS3vbhLaBdMEC0%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;1690&quot; height=&quot;691&quot; data-origin-width=&quot;1690&quot; data-origin-height=&quot;691&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;VPC 구성(생성)
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;서로 다른 가용성 집합에 두 개의 서브넷들 생성&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;DS 생성
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;VPC를 업데이트하여 EC2 인스턴스용 DNS 서버를 설정하여 등록 프로세스를 지원할 수 있음&amp;nbsp;&lt;/li&gt;
&lt;li&gt;domain name, Use Previous subnets....&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;EC2 인스턴스 생성&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;관리자는 DS 생성에 사용된 것과 동일한 서브넷 또는 DS 서브넷에 대한 네트워크 연결이 있는 다른 VPC/서브넷에 생성 가능함&lt;/li&gt;
&lt;li&gt;use Domain name / DS IPs ....&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;EC2 생성
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;컴퓨터 등 기계의 도메인 조인&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&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;Simplifying Domain Joining&lt;/b&gt;&lt;/h4&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;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;AWS는 아래의 프로세스들을 자동화하여 수행함&amp;nbsp;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;최소한의 권한으로 디렉터리에 서비스 계정을 생성 ( 컴퓨터를 도메인에 가입시키는 것만 허용 )&lt;/li&gt;
&lt;li&gt;서비스 계정 사용자 이름과 비밀번호를 포함하는 AWS Serect Manager에서 secret 생성&lt;/li&gt;
&lt;li&gt;AWS Secret Manager 서비스에 AWS Secret에 대한 읽기 액세스 권한을 부여하는 IAM 정책 생성&lt;/li&gt;
&lt;li&gt;IAM 정책을 포함하는 EC2 IAM 역할 생성&lt;/li&gt;
&lt;/ol&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;Securing Directory Services&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Microsoft AD 및 Simple AD 디렉터리 서비스는 컴퓨터 네트워크 자원을 관리하고 중앙 집중화하는 데 핵심임&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 관리는 디렉터리의 소프트웨어 수준에서 여러 레벨에 따라 수행됨&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Network Access&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;도메인에 가입된 서비스의 모든 컴퓨터는 서비스에 연결되어 있어야 하므로 서비스에 접근 가능한 포트를&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;제한함&lt;/li&gt;
&lt;li&gt;원격 콘솔 포트와 같이 서비스에 열려 있는 관리 포트를 허용하지 않고 보안 연결을 적용하여 보호 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Privileged Users
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DS에 IP 설정시 서비스에 액세스하고 구성할 수 있는 관리자가 생성되는데, 해당 관리자를 최소한의 권한으로&amp;nbsp;&lt;br /&gt;설정하여 비상시에만 사용하고 강력한 암호를 설정하여 보호 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Policies
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;관리자는 도메인의 사용자 및 컴퓨터에 적용되는 보안 기능을 자동화하여 보호 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Trusted Networks
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다른 도메인 및 페더레이션 서비스와 신뢰 관계를 설정하여 보호 수행&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Pros and Cons&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;장점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;선택할 수 있는 다양한 디렉터리 서비스 유형을 제공하기 때문에 환경 내/외부의 시스템이나 &lt;br /&gt;서비스를 관리하는 데 사용될 수 있음&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;관리자는 중앙에서 여러 리소스를 관리하여 시간을 절약하고 해당 리소스에 대한 액세스를 보호할 수 있음&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;적은 지식 요구로 관리자가 쉽게 세팅할 수 있고 리소스 관리를 중앙 집중화할 수 있으며 디렉터리 환경을 &lt;br /&gt;동일하게 설정하기 쉬움&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;여러 계층의 사용자 권한 액세스 정책 관리 및 모니터링과 같은 다양한 유형의 오버헤드 및 보안 위험 존재&lt;br /&gt;-&amp;gt; 다양한 서비스 유형이 있는데 그렇게 되면 각 유형에 대한 사용자 역할, 정책 관리 및 모니터링 등&lt;br /&gt;&amp;nbsp; &amp;nbsp; 각 유형에 대한 유지 보수에 대한 어려움이 증가하며 잘못된 권한 설정 등 보안 위험으로까지 이어질 수 있음&lt;/li&gt;
&lt;li&gt;디렉터리와 AWS 간에 신뢰와 액세스가 적용되는 경우 보안 문제가 AWS 리소스로 확장 가능&lt;br /&gt;-&amp;gt; Directory Service와 AWS를 통합하게 되면 간편히 사용할 수 있으나 조직의 DS가 해킹당하면&lt;br /&gt;&amp;nbsp; &amp;nbsp; AWS 리소스에도 접근 가능한 문제가 발생할 수 있음&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>교육/CyberBit</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/157</guid>
      <comments>https://kshind.tistory.com/157#entry157comment</comments>
      <pubDate>Sat, 27 Jul 2024 03:56:29 +0900</pubDate>
    </item>
    <item>
      <title>Bugbounty Boot Camp Chap.7 CLICKJACKING</title>
      <link>https://kshind.tistory.com/156</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;클릭재킹이란?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML의 &lt;i&gt;&amp;lt;iframe&amp;gt;&lt;/i&gt; 태그를 활용하는 공격 기법임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;iframe&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;2559&quot; data-origin-height=&quot;1059&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DcVU0/btsIOl0NplM/mBcSY2J3Szh9aEEY46IVsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DcVU0/btsIOl0NplM/mBcSY2J3Szh9aEEY46IVsk/img.png&quot; data-alt=&quot;about:blank를 사용한 예시 이미지&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DcVU0/btsIOl0NplM/mBcSY2J3Szh9aEEY46IVsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDcVU0%2FbtsIOl0NplM%2FmBcSY2J3Szh9aEEY46IVsk%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;2559&quot; height=&quot;1059&quot; data-origin-width=&quot;2559&quot; data-origin-height=&quot;1059&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;about:blank를 사용한 예시 이미지&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;iframe태그의 사용 예시&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;온라인 광고&lt;/li&gt;
&lt;li&gt;인터넷 자원 임베디드
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;동영상, 오디오 etc...&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2553&quot; data-origin-height=&quot;618&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dPgYzZ/btsINWUHbC5/gddqo8UkxRuKOATpDPxaN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dPgYzZ/btsINWUHbC5/gddqo8UkxRuKOATpDPxaN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dPgYzZ/btsINWUHbC5/gddqo8UkxRuKOATpDPxaN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdPgYzZ%2FbtsINWUHbC5%2Fgddqo8UkxRuKOATpDPxaN0%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;2553&quot; height=&quot;618&quot; data-origin-width=&quot;2553&quot; data-origin-height=&quot;618&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;위처럼 유용하게 사용할 수 있으나 보안 취약점( ClickJacking)이 존재할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 이를 방지하기 위해 X-Frame-Options 헤더를 설정하여 특정 사이트에서의 iframe을 제한할 수 있음&lt;/p&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;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 100%;&quot;&gt;example.com은 은행 웹사이트로, 사용자가 돈을 송금할 수 있는 페이지를 가지고 있음&lt;br /&gt;&lt;a href=&quot;https://www.example.com/transfer_money&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.example.com/transfer_money&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://www.example.com/transfer_money?recipient=RECIPIENT_ACCOUNT&amp;amp;amount=AMOUNT_TO_TRANSFER&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.example.com/transfer_money?recipient=RECIPIENT_ACCOUNT&amp;amp;amount=AMOUNT_TO_TRANSFER&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;파라미터 종류&lt;br /&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;recipient : 수취인 계좌 ID&lt;/li&gt;
&lt;li&gt;amount : 송금 금액&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같은 경우 공격자가 아래의 스크립트를 글에 숨겨놓으면 버튼을 누를시 Congratulations!라는 경고창이 뜨며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ATTACKER_ACCOUNT에 1000단위의 돈을 입금하게 됨&lt;/p&gt;
&lt;pre id=&quot;code_1721932490438&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;html&amp;gt;
  &amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;Click this button to win a prize!&amp;lt;/h1&amp;gt;
    &amp;lt;iframe src=&quot;https://www.example.com/transfer_money?recipient=ATTACKER_ACCOUNT&amp;amp;amount=1000&quot; style=&quot;position:absolute; width:100%; height:100%; top:0; left:0; opacity:0; z-index:999;&quot;&amp;gt;&amp;lt;/iframe&amp;gt;
    &amp;lt;button onclick=&quot;alert('Congratulations!')&quot;&amp;gt;Click me!&amp;lt;/button&amp;gt;
  &amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;div id=&quot;decoy&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;1159&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxJxsz/btsIMyN1ZhB/DZnVVynDPTF1PQO2wV3oj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxJxsz/btsIMyN1ZhB/DZnVVynDPTF1PQO2wV3oj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxJxsz/btsIMyN1ZhB/DZnVVynDPTF1PQO2wV3oj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxJxsz%2FbtsIMyN1ZhB%2FDZnVVynDPTF1PQO2wV3oj0%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;970&quot; height=&quot;1159&quot; data-origin-width=&quot;970&quot; data-origin-height=&quot;1159&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;클릭재킹이 발생하기 위한 두 가지 조건&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;취약한 페이지가 사용자 대신 상태를 변경할 수 있어야 함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이전의 예시처럼 송금을 하는 기능, 비밀번호를 바꾸는 등의 기능이 있어야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;취약한 페이지가 다른 사이트의 iframe으로 프레임이 될 수 있어야 함
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;다른 악성 페이지가 우리가 공격하고자 하는 사이트에 삽입될 수 있어야 함&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&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;예방법&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;X-Frame-Options&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;페이지가 iframe에서 렌더링될 수 있는지 여부를 나타내는 헤더&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;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;DENY&lt;/li&gt;
&lt;li&gt;SAMEORIGIN&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt; Content-Security-Policy &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #4d5156; text-align: start;&quot;&gt;여러 코드 인젝션을 방지하기 위해 도입된 컴퓨터 보안 표준&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 헤더의 frame-ancestors를 통해 프레임 가능한 사이트를 정할 수 있음&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;none&lt;/li&gt;
&lt;li&gt;self&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;+SameSite 쿠키를 사용하여 클릭재킹을 방지할 수 있음&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Set-Cookie라는 헤더를 통해 사용자의 브라우저에 쿠키를 설정하도록 할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 SameSite=Strict 혹은 Lax로 설정함으로서 서드파티 iframe 내에서 발생한 요청을 처리하지 않게 할 수 있음&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;클릭재킹 헌팅법&lt;/b&gt;&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;상태 변화 행위 페이지가 있는지 확인&lt;/li&gt;
&lt;li&gt;응답 헤더 확인&lt;/li&gt;
&lt;li&gt;취약점 확인&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;클릭재킹 방어 기법 우회&lt;/b&gt;&lt;/h4&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;프레임 버스팅 약점 찾기&lt;/li&gt;
&lt;li&gt;더블 프레임 기법&lt;/li&gt;
&lt;li&gt;엣지 케이스 확&lt;/li&gt;
&lt;/ol&gt;</description>
      <category>book_summary</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/156</guid>
      <comments>https://kshind.tistory.com/156#entry156comment</comments>
      <pubDate>Fri, 26 Jul 2024 04:29:01 +0900</pubDate>
    </item>
    <item>
      <title>Bugbounty Boot Camp Chap.7 OPEN REDIRECTS</title>
      <link>https://kshind.tistory.com/155</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Open Redirect&lt;/b&gt;는 사용자가 기존의 사이트가 아닌 외부의 url에 접근하게 속이는 공격 유형임&lt;/p&gt;
&lt;pre id=&quot;tw-target-text&quot; class=&quot;cpp&quot; style=&quot;background-color: #f8f9fa; color: #1f1f1f; text-align: left;&quot; data-ved=&quot;2ahUKEwiViobF5cGHAxVLZ_UHHVLwMpQQ3ewLegQIBxAU&quot; data-placeholder=&quot;번역&quot; data-ke-language=&quot;cpp&quot;&gt;&lt;code&gt;https://www.naver.com/login?redirect=https://attacker.com&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위와 같이 네이버의 주소로 시작한다면 사용자들은 안심하고 클릭할 가능성&amp;nbsp; &amp;uarr;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;방지법&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리다이렉션을 할 때 악의적인 주소로 접근하는지 확인하도록 해야 함&lt;/li&gt;
&lt;li&gt;미리 작성된 피해야 할 목록을 확인하여 접근을 방지&lt;/li&gt;
&lt;li&gt;제공된 URL이 기존의 호스트와 동일한지 확인&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;Open Redirects 찾는 법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Step 1: Look for Redirect Parameters&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 리다이렉션에 사용된 파라미터들 확인하기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Step 2: Use Google Dorks to Find Additional Redirect Parameters&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 구글 검색을 통해 추가적인 파라미터 검색하기 ex) inurl:%3Dhttp site:example.com&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Step 3: Test for Parameter-Based Open Redirects&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 파라미터를 기반으로 테스트하기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Step 4: Test for Referer-Based Open Redirects&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- referer를 기반으로 테스트하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;혼합 URL 사용&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;URL 구성 요소를 섞어서 우회&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;URL 인코딩 사용&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp;URL 내의 특정 문자를 인코딩하여&amp;nbsp; 우회&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;잘못된 URL 구조 사용&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;잘못된 구조의 URL을 사용하여 우회&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;변칙적인 포트 사용&lt;/b&gt;:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;비표준 포트를 사용하여 우회&lt;/li&gt;
&lt;/ul&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;size18&quot;&gt;&lt;b&gt;우회법에 대한 방지법&lt;/b&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 data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;https:attacker.com&lt;/li&gt;
&lt;li&gt;https;attacker.com&lt;/li&gt;
&lt;li&gt;https:\/\/attacker.com&lt;/li&gt;
&lt;li&gt;https:/\/\attacker.com&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위의 방법 모두 브라우저가 https://attacker.com으로 인식하는 주소들&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1721898778683&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;https://attacker.com\@example.com&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; 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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자를 attacker.com으로 리다이렉트하고, @example.com을 URL의 경로 부분으로 간주하여 아래와 같은 주소로 만듦&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;https://attacker.com/@example.com&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 그렇지 않은 경우,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;example.com을 호스트 이름으로 해석하고, attacker.com\를 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;b&gt;+ 데이터 URL 사용&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1721899044810&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;data:text/plain,hello!&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;data 스키마를 사용하면 위를 통해 hello!라는 평문을 보낼 수 있다.&lt;/p&gt;
&lt;pre id=&quot;code_1721899082688&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;data:text/html;base64,PHNjcmlwdD5sb2NhdGlvbj0iaHR0cHM6Ly9leGFtcGxlLmNvbSI8L3NjcmlwdD4=&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;base64를 활용하면 인코딩 또한 적용한 상태로 보낼 수 있게 된다&lt;/p&gt;
&lt;pre id=&quot;code_1721899115397&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;https://example.com/login?redir=data:text/html;base64,PHNjcmlwdD5sb2NhdGlvbj0iaHR0cHM6Ly9leGFtcGxlLmNvbSI8L3NjcmlwdD4=&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종적으로 redirect되는 주소에 data 스키마를 통해 원하는 곳으로 리다이렉션 되도록 만들 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;이외 추가적인 방법들&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;잘못된 논리 검증 부분 우회
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;https://example.com/login?redir=http://example.com.attacker.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;url 디코딩 이용하기
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;더블인코딩
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;https:&lt;span&gt;//&lt;/span&gt;example.com%252f@attacker.com&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;비ASCII 문자&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;https:&lt;span&gt;//attacker.com?.example.com&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;https:&lt;span&gt;//attacker.com/.example.com&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>book_summary</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/155</guid>
      <comments>https://kshind.tistory.com/155#entry155comment</comments>
      <pubDate>Thu, 25 Jul 2024 18:23:39 +0900</pubDate>
    </item>
    <item>
      <title>Bugbounty Boot Camp Chap.6 CROSS - SITESCRIPTING</title>
      <link>https://kshind.tistory.com/154</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;Blind XSS (블라인드 XSS)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Blind XSS는 서버가 악성 스크립트를 저장하고 이 내용을 애플리케이션의 다른 부분이나 아예 다른 애플리케이션에서 실행되는 방식임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 테슬라 차량 이름에 xss를 넣었을 때 회사 관리 페이지에서 발생한 xss 공격&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;Self XSS (셀프 XSS)&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;피해자가 스스로 악성 payload를 입력하도록 유도해야 하는 공격임&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ex) &quot;이 코드를 해당 페이지에 붙여넣기 해서 실행하세요&quot; &amp;lt;- 사회공학적 기법과 유사하다고 볼 수 있음 그러나 xss의 한 종류&lt;/p&gt;</description>
      <category>book_summary</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/154</guid>
      <comments>https://kshind.tistory.com/154#entry154comment</comments>
      <pubDate>Wed, 24 Jul 2024 23:30:50 +0900</pubDate>
    </item>
    <item>
      <title>Bugbounty Boot Camp Chap.5 WEB HACKING RECONNAISSANCE</title>
      <link>https://kshind.tistory.com/153</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;버그를 찾아야 할 때 세부적인 디테일들을 조사해야 할 때가 있음. 이럴 때 사용하는 것이 advanced 구글 검색임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;site&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 사이트을 대상으로만 검색할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;i&gt;print() site:&quot;python.org&quot;&lt;/i&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- print함수에 대한 내용을 python.org 웹사이트에서만 가져옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;inurl&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;inurl: &quot;bbs/test.php&quot;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- bbs/test.php라는 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;intitle&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;intitle:&quot;index of&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;index of라는 제목을 가진 것들을 가져옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;link&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지정된 링크를 포함하는 내용을 가져옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;link:&quot;www.naver.com&quot;&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;filetype&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 파일 타입을 가진 것을 보고 다운할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;filetype:xls&lt;/p&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;Sublist3r, SubBrute, Amass, Gobuster와 같은 다양한 자동화 도구를 통해 서브도메인들을 죽 나열할 수 있으며 유명한 wordlist들을 활용할 수도 있다. 이후 포트 스캔을 통해 어떤 포트에서 어떤 서비스가 작동 중인지 확인할 수 있다.&lt;/p&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;서버와 직접적인 상호작용을 통해 스캐닝 하는 방법 - nmap&lt;/p&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자의 리소스를 사용하여 서버와 직접 상호작용을 하지 않는 방법 - shodan&lt;/p&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;서비스 열거가 끝났으면 해당 사이트에 gobuster와 같은 도구를 통해 디렉토리를 브루트 포스해볼 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것 말고도 ZAP의 spider를 사용하거나 버프스위트의 기능을 이용해서 디렉토리들을 알아낼 수 있음&lt;/p&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>book_summary</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/153</guid>
      <comments>https://kshind.tistory.com/153#entry153comment</comments>
      <pubDate>Wed, 24 Jul 2024 22:40:02 +0900</pubDate>
    </item>
    <item>
      <title>Bugbounty Boot Camp Chap.4 ENVIRONMENTAL SET UP AND TRAFFIC INTERCEPTION</title>
      <link>https://kshind.tistory.com/152</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; A Browser and a Proxy &lt;/b&gt;&lt;/h4&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;669&quot; data-origin-height=&quot;157&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBuc51/btsIHgms4UW/sDVWRr0QMmFGU4QmCHqnMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBuc51/btsIHgms4UW/sDVWRr0QMmFGU4QmCHqnMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBuc51/btsIHgms4UW/sDVWRr0QMmFGU4QmCHqnMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBuc51%2FbtsIHgms4UW%2FsDVWRr0QMmFGU4QmCHqnMk%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;669&quot; height=&quot;157&quot; data-origin-width=&quot;669&quot; data-origin-height=&quot;157&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책에선 위의 패킷을 예시로 들었는데 이런 경우 burp suite 혹은 ZAP과 같은 웹 프록시 프로그램을 사용하여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠키의 user_id를 수정하는 시도를 해볼 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) Cookie : user_id=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;다양한 기능들&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;intruder - 요청 자동화 기능&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;3장에서 짧게 나왔던 브루트포스(무차별 대입)용으로도 사용 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;repeater - 요청을 수정하고 그에 따른 응답을 반복적으로 볼 수 있는 기능
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;동일한 엔드포인트에 여러 시도를 함으로써 취약점이 존재하는지 확인할 때 사용&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;decoder - 요청 및 응답을 해석하는 기능
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;데이터 인코딩 및 디코딩을 통해 간편하게 요구 조건을 맞출 수 있음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;comparer - 요청 및 응답을 비교해서 차이점을 나타내는 기능&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2375&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdQWRl/btsIJz50u6M/902Q6iJqj1SvWBXEnKdl61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdQWRl/btsIJz50u6M/902Q6iJqj1SvWBXEnKdl61/img.png&quot; data-alt=&quot;intruder&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdQWRl/btsIJz50u6M/902Q6iJqj1SvWBXEnKdl61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdQWRl%2FbtsIJz50u6M%2F902Q6iJqj1SvWBXEnKdl61%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;2375&quot; height=&quot;655&quot; data-origin-width=&quot;2375&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;intruder&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1926&quot; data-origin-height=&quot;883&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cfDgpl/btsIHGFfSOZ/z5dBR01rRTkvL5nm6bFoW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cfDgpl/btsIHGFfSOZ/z5dBR01rRTkvL5nm6bFoW0/img.png&quot; data-alt=&quot;repeater&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cfDgpl/btsIHGFfSOZ/z5dBR01rRTkvL5nm6bFoW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcfDgpl%2FbtsIHGFfSOZ%2Fz5dBR01rRTkvL5nm6bFoW0%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;1926&quot; height=&quot;883&quot; data-origin-width=&quot;1926&quot; data-origin-height=&quot;883&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;repeater&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2379&quot; data-origin-height=&quot;466&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAg8Dv/btsIIXTzz2e/BuyZhlqOA99WUencvXnyD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAg8Dv/btsIIXTzz2e/BuyZhlqOA99WUencvXnyD1/img.png&quot; data-alt=&quot;decoder&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAg8Dv/btsIIXTzz2e/BuyZhlqOA99WUencvXnyD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAg8Dv%2FbtsIIXTzz2e%2FBuyZhlqOA99WUencvXnyD1%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;2379&quot; height=&quot;466&quot; data-origin-width=&quot;2379&quot; data-origin-height=&quot;466&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;decoder&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;763&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciyvW6/btsIIHDr1Ri/QSIY0kj1F9o6IGn0rZKFEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciyvW6/btsIIHDr1Ri/QSIY0kj1F9o6IGn0rZKFEk/img.png&quot; data-alt=&quot;comparer&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciyvW6/btsIIHDr1Ri/QSIY0kj1F9o6IGn0rZKFEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciyvW6%2FbtsIIHDr1Ri%2FQSIY0kj1F9o6IGn0rZKFEk%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;2128&quot; height=&quot;763&quot; data-origin-width=&quot;2128&quot; data-origin-height=&quot;763&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;comparer&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1077&quot; data-origin-height=&quot;235&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nKiHK/btsIHKU9TsC/Cwez4e8kRuXjwEzmAZ3tx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nKiHK/btsIHKU9TsC/Cwez4e8kRuXjwEzmAZ3tx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nKiHK/btsIHKU9TsC/Cwez4e8kRuXjwEzmAZ3tx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnKiHK%2FbtsIHKU9TsC%2FCwez4e8kRuXjwEzmAZ3tx0%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;1077&quot; height=&quot;235&quot; data-origin-width=&quot;1077&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;open browser 클릭 후 interceop is off를 클릭해서 가로챌 수 있음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1237&quot; data-origin-height=&quot;403&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Wjlq3/btsIJw2tXgL/n1YfYO2WgVm81bQ9s5rklK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Wjlq3/btsIJw2tXgL/n1YfYO2WgVm81bQ9s5rklK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Wjlq3/btsIJw2tXgL/n1YfYO2WgVm81bQ9s5rklK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWjlq3%2FbtsIJw2tXgL%2Fn1YfYO2WgVm81bQ9s5rklK%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;1237&quot; height=&quot;403&quot; data-origin-width=&quot;1237&quot; data-origin-height=&quot;403&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;response 보기 설정&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k2f51/btsIHB4YoAV/uTvzsT71Jrpn7sK3bknuEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k2f51/btsIHB4YoAV/uTvzsT71Jrpn7sK3bknuEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k2f51/btsIHB4YoAV/uTvzsT71Jrpn7sK3bknuEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk2f51%2FbtsIHB4YoAV%2FuTvzsT71Jrpn7sK3bknuEK%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;1059&quot; height=&quot;223&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;proxy - proxy settings 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1795&quot; data-origin-height=&quot;1105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhEHiX/btsIJE0i7Gb/pS8gvQCbUjKwh0vFSSSbn1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhEHiX/btsIJE0i7Gb/pS8gvQCbUjKwh0vFSSSbn1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhEHiX/btsIJE0i7Gb/pS8gvQCbUjKwh0vFSSSbn1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhEHiX%2FbtsIJE0i7Gb%2FpS8gvQCbUjKwh0vFSSSbn1%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;1795&quot; height=&quot;1105&quot; data-origin-width=&quot;1795&quot; data-origin-height=&quot;1105&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조금 내려서 Response interception rules에 체크하기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1545&quot; data-origin-height=&quot;870&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BkHUA/btsIJC9fFVI/5UlXlVBjpKrbAWE8oT8Hm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BkHUA/btsIJC9fFVI/5UlXlVBjpKrbAWE8oT8Hm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BkHUA/btsIJC9fFVI/5UlXlVBjpKrbAWE8oT8Hm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBkHUA%2FbtsIJC9fFVI%2F5UlXlVBjpKrbAWE8oT8Hm1%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;1545&quot; height=&quot;870&quot; data-origin-width=&quot;1545&quot; data-origin-height=&quot;870&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;아래는 한국어 깨짐 해결방법&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2439&quot; data-origin-height=&quot;786&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdYpUb/btsIHAkJu8h/kl1cdkYath5XNAtIOEcJt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdYpUb/btsIHAkJu8h/kl1cdkYath5XNAtIOEcJt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdYpUb/btsIHAkJu8h/kl1cdkYath5XNAtIOEcJt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdYpUb%2FbtsIHAkJu8h%2Fkl1cdkYath5XNAtIOEcJt1%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;2439&quot; height=&quot;786&quot; data-origin-width=&quot;2439&quot; data-origin-height=&quot;786&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;settings 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1878&quot; data-origin-height=&quot;1152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Z4hWQ/btsIHzTDakT/R0ydrSUskVikg2WRcoQUl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Z4hWQ/btsIHzTDakT/R0ydrSUskVikg2WRcoQUl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Z4hWQ/btsIHzTDakT/R0ydrSUskVikg2WRcoQUl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZ4hWQ%2FbtsIHzTDakT%2FR0ydrSUskVikg2WRcoQUl0%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;1878&quot; height=&quot;1152&quot; data-origin-width=&quot;1878&quot; data-origin-height=&quot;1152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;user interface에서 inspector and message editor 클릭 -&amp;gt; HTTP message display에서 change font 클릭 후 한글이 적혀있는 거로 변경 바탕체 14p 추천...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1405&quot; data-origin-height=&quot;631&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqyGGQ/btsIKcWyuKa/KrETjpvDL92f6NzCvZ0gEK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqyGGQ/btsIKcWyuKa/KrETjpvDL92f6NzCvZ0gEK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqyGGQ/btsIKcWyuKa/KrETjpvDL92f6NzCvZ0gEK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqyGGQ%2FbtsIKcWyuKa%2FKrETjpvDL92f6NzCvZ0gEK%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;1405&quot; height=&quot;631&quot; data-origin-width=&quot;1405&quot; data-origin-height=&quot;631&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;</description>
      <category>book_summary</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/152</guid>
      <comments>https://kshind.tistory.com/152#entry152comment</comments>
      <pubDate>Mon, 22 Jul 2024 18:32:06 +0900</pubDate>
    </item>
    <item>
      <title>Bugbounty Boot Camp Chap.3 HOW THE INTERNET WORK</title>
      <link>https://kshind.tistory.com/151</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; The Client-Server Model &lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷은 클라이언트와 서버라는 두 종류의 디바이스로 이루어져 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹페이지는 단순한 리소스들, 파일들의 집합일 뿐이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 예를 들어 간단한 텍스트 파일을 업로드한다면, 이 텍스트 파일은 HTML로 작성되어 있을 것이고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 이를 보기 좋게 만들기 위해 CSS가 포함됐을 것이고 이들이 동작하기 위해 JS가 포함되어 있을 것이다.&lt;/p&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; 만약 API를 사용한다면 다른 시스템의 데이터들을 요청할 수 있다. 이는 통제된 상황 속 다른 시스템 간 상호작용을&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 할 수 있게 하는 것을 의미함&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; The Domain Name System &lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;브라우저들과 웹 클라이언트들은 어디에 리소스들이 있는지 찾을 수 있을까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 장치마다 인터넷 프로토콜이라는 IP가 있는데 이는 서로의 위치를 알 수 있도록 도움을 줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DNS란, Domain Name System으로 www.naver.com과 같은 도메인을 장치가 이해할 수 있는 IP로 변환하는 것이며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DNS 서버는 전화번호부와 같은 역할을 함&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1030&quot; data-origin-height=&quot;553&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qw4iZ/btsIH2fWqq7/EB7yOLjNm5UNozIsgtx6Lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qw4iZ/btsIH2fWqq7/EB7yOLjNm5UNozIsgtx6Lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qw4iZ/btsIH2fWqq7/EB7yOLjNm5UNozIsgtx6Lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQw4iZ%2FbtsIH2fWqq7%2FEB7yOLjNm5UNozIsgtx6Lk%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;1030&quot; height=&quot;553&quot; data-origin-width=&quot;1030&quot; data-origin-height=&quot;553&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Internet Ports&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서비스를 이용하기 위해서 IP에 연결하여 사용할 수 있다고 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 한 장치에서 여러 개의 서비스를 제공하고 싶다면 어떻게 해야 할까? =&amp;gt; port&lt;/p&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;ex) 21번 port는 FTP, 25번 포트는 email service... etc&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; HTTP Requests and Responses&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연결이 수립되면 브라우저와 서버는 HTTP로 통신을 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP는 인터넷 메시지를 구성하고 하고 해석하는 방법, 그리고 어떻게 둘이 정보를 교환할지에 대한 것을 정의한&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; Internet Security Controls &lt;/b&gt;&lt;/h4&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;Base64는 데이터를 인코딩에 흔한 방법 중 하나이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A~Z, a~z, 0~9의 형태를 갖추고 있으며 끝에선 패딩을 위해 ==이 포함되어 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock widthContent&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTJCeQ/btsIIyetbCj/FMd5SLyOGuKTRszSJYVLJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTJCeQ/btsIIyetbCj/FMd5SLyOGuKTRszSJYVLJ0/img.png&quot; data-alt=&quot;bas64 인코딩 예시&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTJCeQ/btsIIyetbCj/FMd5SLyOGuKTRszSJYVLJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTJCeQ%2FbtsIIyetbCj%2FFMd5SLyOGuKTRszSJYVLJ0%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;592&quot; height=&quot;336&quot; data-origin-width=&quot;592&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;bas64 인코딩 예시&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;또 다른 방법은 16진수 인코딩이다. 0~F까지의 문자를 사용해서 문자열을 인코딩하는방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;URL encoding&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #4d5156; text-align: left;&quot;&gt;문자나 특수문자를 웹 서버와 브라우저에서 보편적으로 허용되는 형식으로 바꾸는 방식&lt;/span&gt;&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;&lt;span style=&quot;color: #4d5156;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;Session Management and HTTP Cookies &lt;/span&gt;&lt;/span&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;이때 서버가 사용자를 식별하기 위해 길고 예측할 수 없을 만한 세션 아이디 생성하고 이는 로그아웃 할 때 사라진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 세션ID를 쿠키라 함&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;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt; JSON Web Tokens &lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JWT는 가장 흔히 사용되는 인증 토근 방식 중 하나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JWT의 구성&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;header
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;서명을 생성하는 데 사용된 알고리즘이 정의되어 있는 영역&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;payload
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;사용자 신원에 대한 정보가 포함된 영역&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li&gt;signature
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;해당 내용이 변조되어 있는지에 대한 검증을 위한 영역&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 JWT를 크랙하는 방법이 있음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 중 하나는 헤더에서 인코딩하는 데 사용할 알고리즘을 정의하는 alg필드를 변조하는 방법&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;alg에 들어갈 수 있는 알고리즘을 제한하지 않으면 alg를 NONE으로 정의할시 시그니처를 비워놓아도 토큰을 임의로 수정하여 공격자가 임의로 내용을 수정할 수 있음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1675&quot; data-origin-height=&quot;943&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PZflX/btsIH0CtaSr/soDsPgxkukIcMM3n5fe6O1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PZflX/btsIH0CtaSr/soDsPgxkukIcMM3n5fe6O1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PZflX/btsIH0CtaSr/soDsPgxkukIcMM3n5fe6O1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPZflX%2FbtsIH0CtaSr%2FsoDsPgxkukIcMM3n5fe6O1%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;1675&quot; height=&quot;943&quot; data-origin-width=&quot;1675&quot; data-origin-height=&quot;943&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;</description>
      <category>book_summary</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/151</guid>
      <comments>https://kshind.tistory.com/151#entry151comment</comments>
      <pubDate>Sun, 21 Jul 2024 18:13:41 +0900</pubDate>
    </item>
    <item>
      <title>KISA Academy - 리버스 코드 엔지니어링 중급 (24~26강)</title>
      <link>https://kshind.tistory.com/149</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #fafafa; color: #000000; text-align: start;&quot;&gt;24강 [이론] 컴파일된 코드의 패턴 식별 - 순환문 패턴 식별 (For, While)&lt;/span&gt; &lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴파일된 순환문은 일반적으로 세 개의 영역으로 나눌 수 있음&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;순환문 탈출조건 점검 영역&lt;/li&gt;
&lt;li&gt;순환코드 바디 영역&lt;/li&gt;
&lt;li&gt;조건 값 변화 영역&lt;/li&gt;
&lt;/ol&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;예제 코드 - while&lt;/p&gt;
&lt;pre id=&quot;code_1720848492344&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = result = 0;

while(a&amp;lt;10) {  // 순환문 탈출조건 점검
	result += a;  //순환코드 바디 영역
    printf(&quot;result = %d\n&quot;, while loof result);  // 순환코드 바디 영역
    ++a;  //조건 값 변화
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;예제코드 - for&lt;/p&gt;
&lt;pre id=&quot;code_1720849445437&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int a = result = 0;

for(; a &amp;lt; 10; a++) {  // 순환조건 탈출 영역 + 순환 조건 변화
	result += a;  // 순환구문 바디 영역
    printf(&quot;result = %d\n&quot;, for loop result);  // 순환구문 바디 영역
}&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;gcc의 경우 어셈블리어로 했을 때 for문과 while문의 차이가 나타나지 않음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;visual studio의 경우 while일 때 조건 값 변화가 젤 아래에 있지만 for일 때는 조건값이 젤 위로 올라옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;visual studio 컴파일의 경우 gcc의 형태와 비슷한 형태로 컴파일 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 코드들을 Ghidra같은 디컴파일러 같은 도구를 쓰면 for.c while.c를 컴파일을 각각 해서 Ghidra를 사용해서 디컴파일 해보면 동일한 코드로 보여줌 -&amp;gt; for인지 while인지 중요하지 않기 때문&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;gcc의 경우
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;순환코드 바디 -&amp;gt; 조건 값 변화 -&amp;gt; 순환문 탈출 조건 점검&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;visual studio의 경우
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;while문
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;순환문 탈출 조건 점검 -&amp;gt; 순환코드 바디 -&amp;gt; 조건 값 변화&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;for문
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;조건 값 변화 -&amp;gt; 순환문 탈출 조건 점검 -&amp;gt; 순환코드 바디&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&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;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot;&gt;25강 [실습] 컴파일된 코드의 패턴 식별 - 순환문 패턴 식별 실습 (For, While)&lt;/span&gt; &lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용 툴&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IDA&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;Ghidra - 디컴파일러&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;1132&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k1UKk/btsIzTJH3sQ/pEMbsTIkzHep0lHPYHexG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k1UKk/btsIzTJH3sQ/pEMbsTIkzHep0lHPYHexG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k1UKk/btsIzTJH3sQ/pEMbsTIkzHep0lHPYHexG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk1UKk%2FbtsIzTJH3sQ%2FpEMbsTIkzHep0lHPYHexG0%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;1132&quot; height=&quot;412&quot; data-origin-width=&quot;1132&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;for.c while.c 모두 순환문을 어떤 걸 썼냐만 다르지 내용은 완벽히 동일함&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;1252&quot; data-origin-height=&quot;490&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HJmoh/btsIyAj4Foh/ErFfXzg15WL9nbMnPaNZH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HJmoh/btsIyAj4Foh/ErFfXzg15WL9nbMnPaNZH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HJmoh/btsIyAj4Foh/ErFfXzg15WL9nbMnPaNZH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHJmoh%2FbtsIyAj4Foh%2FErFfXzg15WL9nbMnPaNZH0%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;1252&quot; height=&quot;490&quot; data-origin-width=&quot;1252&quot; data-origin-height=&quot;490&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IDA를 통해 확인을 해봐도 for문과 while문 컴파일 결과의 차이가 그렇게 크지 않은 것을 알 수 있음&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;1021&quot; data-origin-height=&quot;703&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buCks0/btsIxdck6ZC/PobsIAqhCuqU8wgPKII2Jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buCks0/btsIxdck6ZC/PobsIAqhCuqU8wgPKII2Jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buCks0/btsIxdck6ZC/PobsIAqhCuqU8wgPKII2Jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuCks0%2FbtsIxdck6ZC%2FPobsIAqhCuqU8wgPKII2Jk%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;1021&quot; height=&quot;703&quot; data-origin-width=&quot;1021&quot; data-origin-height=&quot;703&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ghidra의 경우 MZ가 나타나는 헤더부분들도 보여줌&lt;/p&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt; &lt;span style=&quot;background-color: #ffffff; color: #111111; text-align: left;&quot;&gt;26강 [실습] 컴파일된 코드의 패턴 식별 -악성코드의 순환문 사용 예제 분석 실습&lt;/span&gt; &lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IDA 사용&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;1135&quot; data-origin-height=&quot;265&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dybjoj/btsIzAcymWD/OwxWbWypgeO1Rjmwr9VqM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dybjoj/btsIzAcymWD/OwxWbWypgeO1Rjmwr9VqM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dybjoj/btsIzAcymWD/OwxWbWypgeO1Rjmwr9VqM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdybjoj%2FbtsIzAcymWD%2FOwxWbWypgeO1Rjmwr9VqM1%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;1135&quot; height=&quot;265&quot; data-origin-width=&quot;1135&quot; data-origin-height=&quot;265&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;heap 영역을 할당함 - 무작위로 생성할 파일을 저장할 영역 할당 - eax에 할당한 영역의 포인터를 저장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 아래에 ebp+Destination을 통해 지역변수 공간에 저장함&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;958&quot; data-origin-height=&quot;274&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYMucG/btsIyge45nZ/cSEQm6rHLhDXiiL6mziii0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYMucG/btsIyge45nZ/cSEQm6rHLhDXiiL6mziii0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYMucG/btsIyge45nZ/cSEQm6rHLhDXiiL6mziii0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYMucG%2FbtsIyge45nZ%2FcSEQm6rHLhDXiiL6mziii0%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;958&quot; height=&quot;274&quot; data-origin-width=&quot;958&quot; data-origin-height=&quot;274&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;memset은 메모리를 세팅하는 것인데 push 0을 통해 0으로 초기화함을 알 수 있음&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;그 아래 time, srand가 있는데 이는 무작위를 가져오기 위해 실행시마다 다른 시드값을 갖기 위한 코드들임&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;529&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NW26r/btsIyAxCyjf/3kjTkqbvuxb6Kw1KMMuFl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NW26r/btsIyAxCyjf/3kjTkqbvuxb6Kw1KMMuFl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NW26r/btsIyAxCyjf/3kjTkqbvuxb6Kw1KMMuFl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNW26r%2FbtsIyAxCyjf%2F3kjTkqbvuxb6Kw1KMMuFl0%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;843&quot; height=&quot;529&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;529&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;분기한 후 바로 탈출 조건을 점검함 arg_0은 파라미터 값을 의미&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;601&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBarx0/btsIyvXCJ32/WzQGWzFkTf9KVHzAxb30g0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBarx0/btsIyvXCJ32/WzQGWzFkTf9KVHzAxb30g0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBarx0/btsIyvXCJ32/WzQGWzFkTf9KVHzAxb30g0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBarx0%2FbtsIyvXCJ32%2FWzQGWzFkTf9KVHzAxb30g0%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;1192&quot; height=&quot;601&quot; data-origin-width=&quot;1192&quot; data-origin-height=&quot;601&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 부분 더블클릭시 해당 함수를 호출한 caller함수 접근 가능&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1015&quot; data-origin-height=&quot;190&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tbu65/btsIzx1chwb/CsG9cJOoIKZQ34lJLXuKD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tbu65/btsIzx1chwb/CsG9cJOoIKZQ34lJLXuKD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tbu65/btsIzx1chwb/CsG9cJOoIKZQ34lJLXuKD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftbu65%2FbtsIzx1chwb%2FCsG9cJOoIKZQ34lJLXuKD0%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;1015&quot; height=&quot;190&quot; data-origin-width=&quot;1015&quot; data-origin-height=&quot;190&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;함수 호출 전 8을 push하는 것을 보아 8로 생각할 수 있는데 callee에서 eax에 1을 add하는 연산이 있었으니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9만큼 malloc을 통해 영역을 할당함 결국 9만큼 반복하는 걸 알 수 있음&lt;/p&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;malloc을 통해 heap 영역 할당함 일단&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;490&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqh3uu/btsIytZKCBs/UcqiLVpK9ENK26edaoCmnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqh3uu/btsIytZKCBs/UcqiLVpK9ENK26edaoCmnK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqh3uu/btsIytZKCBs/UcqiLVpK9ENK26edaoCmnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbqh3uu%2FbtsIytZKCBs%2FUcqiLVpK9ENK26edaoCmnK%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;1042&quot; height=&quot;490&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;490&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;16+10= 26인데 이건 알파벳 개수고 이걸 ecx 레지스터에 넣음. 이후 edx엔 61h를 넣는데 이건 a(0x61)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;call했던 rand함수의 값은 eax에 보관 (랜덤한 값 120246123처럼 엄청 큰 값일 수도 있는 랜덤 값)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 이 값을 idiv ecx를 통해 모듈러 연산 (%) 를 시킴 eax % 26 = 0~25 값이 나옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 연산 값을 EDX에 저장하는데 여기에 + 061을 더함 =&amp;gt; 61값은 base값이고 기존 값은 offset (a ~ z)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 연산한 값을 strcat을 통해 이어붙임&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;1155&quot; data-origin-height=&quot;679&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxn5Nc/btsIzpPGUvu/aq1KAzhCbMWjyW0mkVaGV0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxn5Nc/btsIzpPGUvu/aq1KAzhCbMWjyW0mkVaGV0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxn5Nc/btsIzpPGUvu/aq1KAzhCbMWjyW0mkVaGV0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcxn5Nc%2FbtsIzpPGUvu%2Faq1KAzhCbMWjyW0mkVaGV0%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;1155&quot; height=&quot;679&quot; data-origin-width=&quot;1155&quot; data-origin-height=&quot;679&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Ghidra에선 오른쪽에 가상으로 코드를 짜서 보여줌&lt;/p&gt;</description>
      <category>교육/KisaGym</category>
      <author>kshind</author>
      <guid isPermaLink="true">https://kshind.tistory.com/149</guid>
      <comments>https://kshind.tistory.com/149#entry149comment</comments>
      <pubDate>Sat, 13 Jul 2024 17:27:50 +0900</pubDate>
    </item>
  </channel>
</rss>