<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>GRINI</title>
    <link>https://grini25.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Fri, 31 Jul 2026 06:34:27 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Grini</managingEditor>
    <image>
      <title>GRINI</title>
      <url>https://tistory1.daumcdn.net/tistory/3033027/attach/efdccacf4a7b42fd93fa85bf24ef1eb1</url>
      <link>https://grini25.tistory.com</link>
    </image>
    <item>
      <title>[MongoDB] ObjectId 란?</title>
      <link>https://grini25.tistory.com/217</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;ObjectId 란?&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;MongoDB는 Document 기반 데이터베이스인데,&lt;br /&gt;ObjectId는 해당 Document 내에서 &lt;u&gt;유일함을 보장하는 12byte 값&lt;/u&gt;으로, RDBMS의 Primary key와 같다.&lt;br /&gt;Primary key는 DBMS가 부여하지만, ObjectId는 클라이언트에서 생성한다는 점이 차이가 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;ObjectId 구조&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;1384&quot; data-origin-height=&quot;310&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NX3W9/btq8dRoKNdC/UL4zPY5n1J8jVXv47yVDzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NX3W9/btq8dRoKNdC/UL4zPY5n1J8jVXv47yVDzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NX3W9/btq8dRoKNdC/UL4zPY5n1J8jVXv47yVDzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNX3W9%2Fbtq8dRoKNdC%2FUL4zPY5n1J8jVXv47yVDzK%2Fimg.png&quot; data-origin-width=&quot;1384&quot; data-origin-height=&quot;310&quot; data-ke-mobilestyle=&quot;widthOrigin&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Inc Counter은 처음 랜덤한 값에서 자동으로 Increment 되는 값이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;Reference&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/method/ObjectId/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://docs.mongodb.com/manual/reference/method/ObjectId/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1624780060187&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;ObjectId &amp;mdash; MongoDB Manual&quot; data-og-description=&quot;Reference &amp;gt; mongo Shell Methods &amp;gt; Object Constructors and Methods ObjectId( )Returns a new ObjectId value. The 12-byte ObjectId value consists of:a 4-byte timestamp value, representing the ObjectId's creation, measured in seconds since the Unix epocha 5-by&quot; data-og-host=&quot;docs.mongodb.com&quot; data-og-source-url=&quot;https://docs.mongodb.com/manual/reference/method/ObjectId/&quot; data-og-url=&quot;https://docs.mongodb.com/manual/reference/method/ObjectId/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/MHfp6/hyKHF3FsiW/sNRYHEyc882AreDkxp5pq1/img.png?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512,https://scrap.kakaocdn.net/dn/dgZtGh/hyKHLQkpBv/wk0yJKwImgPBeblS5v7MdK/img.png?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512&quot;&gt;&lt;a href=&quot;https://docs.mongodb.com/manual/reference/method/ObjectId/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.mongodb.com/manual/reference/method/ObjectId/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/MHfp6/hyKHF3FsiW/sNRYHEyc882AreDkxp5pq1/img.png?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512,https://scrap.kakaocdn.net/dn/dgZtGh/hyKHLQkpBv/wk0yJKwImgPBeblS5v7MdK/img.png?width=1024&amp;amp;height=512&amp;amp;face=0_0_1024_512');&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;ObjectId &amp;mdash; MongoDB Manual&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Reference &amp;gt; mongo Shell Methods &amp;gt; Object Constructors and Methods ObjectId( )Returns a new ObjectId value. The 12-byte ObjectId value consists of:a 4-byte timestamp value, representing the ObjectId's creation, measured in seconds since the Unix epocha 5-by&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.mongodb.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://developer.mongodb.com/quickstart/bson-data-types-objectid/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mongodb.com/quickstart/bson-data-types-objectid/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1624780188155&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;Quick Start: BSON Data Types - ObjectId&quot; data-og-description=&quot;MongoDB provides an automatic unique identifier for the _id field in the form of an ObjectId data type.&quot; data-og-host=&quot;developer.mongodb.com&quot; data-og-source-url=&quot;https://developer.mongodb.com/quickstart/bson-data-types-objectid/&quot; data-og-url=&quot;https://developer.mongodb.com/quickstart/bson-data-types-objectid/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b16eAn/hyKHPrGnEm/Tf9VKkHSvaphURYjdRtME0/img.png?width=1201&amp;amp;height=631&amp;amp;face=0_0_1201_631,https://scrap.kakaocdn.net/dn/bgapQa/hyKHQjOn4w/CBfGRSgZkpk3ZmGzsWMR7K/img.png?width=1025&amp;amp;height=513&amp;amp;face=0_0_1025_513,https://scrap.kakaocdn.net/dn/bER1Vr/hyKHPyqSkB/KIMcIjt4ZyKCW6itMnjW7K/img.png?width=548&amp;amp;height=549&amp;amp;face=0_0_548_549&quot;&gt;&lt;a href=&quot;https://developer.mongodb.com/quickstart/bson-data-types-objectid/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mongodb.com/quickstart/bson-data-types-objectid/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b16eAn/hyKHPrGnEm/Tf9VKkHSvaphURYjdRtME0/img.png?width=1201&amp;amp;height=631&amp;amp;face=0_0_1201_631,https://scrap.kakaocdn.net/dn/bgapQa/hyKHQjOn4w/CBfGRSgZkpk3ZmGzsWMR7K/img.png?width=1025&amp;amp;height=513&amp;amp;face=0_0_1025_513,https://scrap.kakaocdn.net/dn/bER1Vr/hyKHPyqSkB/KIMcIjt4ZyKCW6itMnjW7K/img.png?width=548&amp;amp;height=549&amp;amp;face=0_0_548_549');&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;Quick Start: BSON Data Types - ObjectId&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;MongoDB provides an automatic unique identifier for the _id field in the form of an ObjectId data type.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mongodb.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://kciter.so/posts/about-mongodb&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://kciter.so/posts/about-mongodb&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1624781036405&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;MongoDB 이해하기&quot; data-og-description=&quot;사내에서 MongoDB를 잘 쓰기위한 스터디를 하게되어 이번 기회에 관련 자료를 정리하기로 했다. MongoDB가 왜 필요한지, 더 잘사용하기 위해서 무엇이 필요한지를 중심으로 처음 MongoDB를 사용할 때 &quot; data-og-host=&quot;kciter.so&quot; data-og-source-url=&quot;https://kciter.so/posts/about-mongodb&quot; data-og-url=&quot;https://kciter.so/posts/about-mongodb/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/jwSFM/hyKHQD9dT0/uCvakhkXqNhaCCbCpUJ4kK/img.png?width=800&amp;amp;height=367&amp;amp;face=0_0_800_367,https://scrap.kakaocdn.net/dn/iEKGt/hyKHIzkSxm/VDqeJxoazwWevni6Ixtz70/img.png?width=800&amp;amp;height=367&amp;amp;face=0_0_800_367,https://scrap.kakaocdn.net/dn/eTGE7/hyKHSBXCzF/NEthnSRyGTTZ3kzFEW7as1/img.png?width=800&amp;amp;height=408&amp;amp;face=0_0_800_408&quot;&gt;&lt;a href=&quot;https://kciter.so/posts/about-mongodb&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kciter.so/posts/about-mongodb&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/jwSFM/hyKHQD9dT0/uCvakhkXqNhaCCbCpUJ4kK/img.png?width=800&amp;amp;height=367&amp;amp;face=0_0_800_367,https://scrap.kakaocdn.net/dn/iEKGt/hyKHIzkSxm/VDqeJxoazwWevni6Ixtz70/img.png?width=800&amp;amp;height=367&amp;amp;face=0_0_800_367,https://scrap.kakaocdn.net/dn/eTGE7/hyKHSBXCzF/NEthnSRyGTTZ3kzFEW7as1/img.png?width=800&amp;amp;height=408&amp;amp;face=0_0_800_408');&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;MongoDB 이해하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;사내에서 MongoDB를 잘 쓰기위한 스터디를 하게되어 이번 기회에 관련 자료를 정리하기로 했다. MongoDB가 왜 필요한지, 더 잘사용하기 위해서 무엇이 필요한지를 중심으로 처음 MongoDB를 사용할 때&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kciter.so&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;</description>
      <category>Study/Web</category>
      <category>MongoDB</category>
      <category>ObjectId</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/217</guid>
      <comments>https://grini25.tistory.com/217#entry217comment</comments>
      <pubDate>Sun, 27 Jun 2021 16:51:34 +0900</pubDate>
    </item>
    <item>
      <title>[HTTP] Basic Authentication _ .htpasswd</title>
      <link>https://grini25.tistory.com/215</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;.htpasswd 파일 이란?&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;서버의 특정 디렉토리에 HTTP Basic Authentication을 설정하여 접근 제한할 때 필요한 파일로 사용자명과 패스워드에 대한 정보를 저장하고 있는 파일이다.&lt;br /&gt;&lt;br /&gt;[참고] &lt;a href=&quot;https://en.wikipedia.org/wiki/.htpasswd&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://en.wikipedia.org/wiki/.htpasswd&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;.htpasswd 형식&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;
&lt;p&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;grini&lt;/span&gt;:$&lt;span style=&quot;color: #f3c000;&quot;&gt;1&lt;/span&gt;$&lt;span style=&quot;color: #409d00;&quot;&gt;0FP4wdQ8&lt;/span&gt;$&lt;span style=&quot;color: #006dd7;&quot;&gt;nC4xODrh4cGLHQ8Vkmpzk1&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;계정ID&lt;/span&gt;:$&lt;span style=&quot;color: #f3c000;&quot;&gt;해시 알고리즘&amp;nbsp;종류&lt;/span&gt;$&lt;span style=&quot;color: #409d00;&quot;&gt;솔트&amp;nbsp;값&lt;/span&gt;$&lt;span style=&quot;color: #006dd7;&quot;&gt;해시된&amp;nbsp;패스워드&amp;nbsp;값&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDcZCR/btqZpgkn5vA/8BPlG72gkrk5lT9tQl1GFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDcZCR/btqZpgkn5vA/8BPlG72gkrk5lT9tQl1GFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDcZCR/btqZpgkn5vA/8BPlG72gkrk5lT9tQl1GFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDcZCR%2FbtqZpgkn5vA%2F8BPlG72gkrk5lT9tQl1GFk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p&gt;&lt;br /&gt;[참고]&lt;br /&gt;- &lt;a href=&quot;https://foswiki.org/Development/ImproveHtPaswdUserFlexibility&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;foswiki.org/Development/ImproveHtPaswdUserFlexibility&lt;/a&gt;&lt;br /&gt;- &lt;a href=&quot;https://httpd.apache.org/docs/current/misc/password_encryptions.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;httpd.apache.org/docs/current/misc/password_encryptions.html&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;.htpasswd 생성 방법&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;1. apache2-utils의 &lt;a href=&quot;https://httpd.apache.org/docs/current/programs/htpasswd.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;htpasswd 기능&lt;/a&gt; 이용&lt;/b&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4RD9y/btqZvNurz0S/DdMXu9t9C05pTR16pl9sEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4RD9y/btqZvNurz0S/DdMXu9t9C05pTR16pl9sEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4RD9y/btqZvNurz0S/DdMXu9t9C05pTR16pl9sEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4RD9y%2FbtqZvNurz0S%2FDdMXu9t9C05pTR16pl9sEk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;-c 옵션 : 새로운 파일을 생성하는 옵션&lt;br /&gt;(파일에 데이터를 추가하기 위해서는 -c 옵션을 빼고 사용해야 한다.)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. openSSL 이용&lt;/b&gt;&lt;br /&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vYzgM/btqZpeNCktZ/6CANLDB9tVx9thdkK6NP80/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vYzgM/btqZpeNCktZ/6CANLDB9tVx9thdkK6NP80/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vYzgM/btqZpeNCktZ/6CANLDB9tVx9thdkK6NP80/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvYzgM%2FbtqZpeNCktZ%2F6CANLDB9tVx9thdkK6NP80%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;수동으로 .htpasswd 파일을 생성하여 출력된 값을 형식에 맞게 삽입해준다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. 온라인 도구 이용&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;https://8gwifi.org/htpasswd.jsp&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://8gwifi.org/htpasswd.jsp&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Study/Web</category>
      <category>.htpasswd</category>
      <category>apache</category>
      <category>basic auth</category>
      <category>Basic Authentication</category>
      <category>htpasswd</category>
      <category>http basic authentication</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/215</guid>
      <comments>https://grini25.tistory.com/215#entry215comment</comments>
      <pubDate>Mon, 8 Mar 2021 15:07:55 +0900</pubDate>
    </item>
    <item>
      <title>[Bugbounty Study] #Account Takeover</title>
      <link>https://grini25.tistory.com/214</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;# Account Takeover Due to Response Manipulation _ \$4100&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://avanishpathak46.medium.com/an-account-takeover-vulnerability-due-to-response-manipulation-e23fe629bd1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;avanishpathak46.medium.com/an-account-takeover-vulnerability-due-to-response-manipulation-e23fe629bd1&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1614935772039&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;An Account Takeover Vulnerability Due to Response Manipulation.&quot; data-og-description=&quot;- No doesn&amp;rsquo;t necessarily mean no.! Responses can always be manipulated&quot; data-og-host=&quot;avanishpathak46.medium.com&quot; data-og-source-url=&quot;https://avanishpathak46.medium.com/an-account-takeover-vulnerability-due-to-response-manipulation-e23fe629bd1&quot; data-og-url=&quot;https://avanishpathak46.medium.com/an-account-takeover-vulnerability-due-to-response-manipulation-e23fe629bd1&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/8pa47/hyJtyc7ZZn/yf2EXt5uJsCx6sYqnm2aC0/img.png?width=627&amp;amp;height=959&amp;amp;face=0_0_627_959,https://scrap.kakaocdn.net/dn/cEozyp/hyJsbDQfHv/hlMh6KhMetI7mbsVaC9tH0/img.png?width=60&amp;amp;height=38&amp;amp;face=0_0_60_38,https://scrap.kakaocdn.net/dn/dUMXKF/hyJtJTfsHw/XFKvWP8svlH5Eu8Xb0JIt1/img.png?width=60&amp;amp;height=36&amp;amp;face=0_0_60_36&quot;&gt;&lt;a href=&quot;https://avanishpathak46.medium.com/an-account-takeover-vulnerability-due-to-response-manipulation-e23fe629bd1&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://avanishpathak46.medium.com/an-account-takeover-vulnerability-due-to-response-manipulation-e23fe629bd1&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/8pa47/hyJtyc7ZZn/yf2EXt5uJsCx6sYqnm2aC0/img.png?width=627&amp;amp;height=959&amp;amp;face=0_0_627_959,https://scrap.kakaocdn.net/dn/cEozyp/hyJsbDQfHv/hlMh6KhMetI7mbsVaC9tH0/img.png?width=60&amp;amp;height=38&amp;amp;face=0_0_60_38,https://scrap.kakaocdn.net/dn/dUMXKF/hyJtJTfsHw/XFKvWP8svlH5Eu8Xb0JIt1/img.png?width=60&amp;amp;height=36&amp;amp;face=0_0_60_36');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;An Account Takeover Vulnerability Due to Response Manipulation.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;- No doesn&amp;rsquo;t necessarily mean no.! Responses can always be manipulated&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;avanishpathak46.medium.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;원작자는 해당 타겟 사이트에서 이전에도 Account Takeover 취약점을 발견한 이력이 있다.&lt;/p&gt;
&lt;p&gt;우선, 이전 글을 살펴보자.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Account Takeover 취약점이란?&lt;/b&gt;&lt;br /&gt;공격자가 어플리케이션에 존재하는 인증 결함을 이용하여 아무런 자격 증명 없이 피해자의 계정을 무단으로 제어할 수 있는 취약점 중 하나이다.&lt;br /&gt;간단히, &lt;u&gt;계정 탈취&lt;/u&gt;가 가능한 취약점이다.&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #666666;&quot;&gt;타겟 사이트는 사용자가 등록한 이메일로 전송되는 4자리의 OTP코드를 입력하면 로그인하는 기능이 있다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #666666;&quot;&gt;OTP 길이가 짧아 Brute-force를 시도하였으나, &lt;/span&gt;&lt;span style=&quot;color: #666666;&quot;&gt;10번의 잘못된 요청을 보내면 일정 시간동안 요청 가능한 수가 제한되어 있어 &lt;/span&gt;&lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429&quot;&gt;HTTP 429 Too Many Requests&lt;/a&gt;&lt;span style=&quot;color: #666666;&quot;&gt;를 응답하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;또한, 이전의 응답 패킷에 OTP 코드가 노출되어 있는지 확인하였으나 찾을 수 없었다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;올바른 OTP 코드를 입력하였을 때&amp;nbsp;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;&amp;nbsp;/login/signin&lt;/span&gt;에서 발생하는 요청은 아래와 같다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mUDcz/btqZlQyvvrZ/Dw1K0sBX2MawBBfunHbQq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mUDcz/btqZlQyvvrZ/Dw1K0sBX2MawBBfunHbQq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mUDcz/btqZlQyvvrZ/Dw1K0sBX2MawBBfunHbQq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmUDcz%2FbtqZlQyvvrZ%2FDw1K0sBX2MawBBfunHbQq0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;{&quot;email&quot;:&quot;usermail@gmail.com&quot;, &quot;code&quot;:XXXX} CORRECT OTP&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;POST 요청은 &lt;span style=&quot;background-color: #ffffff;&quot;&gt;이메일 주소&lt;/span&gt;와 &lt;span style=&quot;background-color: #ffffff;&quot;&gt;이메일로 전송된 OTP &lt;/span&gt;두 가지 파라미터를 포함한다.&lt;/p&gt;
&lt;p&gt;이때, 해당 파라미터의 이메일 주소를 다른 계정으로 하고, OTP 코드를 공격자의 이메일로 받은 값을 입력해주면 로그인된다. 이는 &lt;u&gt;이메일과 OTP 코드가 느슨하게 연결&lt;/u&gt;되어 있고, &lt;u&gt;OTP 코드가 유효한지만 검사&lt;/u&gt;하였기 때문이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;{&quot;email&quot;:&quot;&lt;b&gt;admin@example.com&lt;/b&gt;&quot;, &quot;code&quot;:XXXX} CORRECT OTP&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;패치:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;타겟 사이트는 /login/singin에서 발생하는 요청에서 email 파라미터를 제거하고, 로그인을 시도하는 사용자에게 전송된 OTP인지 확인하는 작업을 추가하여 패치하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;[참고]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://avanishpathak46.medium.com/an-interesting-account-takeover-vulnerability-a1fbec0e01a&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;avanishpathak46.medium.com/an-interesting-account-takeover-vulnerability-a1fbec0e01a&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1614960768934&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;An Interesting Account Takeover Vulnerability&quot; data-og-description=&quot;- Login feature bypassed which leads to an Interesting Account Takeover&quot; data-og-host=&quot;avanishpathak46.medium.com&quot; data-og-source-url=&quot;https://avanishpathak46.medium.com/an-interesting-account-takeover-vulnerability-a1fbec0e01a&quot; data-og-url=&quot;https://avanishpathak46.medium.com/an-interesting-account-takeover-vulnerability-a1fbec0e01a&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/4imvK/hyJtLKsUwa/AKa5KptslnGV0Pd0SIYMK0/img.png?width=580&amp;amp;height=274&amp;amp;face=0_0_580_274,https://scrap.kakaocdn.net/dn/cdCmgh/hyJsnj7Pgj/T0cqnDwtpD5KeaPrI1QpjK/img.png?width=60&amp;amp;height=28&amp;amp;face=0_0_60_28&quot;&gt;&lt;a href=&quot;https://avanishpathak46.medium.com/an-interesting-account-takeover-vulnerability-a1fbec0e01a&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://avanishpathak46.medium.com/an-interesting-account-takeover-vulnerability-a1fbec0e01a&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/4imvK/hyJtLKsUwa/AKa5KptslnGV0Pd0SIYMK0/img.png?width=580&amp;amp;height=274&amp;amp;face=0_0_580_274,https://scrap.kakaocdn.net/dn/cdCmgh/hyJsnj7Pgj/T0cqnDwtpD5KeaPrI1QpjK/img.png?width=60&amp;amp;height=28&amp;amp;face=0_0_60_28');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;An Interesting Account Takeover Vulnerability&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;- Login feature bypassed which leads to an Interesting Account Takeover&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;avanishpathak46.medium.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p&gt;본문으로 돌아와서 타겟 사이트의 로그인 흐름을 간단히 설명하면 아래와 같다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;1. 타겟 서버가 4자리의 OTP 코드 이메일로 전송&lt;br /&gt;2. 받은 OTP 코드를 타겟 서버에 입력할 때만 사용자의 유효성 확인&lt;br /&gt;3. 유효한 코드를 가진 인증된 사용자만 사용자 계정 접근 허용&amp;nbsp;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGdKqi/btqZpeFpCqx/vDf2iTweGKslbyD52N2H4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGdKqi/btqZpeFpCqx/vDf2iTweGKslbyD52N2H4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGdKqi/btqZpeFpCqx/vDf2iTweGKslbyD52N2H4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGdKqi%2FbtqZpeFpCqx%2FvDf2iTweGKslbyD52N2H4K%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;이전의 제보처럼 OTP의 길이가 짧아 Brute-force 공격이 가장 먼저 떠올랐으나, 타겟 사이트는 엄격한 속도 제한이 설정되어 있어 10번의 잘못된 시도를 할 경우, 마찬가지로 HTTP 429 Too Many Requests을 응답하였다.&lt;/p&gt;
&lt;p&gt;심지어 시간 지연 등 다양한 방법으로 Brute-force를 시도하였지만 같은 응답을 받았고, 응답에서 인증 코드 또한 노출되지 않아 어떤 것도 얻지 못하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;정상적인 로그인 흐름을 살펴보기 위해 테스트 계정인 이메일로 로그인 요청 후 &lt;span style=&quot;color: #333333;&quot;&gt;Burpsuite를 이용하여 요청 패킷을 잡아&amp;nbsp;&lt;/span&gt;살펴보고 저장한 다음 요청을 삭제하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;잘못된 인증 코드를 입력하였을 경우를 살펴보니 401 Unauthorized error code를 응답받았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9OyJp/btqZpeSWW3p/2wjJmiotqd4rSnR7lVL3N0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9OyJp/btqZpeSWW3p/2wjJmiotqd4rSnR7lVL3N0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9OyJp/btqZpeSWW3p/2wjJmiotqd4rSnR7lVL3N0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9OyJp%2FbtqZpeSWW3p%2F2wjJmiotqd4rSnR7lVL3N0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;다양한 시도 끝에 응답 body에 포함된 에러 응답인 {&quot;code&quot;:&quot;invalid_credentials&quot;}에 주목하였고,&lt;/p&gt;
&lt;p&gt;해당 값을 이전에 저장해 둔 올바른 인증 코드의 응답 값으로 변경해보았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bB5FWZ/btqZpeMarOd/HEYZdOfnEGaMoJUilm5NV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bB5FWZ/btqZpeMarOd/HEYZdOfnEGaMoJUilm5NV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bB5FWZ/btqZpeMarOd/HEYZdOfnEGaMoJUilm5NV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbB5FWZ%2FbtqZpeMarOd%2FHEYZdOfnEGaMoJUilm5NV1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;HTTP/1.1 401 Unauthorized -----&amp;gt; HTTP/1.1 200 OK&lt;/b&gt;&lt;br /&gt;&lt;b&gt;{&quot;code&quot;:&quot;invalid_credentials&quot;} -----&amp;gt; {&quot;verify&quot;:&quot;true&quot;}&lt;/b&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7CcRO/btqZlPM60gs/sgLHdghTqGcJqIZM8vpykk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7CcRO/btqZlPM60gs/sgLHdghTqGcJqIZM8vpykk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7CcRO/btqZlPM60gs/sgLHdghTqGcJqIZM8vpykk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7CcRO%2FbtqZlPM60gs%2FsgLHdghTqGcJqIZM8vpykk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;그 결과, Account Takeover이 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이는 클라이언트 측 JavaScript가 수신한 응답을 기반으로 후속 요청을 발생시켜 새로운 세션 쿠키를 인증된 사용자로 설정하기 때문이다. (인증 검증은 서버 측에서 하는 것이 안전하다.)&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cg7BbP/btqZpVMmtwt/kHZVrwozkcKHommjyQYajk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cg7BbP/btqZpVMmtwt/kHZVrwozkcKHommjyQYajk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cg7BbP/btqZpVMmtwt/kHZVrwozkcKHommjyQYajk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcg7BbP%2FbtqZpVMmtwt%2FkHZVrwozkcKHommjyQYajk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;패치:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;로그인의 전체 흐름을 수정하였고, &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;클라이언트 측 JavaScript를 이용한 유효성 검사를 제거하였으며,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;응답에 대한 사용자 입력 값을 허용하지 않아 응답이 조작되었을 경우에는 오류 메시지를 표시하도록 패치하였다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Study/Bugbounty Study</category>
      <category>Account Takeover</category>
      <category>bugbounty</category>
      <category>OTP Login Bypass</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/214</guid>
      <comments>https://grini25.tistory.com/214#entry214comment</comments>
      <pubDate>Sat, 6 Mar 2021 02:12:34 +0900</pubDate>
    </item>
    <item>
      <title>[Bugbounty Study] #iCloud _ Stored XSS</title>
      <link>https://grini25.tistory.com/213</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;# icloud.com Stored XSS _ \$5000&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://vbharad.medium.com/stored-xss-in-icloud-com-5000-998b8c4b2075&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;vbharad.medium.com/stored-xss-in-icloud-com-5000-998b8c4b2075&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1614007621520&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Stored XSS in icloud.com &amp;mdash; $5000&quot; data-og-description=&quot;Hello Guys hope you all are doing well, fine and healthy during this hard time.&quot; data-og-host=&quot;vbharad.medium.com&quot; data-og-source-url=&quot;https://vbharad.medium.com/stored-xss-in-icloud-com-5000-998b8c4b2075&quot; data-og-url=&quot;https://vbharad.medium.com/stored-xss-in-icloud-com-5000-998b8c4b2075&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/IySAO/hyJmncfmSt/hPkUaFYdxNutNgG6OJRxe0/img.png?width=1200&amp;amp;height=618&amp;amp;face=0_0_1200_618,https://scrap.kakaocdn.net/dn/z7h1t/hyJmovsFEN/9fWekMrYzqjTGrGd5HGmlK/img.png?width=60&amp;amp;height=30&amp;amp;face=0_0_60_30,https://scrap.kakaocdn.net/dn/ML8Gi/hyJmrlrc8k/7hMnqmNklth7opBquobEc1/img.png?width=60&amp;amp;height=11&amp;amp;face=0_0_60_11&quot;&gt;&lt;a href=&quot;https://vbharad.medium.com/stored-xss-in-icloud-com-5000-998b8c4b2075&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://vbharad.medium.com/stored-xss-in-icloud-com-5000-998b8c4b2075&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/IySAO/hyJmncfmSt/hPkUaFYdxNutNgG6OJRxe0/img.png?width=1200&amp;amp;height=618&amp;amp;face=0_0_1200_618,https://scrap.kakaocdn.net/dn/z7h1t/hyJmovsFEN/9fWekMrYzqjTGrGd5HGmlK/img.png?width=60&amp;amp;height=30&amp;amp;face=0_0_60_30,https://scrap.kakaocdn.net/dn/ML8Gi/hyJmrlrc8k/7hMnqmNklth7opBquobEc1/img.png?width=60&amp;amp;height=11&amp;amp;face=0_0_60_11');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Stored XSS in icloud.com &amp;mdash; $5000&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Hello Guys hope you all are doing well, fine and healthy during this hard time.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;vbharad.medium.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;원작자는 icloud.com을 타겟으로 정한 후,&lt;/p&gt;
&lt;p&gt;CSRF, IDOR, Logic Bugs 등의 취약점을 찾기 위해 노력하다 XSS를 찾기로 결정하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;값을 삽입할 수 있는 다양한 곳에 페이로드를 삽입하면서 입력한 페이로드가 응답에 반영되는 페이지를 찾기 위해 많은 시도를 하였고, 결국 페이로드가 반영되는 endpoint를 발견하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XhI3i/btqYiB81FYy/4MPh1Lvkyv2KK6mZhGmDZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XhI3i/btqYiB81FYy/4MPh1Lvkyv2KK6mZhGmDZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XhI3i/btqYiB81FYy/4MPh1Lvkyv2KK6mZhGmDZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXhI3i%2FbtqYiB81FYy%2F4MPh1Lvkyv2KK6mZhGmDZ0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;[ XSS 재현 방법 ]&lt;/b&gt;&lt;br /&gt;1. &lt;a href=&quot;https://www.icloud.com/pages&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.icloud.com/pages&lt;/a&gt; 또는 &lt;a href=&quot;https://www.icloud.com/keynotes&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.icloud.com/keynotes&lt;/a&gt; 페이지에 접속&lt;br /&gt;2. '&lt;span style=&quot;color: #ee2323;&quot;&gt;&amp;ldquo;&amp;gt;&amp;lt;img src=x onerror=alert(0)&amp;gt;&lt;span style=&quot;color: #000000;&quot;&gt;'&lt;/span&gt;&lt;/span&gt;이름의 Pages 또는 Keynote 생성&lt;br /&gt;3. 생성한 Pages 또는 Keynote를 다른 이(공동 작업자)에게 전송&lt;br /&gt;4. 전송 받은 다른 이의 계정으로 pages에 접근하여 내용 수정 및 저장&lt;br /&gt;5. 다시 pages로 이동 후 'Setting &amp;gt; Browse All Versions'로 이동&lt;br /&gt;6. Browse All Version 클릭&lt;br /&gt;&lt;br /&gt;Pages나 Keynote의 내용을 수정하면, Browse All Version에서 수정하기 전의 버전을 확인할 수 있다.&lt;br /&gt;이때, Previouse Version에서 img 태그가 필터링되어 있지 않아 XSS가 발생하는 것 같다.&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;[PoC]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://youtu.be/VQjPooskKgY&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;youtu.be/VQjPooskKgY&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=VQjPooskKgY&amp;amp;feature=youtu.be&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/bXjyP8/hyJmnDmK3k/UWi4K6PyguUVhPhKBQCU0K/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/VQjPooskKgY&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Study/Bugbounty Study</category>
      <category>bugbounty</category>
      <category>iCloud</category>
      <category>Stored XSS</category>
      <category>XSS</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/213</guid>
      <comments>https://grini25.tistory.com/213#entry213comment</comments>
      <pubDate>Tue, 23 Feb 2021 00:26:28 +0900</pubDate>
    </item>
    <item>
      <title>[HTTP] Header : X-Forwarded-For (XFF)</title>
      <link>https://grini25.tistory.com/212</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;X-Forwarded-For (XFF)&lt;/span&gt;는 HTTP Proxy (또는 Load Balancers, Caching Server) 등을 통해 웹 서버에 접속하는 &lt;u&gt;클라이언트의 IP 주소를 식별하기 위한 사실상 표준 헤더&lt;/u&gt;이다. (표준화된 버전은 HTTP Forwarded Header이다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 서버(또는 WAS)와 클라이언트 사이에 Proxy Server (또는 Load Balancers, Caching Server) 등의 장비가 있는 경우, 서버 접근 로그는 Proxy Server의 IP만 갖고 있기 때문에 Proxy Server의 IP를 요청한 IP로 인식하게 된다. &lt;br /&gt;이때, X-Forwarded-For 헤더를 통해 웹 프로그램이 실제 요청한 클라이언트의 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;&lt;b&gt;[문법]&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;X-Forwarded-For: &amp;lt;client&amp;gt;, &amp;lt;proxy1&amp;gt;, &amp;lt;proxy2&amp;gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;여러 프록시들을 거칠 때, IP주소들이 차례로 열거되어 가장 오른쪽의 IP주소는 가장 마지막에 거친 프록시의 IP주소가 된다. 따라서, &lt;u&gt;첫 번째 IP주소를 통해 클라이언트 IP주소를 식별&lt;/u&gt;할 수 있다.&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Apache나 Nginx에서 X-Forwarded-For을 사용하기 위해서는 따로 설정해주어야 한다.&lt;/p&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;# Apache&lt;/b&gt;&lt;br /&gt;기본 로그 포맷은 &lt;u&gt;%h&lt;/u&gt;로 Remote Address를 사용하는데 이를 &lt;u&gt;%{X-Forwarded-For}i&lt;/u&gt;를 사용하도록 수정해주어야 한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;LogFormat &quot;%h %l %u %t \&quot;%r\&quot; %&amp;gt;s %b&quot; common&lt;br /&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;darr;&lt;br /&gt;LogFormat &quot;%{X-Forwarded-For}i %l %u %t \&quot;%r\&quot; %&amp;gt;s %b&quot; common&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;# Nginx&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nginx.conf에 아래 구문을 추가하여 설정해주어야 한다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;&lt;br /&gt;&lt;br /&gt;[참고] &lt;a href=&quot;https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.nginx.com/resources/wiki/start/topics/examples/forwarded/&lt;/a&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;[Reference]&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Forwarded-For&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Forwarded-For&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1612808579104&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;X-Forwarded-For - HTTP | MDN&quot; data-og-description=&quot;X-Forwarded-For (XFF) 헤더는 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더다. 클라이언트와 서버 중간에서 트래픽이 프록시나 로드 &quot; data-og-host=&quot;developer.mozilla.org&quot; data-og-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Forwarded-For&quot; data-og-url=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Forwarded-For&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Forwarded-For&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Headers/X-Forwarded-For&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;X-Forwarded-For - HTTP | MDN&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;X-Forwarded-For (XFF) 헤더는 HTTP 프록시나 로드 밸런서를 통해 웹 서버에 접속하는 클라이언트의 원 IP 주소를 식별하는 사실상의 표준 헤더다. 클라이언트와 서버 중간에서 트래픽이 프록시나 로드&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;developer.mozilla.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &lt;a href=&quot;https://www.lesstif.com/software-architect/proxy-client-ip-x-forwarded-for-xff-http-header-20775886.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.lesstif.com/software-architect/proxy-client-ip-x-forwarded-for-xff-http-header-20775886.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1612808588319&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Proxy(프락시) 환경에서 client IP 를 얻기 위한 X-Forwarded-For(XFF) http header&quot; data-og-description=&quot;X-Real-IP 헤더를 사용하는 제품일 경우 %{x-forwarded-for}i 대신 %{x-real-ip}i 사용&quot; data-og-host=&quot;www.lesstif.com&quot; data-og-source-url=&quot;https://www.lesstif.com/software-architect/proxy-client-ip-x-forwarded-for-xff-http-header-20775886.html&quot; data-og-url=&quot;https://www.lesstif.com/software-architect/proxy-client-ip-x-forwarded-for-xff-http-header-20775886.html&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.lesstif.com/software-architect/proxy-client-ip-x-forwarded-for-xff-http-header-20775886.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.lesstif.com/software-architect/proxy-client-ip-x-forwarded-for-xff-http-header-20775886.html&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;Proxy(프락시) 환경에서 client IP 를 얻기 위한 X-Forwarded-For(XFF) http header&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;X-Real-IP 헤더를 사용하는 제품일 경우 %{x-forwarded-for}i 대신 %{x-real-ip}i 사용&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.lesstif.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;</description>
      <category>Study/Web</category>
      <category>http header</category>
      <category>X Forwarded For</category>
      <category>X Forwarded For란?</category>
      <category>X-Forwarded-For</category>
      <category>X-Forwarded-For란?</category>
      <category>XFF</category>
      <category>XFF란?</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/212</guid>
      <comments>https://grini25.tistory.com/212#entry212comment</comments>
      <pubDate>Tue, 9 Feb 2021 03:29:42 +0900</pubDate>
    </item>
    <item>
      <title>[Bugbounty Study] #OTP Bypass Account Takeover</title>
      <link>https://grini25.tistory.com/211</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;# Otp Bypass Account Takeover&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://logicbomb-1.medium.com/otp-bypass-account-takeover-to-admin-panel-ft-header-injection-16f2982a0136&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;logicbomb-1.medium.com/otp-bypass-account-takeover-to-admin-panel-ft-header-injection-16f2982a0136&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1612803589616&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;OTP Bypass Account Takeover to Admin Panel &amp;mdash; Ft. Header Injection&quot; data-og-description=&quot;It looks like this year has great promises at least the starting is good. Already 3 bug bounty in the pipeline(just showing off:P) and&amp;hellip;&quot; data-og-host=&quot;logicbomb-1.medium.com&quot; data-og-source-url=&quot;https://logicbomb-1.medium.com/otp-bypass-account-takeover-to-admin-panel-ft-header-injection-16f2982a0136&quot; data-og-url=&quot;https://logicbomb-1.medium.com/otp-bypass-account-takeover-to-admin-panel-ft-header-injection-16f2982a0136&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/wLBMW/hyJcUnREUE/K3H8no2kzrYSuFoUxMCn0k/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/ybNnv/hyJcVtyB8b/9TlBknmhEFrkGScyHp0E3k/img.png?width=60&amp;amp;height=30&amp;amp;face=0_0_60_30,https://scrap.kakaocdn.net/dn/qsWvw/hyJc3yltFN/Xx0yyOWsXPXavMJAiL5b1K/img.png?width=60&amp;amp;height=33&amp;amp;face=0_0_60_33&quot;&gt;&lt;a href=&quot;https://logicbomb-1.medium.com/otp-bypass-account-takeover-to-admin-panel-ft-header-injection-16f2982a0136&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://logicbomb-1.medium.com/otp-bypass-account-takeover-to-admin-panel-ft-header-injection-16f2982a0136&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/wLBMW/hyJcUnREUE/K3H8no2kzrYSuFoUxMCn0k/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/ybNnv/hyJcVtyB8b/9TlBknmhEFrkGScyHp0E3k/img.png?width=60&amp;amp;height=30&amp;amp;face=0_0_60_30,https://scrap.kakaocdn.net/dn/qsWvw/hyJc3yltFN/Xx0yyOWsXPXavMJAiL5b1K/img.png?width=60&amp;amp;height=33&amp;amp;face=0_0_60_33');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;OTP Bypass Account Takeover to Admin Panel &amp;mdash; Ft. Header Injection&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;It looks like this year has great promises at least the starting is good. Already 3 bug bounty in the pipeline(just showing off:P) and&amp;hellip;&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;logicbomb-1.medium.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;타겟은 정확하게 밝히지 않았고, OTP 인증이 구현되어 있는 온라인 교육 플랫폼이라는 것만 밝혔다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;OTP 기반의 로그인이 있었고, 이에 Brute Force 공격을 시도하였다.&lt;/p&gt;
&lt;p&gt;이를 통해 IP 주소를 기반으로 속도 제한이 걸려 있다는 것을 알아냈다.&lt;/p&gt;
&lt;p&gt;&lt;u&gt;IP 주소 기반의 속도 제한은 다양한 Client IP 주소 또는 Upstream Server IP 주소로 우회가 가능하다.&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;IP 주소 기반 속도 제한 우회 방법?&lt;/b&gt;&lt;br /&gt;Client가 웹 서버에 접근할 때 Proxy Server를 거쳐가는 경우,&lt;br /&gt;Proxy Server는 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;X-Forwarded-For Header&lt;/span&gt;를 이용하여 웹 서버에 Client IP 주소를 전달하는데,&lt;br /&gt;이때, 해당 헤더를 이용하여 IP 주소를 속일 수 있다.&lt;br /&gt;&lt;br /&gt;[X-Forwarded-For Header] &lt;a href=&quot;https://grini25.tistory.com/212&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://grini25.tistory.com/212&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Burp Suite를 이용하여 아래와 같이 Brute Force 공격을 수행하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bLNew3/btqWx5R1HnV/byzZwkmyWvgQto1jmqL6Wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bLNew3/btqWx5R1HnV/byzZwkmyWvgQto1jmqL6Wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bLNew3/btqWx5R1HnV/byzZwkmyWvgQto1jmqL6Wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLNew3%2FbtqWx5R1HnV%2FbyzZwkmyWvgQto1jmqL6Wk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Intruder 기능의 Cluster bomb를 이용하여&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;X-Forwarded-For 값과 OTP 값을 Brute Force 하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이를 통해 OTP 기반의 로그인을 성공하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;로그인 성공을 통해 헤더 인젝션이 가능하다는 것이 분명해졌다.&lt;/p&gt;
&lt;p&gt;IP 접근 제어 또는 속도 제한을 우회하는 것 외에 이것을 이용하는 다른 가능성도 있을 수 있었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;원작자는 이전 회사에 있을 때 WordPress 관리자 인터페이스를 Client IP 주소를 기반으로 내부 IP로만 제한했었던 일을 떠올렸는데, 그 작동은 다음과 같았다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;허용된 내부 IP 주소가 헤더 값으로 입력되면,&lt;br /&gt;실제 화이트리스트 목록에 없는 IP 주소와의 연결 및 제한된 페이지나 API 엔드 포인트로의 접속이 허용되더라도 Proxy는 X-Forwarded-For 값을 전달한다.&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;만약 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;X-Forwarded-F:127.0.0.1&lt;/span&gt; 헤더를 설정한 경우,&lt;/p&gt;
&lt;p&gt;서버는 내부 IP에서 접속하고 있다고 판단하여 제한된 콘텐츠에 접근하는 것을 허용한다.&lt;/p&gt;
&lt;p&gt;그러나 이를 위해서는 운이 좋아서 제한된 페이지를 찾을 수 있어야 하는데, 일반적으로 관리자 페이지/관리자 패널/민감한 엔드포인트는 찾기 어렵다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;타겟의 블로그 페이지&lt;span style=&quot;color: #333333;&quot;&gt;(wp-admin)로&lt;/span&gt; WordPress 관리자 인터페이스에 HTTP 요청을 시도하여 성공하였다.&lt;/p&gt;
&lt;p&gt;&lt;s&gt;(타겟 사이트가 WordPress 기반의 웹 사이트였던 것으로 추측된다.)&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djsPbp/btqWx5LcwN2/istrOQSB0LRmXH7ZByvjtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djsPbp/btqWx5LcwN2/istrOQSB0LRmXH7ZByvjtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djsPbp/btqWx5LcwN2/istrOQSB0LRmXH7ZByvjtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjsPbp%2FbtqWx5LcwN2%2FistrOQSB0LRmXH7ZByvjtK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;이제 Directory Brute Force를 수행하고 IP 기반의 제한된 엔드포인트가 더 있는지 찾는 것은 시간문제이다.&lt;br /&gt;이와 같은 엔드포인트를 찾는데 유용한 리소스를 찾아 Burp Suite의 Intruder에 활용하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;&lt;b&gt;[유용한 리소스]&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;https://github.com/ziadab/AdminBomber/blob/master/AdminBomber.py&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/ziadab/AdminBomber/blob/master/AdminBomber.py&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://github.com/s0md3v/Breacher/blob/master/paths.txt&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/s0md3v/Breacher/blob/master/paths.txt&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chKMSX/btqWc9hg4gT/zxs1EbV7S76eicMjYR9fK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chKMSX/btqWc9hg4gT/zxs1EbV7S76eicMjYR9fK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chKMSX/btqWc9hg4gT/zxs1EbV7S76eicMjYR9fK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchKMSX%2FbtqWc9hg4gT%2Fzxs1EbV7S76eicMjYR9fK1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;다행히도 타겟의 CMS 카탈로그에는 HTTP 요청이 가능한(/cms/_admin/logon.php) 관리자 페이지가 하나 있었고, 이와 함께 수평 권한 상승에 성공하였다. (포털에 로그인하기 위해 권한이 한 단계 상승한 것은 아니다.)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;예방 방법&lt;/b&gt;&lt;br /&gt;신뢰할 수 있는 Proxy Server(또는 Load Balancers)의 IP 주소 목록을 지정한다.&lt;br /&gt;만약 해당 목록에 없는 IP 주소에서 요청이 올 경우 X-Forwarded-For Header를 버린다.&lt;br /&gt;&lt;br /&gt;Nginx는 다음과 같은 작업을 수행한다.&lt;br /&gt;마지막 항목부터 시작하여 각 항목을 확인하여 신뢰할 수 있는 IP 주소 목록에 있는지 확인한다.&lt;br /&gt;만약 신뢰할 수 있는 목록에 존재하지 않으면, 해당 항목 앞에 있는 모든 항목을 버린다.&lt;/blockquote&gt;</description>
      <category>Study/Bugbounty Study</category>
      <category>Account Takeover</category>
      <category>brute Force</category>
      <category>bugbounty</category>
      <category>Burp Suite</category>
      <category>Cluster bomb</category>
      <category>OTP Bypass</category>
      <category>X-Forwarded-For</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/211</guid>
      <comments>https://grini25.tistory.com/211#entry211comment</comments>
      <pubDate>Mon, 8 Feb 2021 19:49:03 +0900</pubDate>
    </item>
    <item>
      <title>1. Burp Suite Intruder _ Dictionary Attack 공격</title>
      <link>https://grini25.tistory.com/210</link>
      <description>&lt;p&gt;Brup Suite의 Intruder 기능을 사용하여 관리자 페이지의 아이디와 비밀번호를 찾아보는 실습을 하였다.&lt;/p&gt;
&lt;p&gt;관리자 페이지는 &lt;span style=&quot;color: #333333;&quot;&gt;Hacker101 CTF의 PetShop Pro의 flag2를 이용하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해당 문제의 관리자 페이지는 아래와 같고,&lt;/p&gt;
&lt;p&gt;Username을 admin으로 입력하면 아래와 같이 잘못된 username이라는 메세지가 출력된다.&lt;/p&gt;
&lt;p&gt;아마 Username을 알아낸 후, Password를 따로 알아내면 될 것이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nU97B/btqVRvEXvnJ/6Y9Kktp8X3zpOb0zFxmRqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nU97B/btqVRvEXvnJ/6Y9Kktp8X3zpOb0zFxmRqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nU97B/btqVRvEXvnJ/6Y9Kktp8X3zpOb0zFxmRqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnU97B%2FbtqVRvEXvnJ%2F6Y9Kktp8X3zpOb0zFxmRqK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Burp Suite의 Intruder을 활용하여 Username과 Password를 찾아보자.&lt;/p&gt;
&lt;p&gt;우선, Username과 Password 값을 전송하는 Request 패킷을 &lt;span style=&quot;background-color: #ffc9af;&quot;&gt;Send to Intruder&lt;/span&gt; 한다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/x0zuc/btqV0DBJdvM/fXKoA9sANBA6QYkLYi6UO0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/x0zuc/btqV0DBJdvM/fXKoA9sANBA6QYkLYi6UO0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/x0zuc/btqV0DBJdvM/fXKoA9sANBA6QYkLYi6UO0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fx0zuc%2FbtqV0DBJdvM%2FfXKoA9sANBA6QYkLYi6UO0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Username의 값을 찾기 위해 payload position을 아래와 같이 username에 설정해준다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcJxkH/btqVQXuZrdV/DEgOxQPhBsQQKz9LdOzuj0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcJxkH/btqVQXuZrdV/DEgOxQPhBsQQKz9LdOzuj0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcJxkH/btqVQXuZrdV/DEgOxQPhBsQQKz9LdOzuj0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcJxkH%2FbtqVQXuZrdV%2FDEgOxQPhBsQQKz9LdOzuj0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;username과 password의 페이로드 집합이 필요하므로&amp;nbsp;&lt;a href=&quot;https://github.com/jeanphorn/wordlist&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;wordlist&lt;/a&gt;를 다운받아 로드시켜주었다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbA6VP/btqV09f4Mzg/v7kJp0fGAoIFTGO28AMkzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbA6VP/btqV09f4Mzg/v7kJp0fGAoIFTGO28AMkzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbA6VP/btqV09f4Mzg/v7kJp0fGAoIFTGO28AMkzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbA6VP%2FbtqV09f4Mzg%2Fv7kJp0fGAoIFTGO28AMkzK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;그리고 &lt;span style=&quot;background-color: #ffc9af;&quot;&gt;Start attack&lt;/span&gt;을 눌러주면 아래와 같이 공격이 수행된다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/claRGt/btqVQXofRiS/M2PwkpKKTWHKMlLHvRuamK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/claRGt/btqVQXofRiS/M2PwkpKKTWHKMlLHvRuamK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/claRGt/btqVQXofRiS/M2PwkpKKTWHKMlLHvRuamK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclaRGt%2FbtqVQXofRiS%2FM2PwkpKKTWHKMlLHvRuamK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;유효한 값은 응답 값이 다르기 때문에 Length가 다른 것을 확인하여 찾을 수 있다.&lt;/p&gt;
&lt;p&gt;만약 Length 길이가 같은 경우에는 응답 값에 특정 문자열이 포함되어 있는지 확인하여 찾을수도 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CgE49/btqV0EnKdIv/uKkwMFRzwND6hb39jqtFGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CgE49/btqV0EnKdIv/uKkwMFRzwND6hb39jqtFGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CgE49/btqV0EnKdIv/uKkwMFRzwND6hb39jqtFGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCgE49%2FbtqV0EnKdIv%2FuKkwMFRzwND6hb39jqtFGk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Options &amp;gt; Grep - Match에서 &lt;span style=&quot;color: #ee2323;&quot;&gt;Invalid username&lt;/span&gt;을 추가해준 후 공격을 수행하면, 아래와 같이 지정한 값이 응답에 포함되어 있는지를 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OF05D/btqV2WHUDCY/qBxOE9VVAhJTGDludlauh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OF05D/btqV2WHUDCY/qBxOE9VVAhJTGDludlauh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OF05D/btqV2WHUDCY/qBxOE9VVAhJTGDludlauh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOF05D%2FbtqV2WHUDCY%2FqBxOE9VVAhJTGDludlauh0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;유효한 username의 값이 'mona'이기 때문에 Invalid username에 체크되어 있지 않다.&lt;/p&gt;
&lt;p&gt;password도 동일한 방법으로 찾을 수 있다.&lt;/p&gt;
&lt;p&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;p&gt;wordlist를 이용하였기 때문에 Payload type을 &lt;u&gt;Simple list&lt;/u&gt;로 지정하였지만,&lt;/p&gt;
&lt;p&gt;Payload type을 &lt;u&gt;Brute force&lt;/u&gt;나 &lt;u&gt;Username generator&lt;/u&gt; 등으로 설정하여 활용할 수도 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clD0jk/btqVTHMgMOa/VEHbbCQzkiZbjCmzsnBKrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clD0jk/btqVTHMgMOa/VEHbbCQzkiZbjCmzsnBKrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clD0jk/btqVTHMgMOa/VEHbbCQzkiZbjCmzsnBKrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclD0jk%2FbtqVTHMgMOa%2FVEHbbCQzkiZbjCmzsnBKrk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;[Reference]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;https://portswigger.net/support/using-burp-to-brute-force-a-login-page&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;portswigger.net/support/using-burp-to-brute-force-a-login-page&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1612515823179&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Using Burp to Brute Force a Login Page&quot; data-og-description=&quot;Using Burp to Brute Force a Login Page Authentication lies at the heart of an application&amp;rsquo;s protection against unauthorized access. If an attacker is ...&quot; data-og-host=&quot;portswigger.net&quot; data-og-source-url=&quot;https://portswigger.net/support/using-burp-to-brute-force-a-login-page&quot; data-og-url=&quot;https://portswigger.net/support/using-burp-to-brute-force-a-login-page&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/s4W9T/hyJbe0pMrz/EgykKfIIkVELETNR5KlcK1/img.png?width=506&amp;amp;height=254&amp;amp;face=0_0_506_254,https://scrap.kakaocdn.net/dn/chQoWP/hyJaoDAwuD/k3bJtFxY2tO2pMpP0d5WG0/img.png?width=506&amp;amp;height=254&amp;amp;face=0_0_506_254&quot;&gt;&lt;a href=&quot;https://portswigger.net/support/using-burp-to-brute-force-a-login-page&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://portswigger.net/support/using-burp-to-brute-force-a-login-page&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/s4W9T/hyJbe0pMrz/EgykKfIIkVELETNR5KlcK1/img.png?width=506&amp;amp;height=254&amp;amp;face=0_0_506_254,https://scrap.kakaocdn.net/dn/chQoWP/hyJaoDAwuD/k3bJtFxY2tO2pMpP0d5WG0/img.png?width=506&amp;amp;height=254&amp;amp;face=0_0_506_254');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Using Burp to Brute Force a Login Page&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Using Burp to Brute Force a Login Page Authentication lies at the heart of an application&amp;rsquo;s protection against unauthorized access. If an attacker is ...&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;portswigger.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Tools</category>
      <category>Burp Suite</category>
      <category>Burp Suite Intruder</category>
      <category>Dictionary Attack</category>
      <category>Hacker101 Petshop Pro</category>
      <category>Intruder</category>
      <category>딕셔너리 공격 실습</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/210</guid>
      <comments>https://grini25.tistory.com/210#entry210comment</comments>
      <pubDate>Sat, 6 Feb 2021 23:12:57 +0900</pubDate>
    </item>
    <item>
      <title>0. Burp Suite 설치 및 사용방법</title>
      <link>https://grini25.tistory.com/202</link>
      <description>&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&amp;lt;목차&amp;gt;&lt;/b&gt;&lt;/h3&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;&lt;a href=&quot;#0_download&quot;&gt;0. 다운로드&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;a href=&quot;#1_exec&quot;&gt;1. 실행&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;a href=&quot;#2_setting&quot;&gt;2. Burp Suite 기본 설정&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;a href=&quot;#3_func&quot;&gt;3. Burp Suite 기능&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;#dashboard&quot;&gt;# Dashboard&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;#target&quot;&gt;# Target&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;#proxy&quot;&gt;# Proxy&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;#intruder&quot;&gt;# Intruder&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;#repeater&quot;&gt;# Repeater&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;#sequencer&quot;&gt;# Sequencer&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;#decoder&quot;&gt;# Decoder&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;#comparer&quot;&gt;# Comparer&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;a href=&quot;#extender&quot;&gt;# Extender&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;a href=&quot;#4_ref&quot;&gt;4. Reference&lt;/a&gt;&lt;/b&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 id=&quot;0_download&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;0. 다운로드&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Burp Suite는 Fiddler와 마찬가지인 웹 프록시 툴로,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;서버와 클라이언트 간의 요청 및 응답 패킷을 Intercept 하는 것이 가능하여&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;웹 어플리케이션 테스트와 취약점 점검에 주로 사용한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;[Burp Suite 다운로드]&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://portswigger.net/burp&quot;&gt;portswigger.net/burp&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1610702960521&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Burp Suite - Application Security Testing Software&quot; data-og-description=&quot;Get Burp Suite. The class-leading vulnerability scanning, penetration testing, and web app security platform. Try for free today.&quot; data-og-host=&quot;portswigger.net&quot; data-og-source-url=&quot;https://portswigger.net/burp&quot; data-og-url=&quot;https://portswigger.net/burp&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cj70b1/hyIVYZtXvN/Nhj7PoQfmBN4Lbka8e6ES0/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603,https://scrap.kakaocdn.net/dn/ijwtY/hyIXn4ssVC/K286hPra9kWpNirFlrK5Tk/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603&quot;&gt;&lt;a href=&quot;https://portswigger.net/burp&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://portswigger.net/burp&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cj70b1/hyIVYZtXvN/Nhj7PoQfmBN4Lbka8e6ES0/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603,https://scrap.kakaocdn.net/dn/ijwtY/hyIXn4ssVC/K286hPra9kWpNirFlrK5Tk/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Burp Suite - Application Security Testing Software&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Get Burp Suite. The class-leading vulnerability scanning, penetration testing, and web app security platform. Try for free today.&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;portswigger.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;다운로드 사이트에는 3가지 버전이 있는데, 나는 무료인 Community버전을 선택하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Windows 64bit인 &lt;/span&gt;환경에 맞는 Setup파일을 다운받아 실행하여 설치를 진행하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csLIY0/btqTDct59f9/l7XTdfRQuyoSvzA2GqL6p1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csLIY0/btqTDct59f9/l7XTdfRQuyoSvzA2GqL6p1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csLIY0/btqTDct59f9/l7XTdfRQuyoSvzA2GqL6p1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcsLIY0%2FbtqTDct59f9%2Fl7XTdfRQuyoSvzA2GqL6p1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;계속 Next를 클릭하고 조금만 기다리면 간단하게 설치가 완료된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;설치가 되었으니 사용방법을 알아보도록 하자.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 id=&quot;1_exec&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;1. 실행&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yjK9b/btqVyUYLUW3/yftxwAfSlR9VrySAOxzLR1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yjK9b/btqVyUYLUW3/yftxwAfSlR9VrySAOxzLR1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yjK9b/btqVyUYLUW3/yftxwAfSlR9VrySAOxzLR1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyjK9b%2FbtqVyUYLUW3%2FyftxwAfSlR9VrySAOxzLR1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;설치된 Burp Suite 실행하면 아래와 같이 저장된 프로젝트를 불러올 수도 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;딱히 불러올 프로젝트가 없으므로 Temporary project를 선택하였다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bWxT5v/btqVIbx8PcF/bKWYKEUVTRVNifgJEejVwk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bWxT5v/btqVIbx8PcF/bKWYKEUVTRVNifgJEejVwk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bWxT5v/btqVIbx8PcF/bKWYKEUVTRVNifgJEejVwk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbWxT5v%2FbtqVIbx8PcF%2FbKWYKEUVTRVNifgJEejVwk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;프로젝트 사용법에 대해 알아보고 싶다면 아래 링크를 참고하면 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://portswigger.net/burp/documentation/desktop/getting-started/launching/select-project&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;portswigger.net/burp/documentation/desktop/getting-started/launching/select-project&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&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;h3 id=&quot;2_setting&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;2. Burp Suite 기본 설정&lt;/b&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgbw5t/btqVvPQ4xw7/VmYaUWLOEDtabONKmZEM5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgbw5t/btqVvPQ4xw7/VmYaUWLOEDtabONKmZEM5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgbw5t/btqVvPQ4xw7/VmYaUWLOEDtabONKmZEM5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcgbw5t%2FbtqVvPQ4xw7%2FVmYaUWLOEDtabONKmZEM5k%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;기본적으로 프록시 설정이 127.0.0.0:8080으로 되어 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;하지만, 8080 포트를 다른 서비스가 사용하고 있는 경우에는 사용할 수 없다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;그런 경우에는 다른 포트 번호로 변경하여 Running 시켜준다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;그 후,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;브라우저에서 프록시 설정을 해주어야 패킷을 잡을 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;(Burp Suite에 설정된 포트 번호로 설정해야 한다.)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGPKxi/btqVzSNudvk/Gjkw844KC4KK8NKTJMujSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGPKxi/btqVzSNudvk/Gjkw844KC4KK8NKTJMujSK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGPKxi/btqVzSNudvk/Gjkw844KC4KK8NKTJMujSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGPKxi%2FbtqVzSNudvk%2FGjkw844KC4KK8NKTJMujSK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;하지만, 최근 버전에서는 브라우저의 프록시 설정 없이 Intercept 할 수 있도록 지원한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbPtFl/btqVIJPvA97/UOifYwWZY2OKoUDkCrJWc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbPtFl/btqVIJPvA97/UOifYwWZY2OKoUDkCrJWc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbPtFl/btqVIJPvA97/UOifYwWZY2OKoUDkCrJWc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbPtFl%2FbtqVIJPvA97%2FUOifYwWZY2OKoUDkCrJWc1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Open browser을 클릭하면, 아래와 같이 비어있는 브라우저 창이 뜬다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;해당 브라우저를 이용하면 별도의 프록시 설정 없이 패킷을 잡을 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bY7e80/btqVAHSDviw/ktvTJIFx444BmFAcO9TH61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bY7e80/btqVAHSDviw/ktvTJIFx444BmFAcO9TH61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bY7e80/btqVAHSDviw/ktvTJIFx444BmFAcO9TH61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbY7e80%2FbtqVAHSDviw%2FktvTJIFx444BmFAcO9TH61%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;패킷을 잡아보면 Request만 잡히고 Response는 잡히지 않는데,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;이는 옵션에서 Responses도 Intercept 할 수 있도록 체크해주면 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mVaag/btqVAHkslZo/9vZiRE72jkwKNXKRX6ogMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mVaag/btqVAHkslZo/9vZiRE72jkwKNXKRX6ogMK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mVaag/btqVAHkslZo/9vZiRE72jkwKNXKRX6ogMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmVaag%2FbtqVAHkslZo%2F9vZiRE72jkwKNXKRX6ogMK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;패킷에서 한글이 깨져있는 경우가 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;이는 Burp Suite에서 설정된 폰트가 한글을 지원하지 않는 폰트이기 때문임으로&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;User options &amp;gt; Display에서 한글을 지원하는 폰트로 변경하면 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8kj2N/btqVzRU9pq3/KDOwT4vJi25KKU2nJWYG8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8kj2N/btqVzRU9pq3/KDOwT4vJi25KKU2nJWYG8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8kj2N/btqVzRU9pq3/KDOwT4vJi25KKU2nJWYG8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8kj2N%2FbtqVzRU9pq3%2FKDOwT4vJi25KKU2nJWYG8k%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;해당 창에서 테마를 Dark로 변경할 수도 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&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;h3 id=&quot;3_func&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;3. Burp Suite 기능&lt;/b&gt;&lt;/h3&gt;
&lt;h4 id=&quot;dashboard&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# Dashboard&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TSoqL/btqVufWYrfS/YE7Deyw3FKZpO62BL4ekmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TSoqL/btqVufWYrfS/YE7Deyw3FKZpO62BL4ekmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TSoqL/btqVufWYrfS/YE7Deyw3FKZpO62BL4ekmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTSoqL%2FbtqVufWYrfS%2FYE7Deyw3FKZpO62BL4ekmK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;2.x 버전부터 생긴 기능으로, 대시보드를 통해&lt;span style=&quot;color: #000000;&quot;&gt; 자동화된 활동을 한눈에 모니터링하고 제어할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;대시보드의 창은 &lt;i&gt;Task&lt;/i&gt;, &lt;i&gt;Event log&lt;/i&gt;, &lt;i&gt;Issue activity&lt;/i&gt;로 나누어져 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;Task 영역&lt;/span&gt;의 &lt;u&gt;New scan&lt;/u&gt;은 Pro 버전에서만 지원하는 것으로 스캔 기능을 수행할 수 있다.&lt;br /&gt;무료 버전에서는 &lt;u&gt;New live task&lt;/u&gt;만을 지원하며, 이를 통해 실시간 크롤링이 가능하다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;Event log영역&lt;/span&gt;은 작업에 대한 Error, info 등의 이벤트 로그가 기록된다.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;Issue activity영역&lt;/span&gt;은 스캔 활동에 대한 결과가 기록되는 곳으로 Pro 버전에서만 지원한다.&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;target&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# Target&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;타겟 어플리케이션에 대한 자세한 정보를 확인할 수 있다&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;현재 작업의 범위 내에 있는 타겟을 정의할 수 있고, 취약성 테스트 프로세스를 수행할 수도 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;1) Site map&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cq6KQ1/btqVAJiXpoX/bN5u7ePhvAyrAnAvBXlZaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cq6KQ1/btqVAJiXpoX/bN5u7ePhvAyrAnAvBXlZaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cq6KQ1/btqVAJiXpoX/bN5u7ePhvAyrAnAvBXlZaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcq6KQ1%2FbtqVAJiXpoX%2FbN5u7ePhvAyrAnAvBXlZaK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;브라우저에서 방문한 모든 URL이 개별 항목으로 기록되어&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;각 항목에 대한 전체 요청 및 응답에 대한 전체 세부사항을 볼 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;도메인, 디렉토리, 파일, 매개변수로 구분된 URL 및 내용을 계층적 트리 형식으로&amp;nbsp;&amp;nbsp;보여준다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;분기를 확장하면 자세한 내용을 볼 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gpcvl/btqVCbfc7Np/nBSc9griEVnx0vJo5VUGq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gpcvl/btqVCbfc7Np/nBSc9griEVnx0vJo5VUGq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gpcvl/btqVCbfc7Np/nBSc9griEVnx0vJo5VUGq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGpcvl%2FbtqVCbfc7Np%2FnBSc9griEVnx0vJo5VUGq0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;필터 표시창을 클릭하면 디스플레이 필터 옵션이 열린다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;관심 있는 콘텐츠만 나타내도록 일부 항목을 숨기거나 표시하도록 필터링할 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Site map에 너무 많은 항목이 있는 경우, &lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;타겟 사이트만을 분석하는데 어려울 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;이때, request type의 필터를 통해 in-scope items만 볼 수 있도록 설정한 후,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;'오른쪽 마우스'를 클릭하여 타겟 사이트를 scope에 추가해주면 지정된 사이트에 대한 정보만 볼 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dPNrcR/btqVFBxUyud/gIUwEvqYS5TkAGJSn6Bhsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dPNrcR/btqVFBxUyud/gIUwEvqYS5TkAGJSn6Bhsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dPNrcR/btqVFBxUyud/gIUwEvqYS5TkAGJSn6Bhsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdPNrcR%2FbtqVFBxUyud%2FgIUwEvqYS5TkAGJSn6Bhsk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;2) Scope&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5fEDZ/btqXKuC8kID/TXkmVkzD3Cpq9WtJfYHA21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5fEDZ/btqXKuC8kID/TXkmVkzD3Cpq9WtJfYHA21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5fEDZ/btqXKuC8kID/TXkmVkzD3Cpq9WtJfYHA21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5fEDZ%2FbtqXKuC8kID%2FTXkmVkzD3Cpq9WtJfYHA21%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;공격하려는 대상의 범위에 대해 설정할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Include in scope 영역은 범위 내 표시고, Exclude in scope는 범위 내 차단이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;공격하려는 대상 범위를 설정한 후 아래와 같이 Proxy에서 설정해주면,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;공격하려는 범위에 대해서만 Intercept할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lml7w/btqXFgFM2w2/iKEFNiKMlEGzoZAzsoo0yK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lml7w/btqXFgFM2w2/iKEFNiKMlEGzoZAzsoo0yK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lml7w/btqXFgFM2w2/iKEFNiKMlEGzoZAzsoo0yK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flml7w%2FbtqXFgFM2w2%2FiKEFNiKMlEGzoZAzsoo0yK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;3) Issue definitions&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/unViw/btqVzSf5mSI/WYURIwNPssz7Zke30Cwbq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/unViw/btqVzSf5mSI/WYURIwNPssz7Zke30Cwbq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/unViw/btqVzSf5mSI/WYURIwNPssz7Zke30Cwbq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FunViw%2FbtqVzSf5mSI%2FWYURIwNPssz7Zke30Cwbq1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp;Burp Scanner에서 탐지할 수 있는 모든 문제의 정의 목록을 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;proxy&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# Proxy&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;가장 많이 사용할 기능으로,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;브라우저와 웹 서버 간의 모든 요청 및 응답을 가로채 훔쳐보고, 수정할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;1) Intercept&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eAgZx0/btqVJSyTknB/NcRscyFEX43kKNUcGJoNkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eAgZx0/btqVJSyTknB/NcRscyFEX43kKNUcGJoNkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eAgZx0/btqVJSyTknB/NcRscyFEX43kKNUcGJoNkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeAgZx0%2FbtqVJSyTknB%2FNcRscyFEX43kKNUcGJoNkK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;브라우저와 웹 서버 간 HTTP 및 Websocket 메세지를 가로채 표시하는데,&lt;br /&gt;가로챈 모든 메세지를 모니터링 및 수정할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Forward&lt;/b&gt; - 요청/응답 편집 후 서버 또는 브라우저로 전송&lt;br /&gt;&lt;b&gt;Drop&lt;/b&gt; - 서버 또는 브라우저로 전달되지 않도록 메시지 삭제&lt;br /&gt;&lt;b&gt;Intercept is on/off&lt;/b&gt; - 이 버튼을 사용하여 모든 가로채기를 켜거나 끔&lt;br /&gt;&lt;b&gt;Action&lt;/b&gt; - 현재 표시된 메시지에 대해 수행할 수 있는 동작 메뉴 표시&lt;br /&gt;&lt;b&gt;Open Browser&lt;/b&gt; - 별도의 프록시 설정 없이 Intercept 가능한 브라우저 창 켜짐&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;2) HTTP history&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GGSDV/btqVAHZJa8E/UgKNcMo48lXcKLxusTF3o1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GGSDV/btqVAHZJa8E/UgKNcMo48lXcKLxusTF3o1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GGSDV/btqVAHZJa8E/UgKNcMo48lXcKLxusTF3o1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGGSDV%2FbtqVAHZJa8E%2FUgKNcMo48lXcKLxusTF3o1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Burp Proxy를 통과한 모든 요청 및 응답에 대한 전체 기록이 저장되어 있다.&lt;br /&gt;패킷 선택 후 요청 및 응답 탭에서 전체 메세지를 확인할 수 있다. &lt;br /&gt;기록된 목록에 대한 필터링 및 주석을 설정하여 정보 관리가 가능하다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;3) WebSockets history&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhesfg/btqVAIElmiK/dJK9tSxMKafuUdQ89LOGe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhesfg/btqVAIElmiK/dJK9tSxMKafuUdQ89LOGe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhesfg/btqVAIElmiK/dJK9tSxMKafuUdQ89LOGe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbhesfg%2FbtqVAIElmiK%2FdJK9tSxMKafuUdQ89LOGe0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Brup Proxy를 통과한 모든 WebSockets 메세지 기록이 저장되어 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;HTTP history와 마찬가지로 기록된 목록에 대해 필터링 및 주석을 설정할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;(나는 WebSocket 통신을 하지 않았기 때문에 아무런 패킷이 잡혀있지 않다.)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;4) Options&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tLuTD/btqVAIj7bwV/UUGxfQ3LlUHp6IjAxKjrTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tLuTD/btqVAIj7bwV/UUGxfQ3LlUHp6IjAxKjrTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tLuTD/btqVAIj7bwV/UUGxfQ3LlUHp6IjAxKjrTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtLuTD%2FbtqVAIj7bwV%2FUUGxfQ3LlUHp6IjAxKjrTk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Proxy listeners, HTTP 요청 및 응답 인터셉트, WebSocket 메세지 인터셉트,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;응답&amp;nbsp; 수정, 일치 및 교체, TLS 통과, 기타 옵션을 설정할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Proxy listeners&lt;/b&gt; - listeners 중 하나를 프록시 서버로 사용하도록 설정할 수 있다.&lt;br /&gt;(Burp Proxy는 listeners를 사용하여 브라우저의 HTTP 요청을 수신한다.)&lt;br /&gt;&lt;b&gt;Intercept Client Requests&lt;/b&gt; - 클라이언트 요청 메세지 인터셉트에 대한 규칙을 지정할 수 있다.&lt;br /&gt;&lt;b&gt;Intercept Server Responses&lt;/b&gt; - 서버 응답 패킷 인터셉트에 대한 규칙을 지정할 수 있다.&lt;br /&gt;&lt;b&gt;Intercept WebSockets Messages&lt;/b&gt; - WebSocket 메세지의 인터셉트 여부를 개별적으로 설정할 수 있다.&lt;br /&gt;&lt;b&gt;Response Modification&lt;/b&gt; - 자동 응답 수정을 통해 다양한 작업을 수행할 수 있다.&lt;br /&gt;&lt;b&gt;Match and Replace&lt;/b&gt; - Proxy를 통해 전달되는 요청 및 응답의 일부를 자동으로 변경하는 데 사용한다.&lt;br /&gt;&lt;b&gt;TLS Pass Through&lt;/b&gt; - TLS 연결을 통해 직접 전달할 대상 웹 서버를 지정하는 데 사용한다.&lt;br /&gt;&lt;b&gt;Miscellaneous&lt;/b&gt; - Proxy 동작의 특정 세부 정보를 제어하는 옵션을 설정할 수 있다.&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;intruder&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# Intruder&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;자동화된&amp;nbsp;사용자&amp;nbsp;지정&amp;nbsp;공격을&amp;nbsp;수행하기&amp;nbsp;위한&amp;nbsp;도구이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;어플리케이션을 테스트할 때 발생하는 모든 종류의 작업을 자동화하는 데 사용할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;즉, Brute Force 공격 및 Fuzzing을 수행할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;1) Target&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O0kQo/btqVK8i4JEk/VRbk6EyfF1KKQCgxx0tdo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O0kQo/btqVK8i4JEk/VRbk6EyfF1KKQCgxx0tdo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O0kQo/btqVK8i4JEk/VRbk6EyfF1KKQCgxx0tdo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO0kQo%2FbtqVK8i4JEk%2FVRbk6EyfF1KKQCgxx0tdo1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;공격을&amp;nbsp;위한&amp;nbsp;타겟&amp;nbsp;서버의&amp;nbsp;세부&amp;nbsp;정보를&amp;nbsp;구성하는&amp;nbsp;데&amp;nbsp;사용한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Host&lt;/b&gt; - 타겟 서버의 hostname이나 IP 주소 값&lt;br /&gt;&lt;b&gt;Port&lt;/b&gt; - HTTP/S 서비스 port 번호&lt;br /&gt;&lt;b&gt;Use HTTPS&lt;/b&gt; - 타겟 서버의 HTTPS 사용 유무 체크&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;2) Positions&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcQ6kd/btqVTHkbfTB/H4nAP9k4Ynisiw0s2r8IK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcQ6kd/btqVTHkbfTB/H4nAP9k4Ynisiw0s2r8IK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcQ6kd/btqVTHkbfTB/H4nAP9k4Ynisiw0s2r8IK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcQ6kd%2FbtqVTHkbfTB%2FH4nAP9k4Ynisiw0s2r8IK0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;페이로드 삽입 위치 구성 및 페이로드가 할당되는 공격 유형을 결정하는 데 사용한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;오른쪽의 버튼을 통해 페이로드 삽입 위치에 대한 구성을 설정할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;(&amp;sect;로 둘러싸인 부분이 페이로드로 설정된 것이다.)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Add &amp;sect;&lt;/b&gt; - request template에서 페이로드 위치 추가&lt;br /&gt;&lt;b&gt;Clear &amp;sect;&lt;/b&gt; - request template에서 모든 페이로드 위치 제거&lt;br /&gt;&lt;b&gt;Auto &amp;sect;&lt;/b&gt; - 유효한 위치를 추측하여 그에 맞게 페이로드를 배치&lt;br /&gt;&lt;b&gt;Refresh&lt;/b&gt; - 필요시 request template 편집기의 구문 색상 표시 새로고침&lt;br /&gt;&lt;b&gt;Clear&lt;/b&gt; - 전체 request template 삭제&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Burp Intruder는 Sniper, Battering ram, Pitchfork, Cluster bomb와 같은 다양한 공격을 지원한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;(공격에 대입할 페이로드 집합을 설정해야 한다.)&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Sniper&lt;/b&gt; - 단일 페이로드 집합이 사용되며, 정의된 각 위치에 차례로 페이로드를 삽입한다.&lt;br /&gt;(첫 번째 위치의 삽입이 끝나면, 두 번째 위치 순으로 삽입.) &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Battering&amp;nbsp;ram&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;삽입한다. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pitchfork&lt;/b&gt; - 단일 이상의 페이로드 집합이 사용되어, 각 정의된 위치의 개수(최대 8개)만큼 사용된다.&lt;br /&gt;각 페이로드가 정의된 위치에 동시에 삽입된다.&lt;br /&gt;&lt;br /&gt;예시) ?id=&lt;span style=&quot;background-color: #9feec3; color: #ee2323;&quot;&gt;&amp;sect;this_is_id&amp;sect;&lt;/span&gt;&amp;amp;passwd=&lt;span style=&quot;color: #ee2323; background-color: #9feec3;&quot;&gt;&amp;sect;this_is_password&amp;sect;&lt;/span&gt;&lt;br /&gt;- payload set 1 {admin, test, a, b}, payload set 2 {pass, passwd, asdf}&lt;br /&gt;?id=&lt;span style=&quot;color: #ee2323;&quot;&gt;admin&lt;/span&gt;&amp;amp;passwd=&lt;span style=&quot;color: #ee2323;&quot;&gt;pass&lt;/span&gt;&lt;br /&gt;?id=&lt;span style=&quot;color: #f3c000;&quot;&gt;test&lt;/span&gt;&amp;amp;passwd=&lt;span style=&quot;color: #f3c000;&quot;&gt;passwd&lt;/span&gt;&lt;br /&gt;?id=&lt;span style=&quot;color: #006dd7;&quot;&gt;a&lt;/span&gt;&amp;amp;passwd=&lt;span style=&quot;color: #006dd7;&quot;&gt;asdf&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cluster bomb&lt;/b&gt; - 단일 이상의 페이로드 집합이 사용되어, 각 정의된 위치의 개수(최대 8개)만큼 사용된다.&lt;br /&gt;각 페이로드 집합을 순서대로 반복하여 모든 페이로드의 조합을 테스트한다.&lt;br /&gt;&lt;br /&gt;예시) ?id=&lt;span style=&quot;background-color: #9feec3; color: #ee2323;&quot;&gt;&amp;sect;this_is_id&amp;sect;&lt;/span&gt;&amp;amp;passwd=&lt;span style=&quot;color: #ee2323; background-color: #9feec3;&quot;&gt;&amp;sect;this_is_password&amp;sect;&lt;/span&gt;&lt;br /&gt;- payload set 1 {admin, test, a, b}, payload set 2 {pass, passwd, asdf}&lt;br /&gt;?id=&lt;span style=&quot;color: #ee2323;&quot;&gt;admin&lt;/span&gt;&amp;amp;passwd=&lt;span style=&quot;color: #ee2323;&quot;&gt;pass&lt;/span&gt;&lt;br /&gt;?id=&lt;span style=&quot;color: #ee2323;&quot;&gt;admin&lt;/span&gt;&amp;amp;passwd=&lt;span style=&quot;color: #f3c000;&quot;&gt;passwd&lt;/span&gt;&lt;br /&gt;?id=&lt;span style=&quot;color: #ee2323;&quot;&gt;admin&lt;/span&gt;&amp;amp;passwd=&lt;span style=&quot;color: #006dd7;&quot;&gt;asdf&lt;/span&gt;&lt;br /&gt;?id=&lt;span style=&quot;color: #f3c000;&quot;&gt;test&lt;/span&gt;&amp;amp;passwd=&lt;span style=&quot;color: #ee2323;&quot;&gt;pass&lt;/span&gt;&lt;br /&gt;...&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;3) Payloads&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXpODy/btqVTHSaX0p/1kxRiRVciJBzkJys6koGh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXpODy/btqVTHSaX0p/1kxRiRVciJBzkJys6koGh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXpODy/btqVTHSaX0p/1kxRiRVciJBzkJys6koGh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXpODy%2FbtqVTHSaX0p%2F1kxRiRVciJBzkJys6koGh0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;하나 이상의 페이로드 집합을 구성하는 데 사용되며,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;집합 개수는 Positions 탭에서 설정한 공격 유형에 따라 달라진다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Payload Sets&lt;/b&gt; - 하나 이상의 페이로드 집합 정의&lt;br /&gt;&lt;b&gt;Payload Options&lt;/b&gt; - 페이로드로 사용되는 문자열의 단순 목록 구성&lt;br /&gt;&lt;b&gt;Payload Processing&lt;/b&gt; - 각 페이로드가 사용되기 전 다양한 처리 작업을 수행하는 규칙 정의&lt;br /&gt;&lt;b&gt;Payload Encoding&lt;/b&gt; - HTTP 요청 내에서 안전한 전송을 위한 URL encoding 설정&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;4) Options&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c46F7j/btqV1900JjI/Avvxk5G5K7Kt6PQ2LL3Hq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c46F7j/btqV1900JjI/Avvxk5G5K7Kt6PQ2LL3Hq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c46F7j/btqV1900JjI/Avvxk5G5K7Kt6PQ2LL3Hq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc46F7j%2FbtqV1900JjI%2FAvvxk5G5K7Kt6PQ2LL3Hq1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;공격에 영향을 미치는 옵션을 구성하는 데 사용한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Request Headers&lt;/b&gt; - 공격 중에 구성된 request header 업데이트 여부 제어&lt;br /&gt;&lt;b&gt;Request Engine&lt;/b&gt; - 공격 수행 시 HTTP 요청 수행 엔진 제어&lt;br /&gt;&lt;b&gt;Attack results&lt;/b&gt; - Attack results에 캡처되는 정보 제어&lt;br /&gt;&lt;b&gt;Grep - Match&lt;/b&gt; - 지정된 표현식이 포함된 결과 항목 플래그 추가 가능&lt;br /&gt;&lt;b&gt;Grep - Extract&lt;/b&gt; - 유용한 정보를 공격 결과 테이블로 추출 가능&lt;br /&gt;&lt;b&gt;Grep - Payloads&lt;/b&gt; - 사용된 페이로드 값이 응답 값에 포함되었는지 여부 결과 항목 플래그 추가&lt;br /&gt;&lt;b&gt;Redirections&lt;/b&gt; - 공격 수행 시 Burp의 Redirection 처리 방법 제어&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;Send to Intruder&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;을 클릭하면 자동으로 위의 값들이 설정되어 쉽게 사용할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qHblM/btqVZSMgsW1/08XWwbJuhCfycPfeyVqGnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qHblM/btqVZSMgsW1/08XWwbJuhCfycPfeyVqGnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qHblM/btqVZSMgsW1/08XWwbJuhCfycPfeyVqGnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqHblM%2FbtqVZSMgsW1%2F08XWwbJuhCfycPfeyVqGnk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;[Intruder 실습]&lt;/b&gt; &lt;a href=&quot;https://grini25.tistory.com/210?category=858418&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;grini25.tistory.com/210?category=858418&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;repeater&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# Repeater&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;개별 HTTP 요청을 변경 및 재발급하여 어플리케이션의 응답을 분석할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;요청을 수정하여 계속 발행할 수 있어&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;매개 변수값을 변경하거나 발행 순서를 변경하여 요청함으로써,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;입력 값에 의한 취약점 발생을 테스트하는 데 사용할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dRmX2J/btqVZSTRbMD/fD0e5r5SUdE3xOHkhrWSYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dRmX2J/btqVZSTRbMD/fD0e5r5SUdE3xOHkhrWSYK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dRmX2J/btqVZSTRbMD/fD0e5r5SUdE3xOHkhrWSYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdRmX2J%2FbtqVZSTRbMD%2FfD0e5r5SUdE3xOHkhrWSYK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;Send to Repeater&lt;/span&gt;을 클릭하면 세부 사항이 간단히 설정되어 쉽게 사용할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;요청을&amp;nbsp;보낼&amp;nbsp;준비가&amp;nbsp;되면&amp;nbsp;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;Send&lt;/span&gt;를 클릭하여 서버로 요청 값을 전송하고,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;서버로부터 받은 응답은 Response를 통해 볼 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAGG0t/btqV2Wnpnfz/aOV0bVfxAkfj5FvNLA85wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAGG0t/btqV2Wnpnfz/aOV0bVfxAkfj5FvNLA85wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAGG0t/btqV2Wnpnfz/aOV0bVfxAkfj5FvNLA85wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAGG0t%2FbtqV2Wnpnfz%2FaOV0bVfxAkfj5FvNLA85wk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;각 Repeater tab은 요청에 대한 기록을 유지하므로 &lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;&amp;lt;&lt;/span&gt; /&amp;nbsp;&lt;span style=&quot;background-color: #99cefa;&quot;&gt;&amp;gt;&lt;/span&gt;를 이용하여 전/후의 요청 및 응답을 확인할 수 있다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;drop-down 버튼을 이용하면 번호를 통해 빠르게 이동할 수도 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;87&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/45NOt/btqVZRAEp7I/jSSzwxCqOS9ANPslOlXAa1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/45NOt/btqVZRAEp7I/jSSzwxCqOS9ANPslOlXAa1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/45NOt/btqVZRAEp7I/jSSzwxCqOS9ANPslOlXAa1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F45NOt%2FbtqVZRAEp7I%2FjSSzwxCqOS9ANPslOlXAa1%2Fimg.png&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;87&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Repeater의 Tab은 다음과 같이 관리할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Double-Clicking&lt;/b&gt; - Tab의 이름 변경&lt;br /&gt;&lt;b&gt;Dragging&lt;/b&gt; - Tab의 순서 변경&lt;br /&gt;&lt;b&gt;... Clicking&lt;/b&gt; - 새 Tab 생성&lt;br /&gt;&lt;b&gt;x Clicking&lt;/b&gt; - Tab 닫기&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;sequencer&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# Sequencer&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;웹 어플리케이션에서 제공하는 값의 임의성을 분석하기 위한 기능이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;u&gt;세션 토큰&lt;/u&gt;, &lt;u&gt;CSRF 방지 토큰&lt;/u&gt;, &lt;u&gt;암호 재설정 토큰&lt;/u&gt; 등과 같이 랜덤 한 중요한 데이터를 테스트할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;1) Live capture&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UPYPK/btqVTHZEgWK/s1eVc9kQh6E0GRvo9xMVxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UPYPK/btqVTHZEgWK/s1eVc9kQh6E0GRvo9xMVxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UPYPK/btqVTHZEgWK/s1eVc9kQh6E0GRvo9xMVxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUPYPK%2FbtqVTHZEgWK%2Fs1eVc9kQh6E0GRvo9xMVxK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;타겟 웹 어플리케이션에서 생성되는 토큰을 캡처하여, 샘플 토큰 목록을 생성하고 분석하여 결과를 출력한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;&lt;span style=&quot;background-color: #ffffff;&quot;&gt;분석을 원하는 패킷에&amp;nbsp;&lt;/span&gt; Send to Sequencer&lt;/span&gt;를 하면 &lt;span style=&quot;color: #333333;&quot;&gt;Select Live Capture Request&lt;/span&gt;에 항목이 추가된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Token Location Within Response&lt;/span&gt;는 어플리케이션의 응답 내에서 토큰이 나타나는 위치를 선택할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;즉, 사용자에게 캡처에 사용할 항목을 선택하게 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Cookie&lt;/b&gt; - 응답으로 쿠키가 설정된 경우, 분석할 쿠키 선택 가능 &lt;br /&gt;&lt;b&gt;Form&amp;nbsp;fields&lt;/b&gt;&amp;nbsp;-&amp;nbsp;응답에&amp;nbsp;HTML&amp;nbsp;양식&amp;nbsp;필드가&amp;nbsp;있는&amp;nbsp;경우,&amp;nbsp;분석할&amp;nbsp;양식&amp;nbsp;필드&amp;nbsp;값&amp;nbsp;선택&amp;nbsp;가능 &lt;br /&gt;&lt;b&gt;Custom&amp;nbsp;location&lt;/b&gt; - 사용자의 임의로 항목 정의 가능&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Live Capture Options&lt;/span&gt;는 라이브 캡처 수행 시 HTTP 요청 및 토큰 수집에 사용되는 엔진을 제어 설정할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Nuber of threads&lt;/b&gt; - 실시간 캡처가 동시에 서버에 보낼 수 있는 요청 수&lt;br /&gt;&lt;b&gt;Throttle between requests&lt;/b&gt;&amp;nbsp;- 모든 요청 전 지연 시간 (과부하 방지 or 은밀한 요청에 유용)&lt;br /&gt;&lt;b&gt;Ignore token whose length deviates by _ charaters&lt;/b&gt; - 지정한 평균 토큰 길이 벗어나는 토큰 무시 설정&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;모든 설정이 끝난 후, &lt;span style=&quot;background-color: #ffc9af;&quot;&gt;Start live capture&lt;/span&gt;를 누르면 라이브 캡처가 시작되며,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;라이브 캡처 중에는 &lt;span style=&quot;color: #000000;&quot;&gt;토큰 수, requests 수 및 네트워크 오류 수를 progress bar로 보여준다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oIk0E/btqV35kbJen/nWYB216u53Vhsx2kl1GWbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oIk0E/btqV35kbJen/nWYB216u53Vhsx2kl1GWbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oIk0E/btqV35kbJen/nWYB216u53Vhsx2kl1GWbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoIk0E%2FbtqV35kbJen%2FnWYB216u53Vhsx2kl1GWbK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;라이브 캡처 진행 중 다음의 옵션을 사용할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Pause/Resume&lt;/b&gt; - 캡처 일시적 중단 및 재시작&lt;br /&gt;&lt;b&gt;Stop&lt;/b&gt; - 캡처 영구적 중지&lt;br /&gt;&lt;b&gt;Copy tokens&lt;/b&gt; - 현재 캡처된 토큰 클립보드에 복사&lt;br /&gt;&lt;b&gt;Save tokens&lt;/b&gt; - 현재 캡처된 토큰 파일에 저장&lt;br /&gt;&lt;b&gt;Auto analyze&lt;/b&gt; - 토큰 자동 분석 수행, 라이브 캡처 중 결과 주기적 업데이트&lt;br /&gt;&lt;b&gt;Analyze now&lt;/b&gt; - 최소 100개의 토큰이 캡처되면 Burp가 현재 샘플을 분석 후 결과 업데이트&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;2) Manual load&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbkIwl/btqV0EA1m2A/FueJCMZKRkPNDlBBqROiH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbkIwl/btqV0EA1m2A/FueJCMZKRkPNDlBBqROiH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbkIwl/btqV0EA1m2A/FueJCMZKRkPNDlBBqROiH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbkIwl%2FbtqV0EA1m2A%2FFueJCMZKRkPNDlBBqROiH1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;이미&amp;nbsp;생성된&amp;nbsp;토큰&amp;nbsp;샘플(Live&amp;nbsp;Capture&amp;nbsp;/&amp;nbsp;Intruder&amp;nbsp;이용)을&amp;nbsp;불러와&amp;nbsp;샘플에&amp;nbsp;대한&amp;nbsp;통계&amp;nbsp;분석을&amp;nbsp;수행할&amp;nbsp;수&amp;nbsp;있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;3) Analysis options&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Kmixb/btqV0733R4Y/MhHglTKKTr81iutWsiftz0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Kmixb/btqV0733R4Y/MhHglTKKTr81iutWsiftz0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Kmixb/btqV0733R4Y/MhHglTKKTr81iutWsiftz0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKmixb%2FbtqV0733R4Y%2FMhHglTKKTr81iutWsiftz0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;토큰에&amp;nbsp;대한&amp;nbsp;처리&amp;nbsp;방법과&amp;nbsp;분석하는&amp;nbsp;동안&amp;nbsp;사용하는&amp;nbsp;테스트&amp;nbsp;유형을&amp;nbsp;설정할&amp;nbsp;수&amp;nbsp;있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Token Handling&lt;/span&gt;은&amp;nbsp;분석&amp;nbsp;중&amp;nbsp;토큰&amp;nbsp;처리&amp;nbsp;방법을&amp;nbsp;제어할&amp;nbsp;수&amp;nbsp;있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Pad short tokens at Start/End&lt;/b&gt; - 각 토큰의 시작/끝 패딩 적용 여부 선택&lt;br /&gt;&lt;b&gt;Pad with&lt;/b&gt; - 패딩에 사용될 문자 지정(보통 &quot;0&quot;)&lt;br /&gt;&lt;b&gt;Base64-decode before analyzing&lt;/b&gt; - 토큰이 Base64 인코딩 된 경우 분석 전 디코딩 설정&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Token&amp;nbsp;Analysis&lt;/span&gt;는&amp;nbsp;문자와&amp;nbsp;비트&amp;nbsp;레벨의&amp;nbsp;테스트에서&amp;nbsp;수행되는&amp;nbsp;분석&amp;nbsp;유형을&amp;nbsp;제어할&amp;nbsp;수&amp;nbsp;있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;decoder&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# Decoder&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;데이터 암/복호화 및 해시 형식으로 변환할 수 있는 기능이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;휴리스틱(heuristic) 알고리즘을 사용하고 있어 여러 암호화 형식을 지능적으로 인식할 수 있다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6e2vJ/btqVV3g6p3q/rNkItHFdT9AQydzwmYfpEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6e2vJ/btqVV3g6p3q/rNkItHFdT9AQydzwmYfpEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6e2vJ/btqVV3g6p3q/rNkItHFdT9AQydzwmYfpEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6e2vJ%2FbtqVV3g6p3q%2FrNkItHFdT9AQydzwmYfpEk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;drop-down 목록을 이용하여 필요한 변환을 선택하여 변환하면 된다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Smart decode는 아래 값이 인코딩 된 것으로 보이는 데이터를 찾아 내용을 자동적으로 디코딩하는 옵션이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;위와 같이 데이터를 직접 입력하는 것도 가능하지만,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;인/디코딩하고자 하는 데이터를 선택하여 &lt;span style=&quot;background-color: #ffc9af;&quot;&gt;Send to Decoder&lt;/span&gt;으로 이용하는 것도 가능하다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6Z8cQ/btqVZTebdsk/qtdzV0K1kz8hQ6wdXkdJPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6Z8cQ/btqVZTebdsk/qtdzV0K1kz8hQ6wdXkdJPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6Z8cQ/btqVZTebdsk/qtdzV0K1kz8hQ6wdXkdJPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6Z8cQ%2FbtqVZTebdsk%2FqtdzV0K1kz8hQ6wdXkdJPk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;comparer&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# Comparer&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;두 데이터(요청, 응답 등) 간의 비교를 수행하므로,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다른 입력에 대한 응답을 비교하는 데 유용하게 사용할 수 있다.&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;비교하고자 하는 값(R&lt;span style=&quot;color: #333333;&quot;&gt;equest/Reponse&lt;/span&gt;)을 &lt;u&gt;복사 + 붙여넣기&lt;/u&gt; 하거나,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;u&gt;파일을 로드&lt;/u&gt;하거나, &lt;u&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;Send to Comparer&lt;/span&gt;&lt;/u&gt;으로 Comparer에 값을 전송하여 데이터를 로드할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dNG3hJ/btqV09OEhcX/KUZHK3SXKKI2WzwhL5Ho60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dNG3hJ/btqV09OEhcX/KUZHK3SXKKI2WzwhL5Ho60/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dNG3hJ/btqV09OEhcX/KUZHK3SXKKI2WzwhL5Ho60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdNG3hJ%2FbtqV09OEhcX%2FKUZHK3SXKKI2WzwhL5Ho60%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;비교할 두 가지 데이터가 선택되면, &lt;br /&gt;&amp;nbsp;Words, Bytes 중 하나의 비교 형식을 선택하여 비교할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Words Comparer&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckRIrD/btqVV3n3iRH/rdXZzOxhkkSwZ85fetcKNk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckRIrD/btqVV3n3iRH/rdXZzOxhkkSwZ85fetcKNk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckRIrD/btqVV3n3iRH/rdXZzOxhkkSwZ85fetcKNk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckRIrD%2FbtqVV3n3iRH%2FrdXZzOxhkkSwZ85fetcKNk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;단어 단위의 비교로,&amp;nbsp; 비교 된 항목 간의 차이점이 단어 수준에 존재할 때 유용한 방식이다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;Bytes &lt;b&gt;Comparer&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGWSb1/btqV191UACZ/hCu5LSvHKAVMdh68i5zHz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGWSb1/btqV191UACZ/hCu5LSvHKAVMdh68i5zHz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGWSb1/btqV191UACZ/hCu5LSvHKAVMdh68i5zHz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGWSb1%2FbtqV191UACZ%2FhCu5LSvHKAVMdh68i5zHz1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;바이트 단위의 비교로, 비교 된 항목 간의 차이점이 바이트 레벨에 존재하는 경우 유용한 방식이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 id=&quot;extender&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;# Extender&lt;/b&gt;&lt;/h4&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;자체&amp;nbsp;또는&amp;nbsp;타사&amp;nbsp;코드를&amp;nbsp;사용하여&amp;nbsp;기능을&amp;nbsp;확장할&amp;nbsp;수&amp;nbsp;있다. &lt;br /&gt;&lt;span style=&quot;color: #333333;&quot;&gt;확장 기능에 대해 &lt;/span&gt;Extensions, BApp Store, APIs, Options에서 설치 및 사용하고 관리할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;1) Extensions&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEi0PY/btqWc8t5Asy/nwo8KaOkyS8DHZMPRpfHC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEi0PY/btqWc8t5Asy/nwo8KaOkyS8DHZMPRpfHC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEi0PY/btqWc8t5Asy/nwo8KaOkyS8DHZMPRpfHC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEi0PY%2FbtqWc8t5Asy%2Fnwo8KaOkyS8DHZMPRpfHC1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;설치된 모든 확장 기능을 확인할 수 있으며, 추가, 제거, 재정렬(Up/Down) 할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;u&gt;Details탭&lt;/u&gt;에서 해당 확장 기능 정보를 확인할 수 있고,&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Extension loaded를 체크하면 확장을 활성화할지 비활성화할지 선택할 수 있다. &lt;br /&gt;&lt;u&gt;Output탭&lt;/u&gt;에서 확장 기능의 표준 출력 스트림 세부 사항을 확인할 수있다. &lt;br /&gt;&lt;u&gt;Errors탭&lt;/u&gt;에서 표준 오류 스트림 정보를 확인할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;2) BApp Store&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H3yue/btqV19VbuIf/JTyYnAuntMWAYfMXYebQjk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H3yue/btqV19VbuIf/JTyYnAuntMWAYfMXYebQjk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H3yue/btqV19VbuIf/JTyYnAuntMWAYfMXYebQjk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH3yue%2FbtqV19VbuIf%2FJTyYnAuntMWAYfMXYebQjk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Burp&amp;nbsp;Suite&amp;nbsp;사용자가&amp;nbsp;작성한&amp;nbsp;Burp&amp;nbsp;확장&amp;nbsp;기능이&amp;nbsp;있다. &lt;br /&gt;사용 가능한 BApps를 확인하여, 설치하여 사용할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;3) APIs&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9w2AX/btqV8FTiclx/Js9KKwDkLgCtj2Bg24wKek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9w2AX/btqV8FTiclx/Js9KKwDkLgCtj2Bg24wKek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9w2AX/btqV8FTiclx/Js9KKwDkLgCtj2Bg24wKek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9w2AX%2FbtqV8FTiclx%2FJs9KKwDkLgCtj2Bg24wKek%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Burp 확장 기능을 개발하는 데 사용할 수 있는 API에 대한 세부 정보를 확인할 수 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;실행 중인 Burp 버전에서 사용할 수 있는 API 정보가 표시되어 있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;Save interface files 및 Save Javadoc files는&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;확장 기능을 개발할 때 사용할 수 있도록 코드를 로컬 사본으로 저장하는 기능이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;4) Options&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXuqcy/btqV36Kohwf/KPKZ8NTDWA3YOKVDi0r9SK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXuqcy/btqV36Kohwf/KPKZ8NTDWA3YOKVDi0r9SK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXuqcy/btqV36Kohwf/KPKZ8NTDWA3YOKVDi0r9SK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXuqcy%2FbtqV36Kohwf%2FKPKZ8NTDWA3YOKVDi0r9SK%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;확장&amp;nbsp;설정,&amp;nbsp;Java&amp;nbsp;환경,&amp;nbsp;Python&amp;nbsp;환경,&amp;nbsp;Ruby&amp;nbsp;환경에&amp;nbsp;대한&amp;nbsp;설정&amp;nbsp;옵션이&amp;nbsp;있다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote style=&quot;text-align: center;&quot; data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;Settings&lt;/b&gt; - 시작 시 확장을 어떻게 처리할 것인지 설정&lt;br /&gt;(시작 시 자동으로 재로드할 것인지, BApp 자동으로 업데이트할 것인지)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Java environment&lt;/b&gt; - Java로 작성된 확장 기능 실행을 위한 환경 구성 설정&lt;br /&gt;확장 프로그램에서 라이브러리를 사용하는 경우 라이브러리를 로드할 폴더를 지정할 수 있다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Python environment&lt;/b&gt; - Python으로 작성된 확장 기능 실행을 위한 환경 구성 설정&lt;br /&gt;Python 확장 기능을 사용하려면 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;Jython*&lt;/span&gt;을 다운로드 받고 경로를 설정해야 한다.&lt;br /&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;Jython* : Java로 구현된 Python 인터프리터&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ruby environment&lt;/b&gt; - Ruby로 작성된 확장 기능 실행을 위한 환경 구성 설정&lt;br /&gt;Ruby 확장 기능을 사용하려면 &lt;span style=&quot;background-color: #dddddd;&quot;&gt;JRuby*&lt;/span&gt;를 다운로드 받고 경로를 설정해야 한다.&lt;br /&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;JRuby* : Java로 구현된 Ruby 인터프리터&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style4&quot; /&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;아래는 확장 개발에 필요한 공식 정보 페이지이다.&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;Burp 확장 도구 개발은 Python, Ruby, Java를 통해 개발할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;[Burp Suite Extender]&lt;/b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://portswigger.net/burp/extender&quot;&gt;portswigger.net/burp/extender&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333;&quot;&gt;[How to install Jython/JRuby]&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://portswigger.net/support/how-to-install-an-extension-in-burp-suite&quot;&gt;portswigger.net/support/how-to-install-an-extension-in-burp-suite&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;[Burp Extender Tools]&lt;/b&gt; &lt;a href=&quot;https://github.com/alphaSeclab/awesome-burp-suite/blob/master/Readme_en.md&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;github.com/alphaSeclab/awesome-burp-suite/blob/master/Readme_en.md&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;h3 id=&quot;4_ref&quot; style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;4. Reference&lt;/b&gt;&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;- &lt;a href=&quot;https://portswigger.net/burp/documentation/contents&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;portswigger.net/burp/documentation/contents&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1612337235706&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Burp Suite documentation - contents&quot; data-og-description=&quot;Documentation Desktop editions &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Getting started &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next steps ...&quot; data-og-host=&quot;portswigger.net&quot; data-og-source-url=&quot;https://portswigger.net/burp/documentation/contents&quot; data-og-url=&quot;https://portswigger.net/burp/documentation/contents&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/f9drs/hyJafZlIIn/9dqbWIVgTkCGMrTkCIjMUK/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603,https://scrap.kakaocdn.net/dn/chfgum/hyI8UidWKJ/DM0e1RkFmZNBaQBy62MOF0/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603&quot;&gt;&lt;a href=&quot;https://portswigger.net/burp/documentation/contents&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://portswigger.net/burp/documentation/contents&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/f9drs/hyJafZlIIn/9dqbWIVgTkCGMrTkCIjMUK/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603,https://scrap.kakaocdn.net/dn/chfgum/hyI8UidWKJ/DM0e1RkFmZNBaQBy62MOF0/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Burp Suite documentation - contents&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Documentation Desktop editions &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Getting started &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Next steps ...&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;portswigger.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;- &lt;a href=&quot;https://portswigger.net/burp/documentation/desktop/penetration-testing&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;portswigger.net/burp/documentation/desktop/penetration-testing&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1612333588014&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;How to use Burp Suite for penetration testing&quot; data-og-description=&quot;The sections below describe the essentials of how to use Burp Suite within your web application testing workflow. For help with installing and launching ...&quot; data-og-host=&quot;portswigger.net&quot; data-og-source-url=&quot;https://portswigger.net/burp/documentation/desktop/penetration-testing&quot; data-og-url=&quot;https://portswigger.net/burp/documentation/desktop/penetration-testing&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bTdcEB/hyJagYeOxL/jahBmXEusHj4KWU0V1j2jK/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603,https://scrap.kakaocdn.net/dn/oFQ32/hyJam5exzF/SRKNIne6vs6OdQKJY4tV7k/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603&quot;&gt;&lt;a href=&quot;https://portswigger.net/burp/documentation/desktop/penetration-testing&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://portswigger.net/burp/documentation/desktop/penetration-testing&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bTdcEB/hyJagYeOxL/jahBmXEusHj4KWU0V1j2jK/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603,https://scrap.kakaocdn.net/dn/oFQ32/hyJam5exzF/SRKNIne6vs6OdQKJY4tV7k/img.png?width=1201&amp;amp;height=603&amp;amp;face=0_0_1201_603');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;How to use Burp Suite for penetration testing&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;The sections below describe the essentials of how to use Burp Suite within your web application testing workflow. For help with installing and launching ...&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;portswigger.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;- &lt;a href=&quot;https://www.techpanther.in/search/label/Burp%20Suite&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;www.techpanther.in/search/label/Burp Suite&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1612339282093&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Techpanther&quot; data-og-description=&quot;Blog about Computer Tricks , Cyber security , Windows Server , Cloud Computing , Linux&quot; data-og-host=&quot;www.techpanther.in&quot; data-og-source-url=&quot;https://www.techpanther.in/search/label/Burp%20Suite&quot; data-og-url=&quot;https://www.techpanther.in/search/label/Burp%20Suite&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/s4qlK/hyJacIlFXw/yWnfP9luXVgYqw3DFmKwKK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/E1lg1/hyI8Vg84ft/xI4Bi6U2hwDLGANcUttlDK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bdasIm/hyJagjFqEX/05ZDF7a3gRwp1nbf1iLU00/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.techpanther.in/search/label/Burp%20Suite&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.techpanther.in/search/label/Burp%20Suite&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/s4qlK/hyJacIlFXw/yWnfP9luXVgYqw3DFmKwKK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/E1lg1/hyI8Vg84ft/xI4Bi6U2hwDLGANcUttlDK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bdasIm/hyJagjFqEX/05ZDF7a3gRwp1nbf1iLU00/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Techpanther&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;Blog about Computer Tricks , Cyber security , Windows Server , Cloud Computing , Linux&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;www.techpanther.in&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Tools</category>
      <category>Burp Suite</category>
      <category>Burp Suite 다운로드</category>
      <category>Burp Suite 사용방법</category>
      <category>Burp Suite 사용법</category>
      <category>Burp Suite 설치</category>
      <category>Burp Suite 설치 및 사용방법</category>
      <category>버프슈트</category>
      <category>버프스위트</category>
      <category>웹 디버깅 툴</category>
      <category>웹 취약점 점검</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/202</guid>
      <comments>https://grini25.tistory.com/202#entry202comment</comments>
      <pubDate>Sat, 6 Feb 2021 22:08:47 +0900</pubDate>
    </item>
    <item>
      <title>[Python] sys.stderr.write(f&amp;quot;ERROR: {exc}&amp;quot;) 해결 방법</title>
      <link>https://grini25.tistory.com/209</link>
      <description>&lt;p&gt;&lt;i&gt;pip install --upgrade pip&lt;/i&gt; 명령어를 실행하는 중 다음과 같은 에러가 발생하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blYbxA/btqVbXazQxg/REnjCckZjt6hTJbVQ7Z6Xk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blYbxA/btqVbXazQxg/REnjCckZjt6hTJbVQ7Z6Xk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blYbxA/btqVbXazQxg/REnjCckZjt6hTJbVQ7Z6Xk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblYbxA%2FbtqVbXazQxg%2FREnjCckZjt6hTJbVQ7Z6Xk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;[해결 방법]&lt;/b&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;python3&lt;br /&gt;\$ wget https://bootstrap.pypa.io/3.5/get-pip.py&lt;br /&gt;\$ python3 get-pip.py&lt;br /&gt;&lt;br /&gt;python2&lt;br /&gt;\$ wget https://bootstrap.pypa.io/2.7/get-pip.py&lt;br /&gt;\$ python get-pip.py&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;get-pip.py란?&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;사용자가 파이썬 환경에서 pip, setuptools, wheel을 설치할 수 있게 하는 &lt;span style=&quot;color: #333333;&quot;&gt;bootstrapping script이다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;s&gt;(나는 우분투에 pip가 기본적으로 설치돼 있었는데, 뭔가 제대로 설치가 안되어 있던 것일까..?;;)&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Problem Solving/Language</category>
      <category>get-pip.py</category>
      <category>pip</category>
      <category>pip upgrade</category>
      <category>pip upgrade error</category>
      <category>pip 업그레이드 에러</category>
      <category>sys.stderr.write(f&amp;quot;ERROR: {exc}&amp;quot;)</category>
      <category>sys.stderr.write(f&amp;quot;ERROR: {exc}&amp;quot;) ^ SyntaxError: invalid syntax</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/209</guid>
      <comments>https://grini25.tistory.com/209#entry209comment</comments>
      <pubDate>Sun, 31 Jan 2021 00:37:37 +0900</pubDate>
    </item>
    <item>
      <title>[Bugbounty Study] #Vimeo _ SSRF</title>
      <link>https://grini25.tistory.com/208</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;# uploading process SSRF _ \$100 + \$4,900&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://medium.com/@dPhoeniixx/vimeo-upload-function-ssrf-7466d8630437&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;medium.com/@dPhoeniixx/vimeo-upload-function-ssrf-7466d8630437&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1611748109783&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Vimeo upload function SSRF&quot; data-og-description=&quot;TL;DR&quot; data-og-host=&quot;medium.com&quot; data-og-source-url=&quot;https://medium.com/@dPhoeniixx/vimeo-upload-function-ssrf-7466d8630437&quot; data-og-url=&quot;https://medium.com/@dPhoeniixx/vimeo-upload-function-ssrf-7466d8630437&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bbTID3/hyI4AjLIza/KRRJqaxhEk9kALHRqWGknK/img.png?width=1086&amp;amp;height=270&amp;amp;face=0_0_1086_270,https://scrap.kakaocdn.net/dn/cqkzJf/hyI4Ac0N6S/RemmqVthVyOPlmxAr6T4A1/img.png?width=60&amp;amp;height=38&amp;amp;face=0_0_60_38,https://scrap.kakaocdn.net/dn/dOWnkk/hyI4zLVvDM/EPsiYpjeQbxtKJNGGkdVi0/img.png?width=60&amp;amp;height=52&amp;amp;face=0_0_60_52&quot;&gt;&lt;a href=&quot;https://medium.com/@dPhoeniixx/vimeo-upload-function-ssrf-7466d8630437&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://medium.com/@dPhoeniixx/vimeo-upload-function-ssrf-7466d8630437&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bbTID3/hyI4AjLIza/KRRJqaxhEk9kALHRqWGknK/img.png?width=1086&amp;amp;height=270&amp;amp;face=0_0_1086_270,https://scrap.kakaocdn.net/dn/cqkzJf/hyI4Ac0N6S/RemmqVthVyOPlmxAr6T4A1/img.png?width=60&amp;amp;height=38&amp;amp;face=0_0_60_38,https://scrap.kakaocdn.net/dn/dOWnkk/hyI4zLVvDM/EPsiYpjeQbxtKJNGGkdVi0/img.png?width=60&amp;amp;height=52&amp;amp;face=0_0_60_52');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot;&gt;Vimeo upload function SSRF&lt;/p&gt;
&lt;p class=&quot;og-desc&quot;&gt;TL;DR&lt;/p&gt;
&lt;p class=&quot;og-host&quot;&gt;medium.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;해당 글은 Vimeo 동영상 업로드 과정에서의 SSRF 취약점에 대한 글이다.&lt;/p&gt;
&lt;p&gt;&lt;s&gt;이 취약점 제보를 통해 총 두 번의 Bounty를 받았다.&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;해당 글의 타겟인 Vimeo는 직접 제작한 동영상을 업로드 및 공유할 수 있는 사이트로,&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;로컬에 저장되어 있는 파일뿐만 아니라 드롭박스나 Google Drive 등 다양한 방식으로 업로드할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GAqfe/btqUSq5FPRU/1lXLX49jlGKxZniRc2PvEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GAqfe/btqUSq5FPRU/1lXLX49jlGKxZniRc2PvEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GAqfe/btqUSq5FPRU/1lXLX49jlGKxZniRc2PvEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGAqfe%2FbtqUSq5FPRU%2F1lXLX49jlGKxZniRc2PvEk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;BurpSuite를 이용하여 &lt;span style=&quot;color: #333333;&quot;&gt;Google Drive로의 동영상 업로드 요청을&lt;span&gt; &lt;/span&gt;&lt;/span&gt;확인하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bu4tXg/btqUTmBOYGK/UtntLS4xz3wOirvnV8KsI0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bu4tXg/btqUTmBOYGK/UtntLS4xz3wOirvnV8KsI0/img.png&quot; data-alt=&quot;Upload Request&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bu4tXg/btqUTmBOYGK/UtntLS4xz3wOirvnV8KsI0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbu4tXg%2FbtqUTmBOYGK%2FUtntLS4xz3wOirvnV8KsI0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;Upload Request&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;u&gt;동영상 파일이 저장되어 있는 URL&lt;/u&gt;과 &lt;u&gt;Google authorization값&lt;/u&gt;을 전송하는 것을 볼 수 있는데,&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;이는 백엔드 서버가 해당 값으로&amp;nbsp;&lt;span style=&quot;color: #333333;&quot;&gt;구글 드라이브의 파일에 접근해 가져오기 위한 값이다.&lt;/span&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #333333;&quot;&gt;백엔드 서버에서 어떤 일이 발생하는지 알아보기 위해 동영상 다운로드를 요청한 후 &lt;span style=&quot;color: #333333;&quot;&gt;WireShark로 패킷을 확인하였&lt;/span&gt;다.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FIKLt/btqUTngxfif/etfSNyqaIPqd25GAjIWlL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FIKLt/btqUTngxfif/etfSNyqaIPqd25GAjIWlL1/img.png&quot; data-alt=&quot;HTTP Stream Of Download Request&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FIKLt/btqUTngxfif/etfSNyqaIPqd25GAjIWlL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFIKLt%2FbtqUTngxfif%2FetfSNyqaIPqd25GAjIWlL1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;HTTP Stream Of Download Request&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;패킷의 &lt;i&gt;Range, Content-Range&lt;/i&gt; 같은 일반적이지 않은 헤더를 통해 어떤 일이 발생하는지 알 수 있다.&lt;/p&gt;
&lt;p&gt;대부분 동영상의 크기가 크기 때문에 Vimeo가 전체 파일을 한 번에 요청하지 않는다고 추측할 수 있다.&lt;/p&gt;
&lt;p&gt;만약, 동영상의 크기가 작으면 전체 파일을 요청할 것이고, 크면 전체 파일이 될 때까지 파일의 부분을 요청할 것이다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pa1pi/btqUTl3WXXI/RXMKUcMxr7tJ6cafYk269k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pa1pi/btqUTl3WXXI/RXMKUcMxr7tJ6cafYk269k/img.png&quot; data-alt=&quot;Normal Upload Process&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pa1pi/btqUTl3WXXI/RXMKUcMxr7tJ6cafYk269k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpa1pi%2FbtqUTl3WXXI%2FRXMKUcMxr7tJ6cafYk269k%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;Normal Upload Process&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;[Upload Process]&lt;/b&gt;&lt;br /&gt;1. 동영상 업로드 요청 (Client -&amp;gt; Backend Server)&lt;br /&gt;2. 동영상 크기 확인을 위한 0Byte 데이터 요청 (Backend Server -&amp;gt; hoster.com)&lt;br /&gt;3. Content-Range값을 통해 동영상 크기 응답 (hoster.com -&amp;gt; Backend Server)&lt;br /&gt;4. 동영상 데이터 요청 (Backend Server -&amp;gt; hoster.com)&lt;br /&gt;5. 동영상 데이터와 함께 요청 완료 응답 (hoster.com -&amp;gt; Backend Server)&lt;br /&gt;6. 파일 인코딩 검사를 통해 동영상 파일 여부 확인 후 사용자 프로필로 전달 (Backend Server)&lt;br /&gt;&lt;br /&gt;[Header Range, Content-Range] &lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Range_requests&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mozilla.org/ko/docs/Web/HTTP/Range_requests&lt;/a&gt;&lt;br /&gt;[HTTP 206 State Code] &lt;a href=&quot;https://developer.mozilla.org/ko/docs/Web/HTTP/Status/206&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://developer.mozilla.org/ko/docs/Web/HTTP/Status/206&lt;/a&gt;&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;서버가 파일의 크기를 확인하는 요청을 보낸 다음, 만약 단일 연결으로 전송할 만큼 &lt;span style=&quot;color: #333333;&quot;&gt;파일의 크기가 &lt;/span&gt;작으면 전체 파일을 요청할 것이다.&lt;/p&gt;
&lt;p&gt;이 부분에서 원작자는 서버에서 &lt;span style=&quot;color: #333333;&quot;&gt;Backend Server가 &lt;/span&gt;요청한 만큼의 데이터보다 적은 양의 데이터로 응답하면 어떻게 될지 궁금하였고, 이를 위해 Python으로 웹 서버를 구축하여 테스트하였다.&lt;/p&gt;
&lt;p&gt;전체 파일의 길이는 554321B이지만 Vimeo에서 전체 파일을 요청할 때 8228B만 응답하였다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b925lC/btqUUqKOd4w/5iCckH0XYaRvztyOpcAQp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b925lC/btqUUqKOd4w/5iCckH0XYaRvztyOpcAQp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b925lC/btqUUqKOd4w/5iCckH0XYaRvztyOpcAQp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb925lC%2FbtqUUqKOd4w%2F5iCckH0XYaRvztyOpcAQp1%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;로그를 통해 Vimeo Server에서 8228B만큼 저장하여 8228-554321 범위의 남은 파일을 요청한 것을 확인할 수 있다. 이런 경우 서버가 Vimeo에 Redirect 응답을 보내면 SSRF로 이어질 수 있다.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dcRRY0/btqUSpr8nzb/lvo7MoYS6u6n2h73Qimvu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dcRRY0/btqUSpr8nzb/lvo7MoYS6u6n2h73Qimvu0/img.png&quot; data-alt=&quot;Redirect Responed Process&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dcRRY0/btqUSpr8nzb/lvo7MoYS6u6n2h73Qimvu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdcRRY0%2FbtqUSpr8nzb%2Flvo7MoYS6u6n2h73Qimvu0%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;figcaption&gt;Redirect Responed Process&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;[Redirect Responed Process]&lt;/b&gt;&lt;br /&gt;1. 동영상 업로드 요청 (Client -&amp;gt; Backend Server)&lt;br /&gt;2. 동영상 크기 확인을 위한 0Byte 데이터 요청 (Backend Server -&amp;gt; evil.com)&lt;br /&gt;3. Content-Range값을 통해 동영상 크기 응답 (evil.com -&amp;gt; Backend Server)&lt;br /&gt;4. 동영상 데이터 요청 (Backend Server -&amp;gt; evil.com)&lt;br /&gt;5. 8228Byte의 동영상 데이터와 함께 요청 완료 응답 (evil.com -&amp;gt; Backend Server)&lt;br /&gt;6. 파일이 응답받은 크기가 아니므로 나머지 데이터 요청 (Backend Server -&amp;gt; evil.com)&lt;br /&gt;7. &lt;u&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;http://evil.com/Hello.txt&lt;/span&gt;&lt;/u&gt;로 Redirect 응답 (evil.com -&amp;gt; Backend Server)&lt;br /&gt;8. &lt;span style=&quot;color: #333333;&quot;&gt;Backend Server&lt;/span&gt;가 Redirect되어 &lt;u&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;http://evil.com/Hello.txt&lt;/span&gt;&lt;/u&gt;로 접근&lt;br /&gt;9. Hello.txt의 내용과 함께 요청 완료 응답 (evil.com -&amp;gt; Backend Server)&lt;br /&gt;10. 파일이 응답받은 크기가 아니므로 나머지 데이터 요청 (Backend Server -&amp;gt; evil.com)&lt;br /&gt;11. 나머지의 동영상 데이터와 함께 요청 완료 응답 (evil.com -&amp;gt; Backend Server)&lt;br /&gt;12. Backend Server는 받은 파일의 크기가 더 크지만 부족하지 않으므로 넘어간 후 받은 파일 병합&lt;br /&gt;&amp;nbsp; &amp;nbsp; (파일의 8228 offset은 Backend Server가 Redirect 된 evil.com/Hello.txt의 데이터로, &lt;b&gt;FIRST_8228_BYTES_OF_VIDEO_FILE + &lt;span style=&quot;color: #ee2323;&quot;&gt;Helloworld!zzz&lt;/span&gt; + REST_BYTES_OF_THE_VIDEO_FILE&lt;/b&gt;과 같이 보일 것이다.)&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;몇몇 웹 서버에서 공격을 재현하는 것은 제한적이어서 공격을 수행하기 위해 서버를 구축하여 실행하였다.&lt;/p&gt;
&lt;p&gt;구축한 서버를 통해 공격이 제대로 동작하는 것을 확인하였다.&lt;/p&gt;
&lt;p&gt;(참고: 업로드된 파일을 다운로드할 수 있어 쉽게 SSRF를 확인할 수 있다.)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdCppq/btqUSpr8oVI/lShyVtu51k9kDlXKyYuX9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdCppq/btqUSpr8oVI/lShyVtu51k9kDlXKyYuX9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdCppq/btqUSpr8oVI/lShyVtu51k9kDlXKyYuX9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdCppq%2FbtqUSpr8oVI%2FlShyVtu51k9kDlXKyYuX9k%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;[Exploit]&lt;/b&gt;&lt;br /&gt;1. 구축한 서버에 대한 정보 수집&lt;br /&gt;2. 서버가 구글 인스턴스임을 확인하여 인스턴스 메타데이터 검색&lt;br /&gt;3. 응답할 Redirect 주소 변경&lt;br /&gt;&amp;nbsp; (http://metadata.google.internal/computeMetadata/v1beta1/instance/service-accounts/default/token)&lt;br /&gt;4. 공격 재현&lt;br /&gt;5. 컴퓨팅 엔진 API access token 얻음&lt;/blockquote&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;[Exploit 결과]&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnhHsJ/btqUZtUaMNX/5bGr7CzwqwvlsGvwlqMzEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnhHsJ/btqUZtUaMNX/5bGr7CzwqwvlsGvwlqMzEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnhHsJ/btqUZtUaMNX/5bGr7CzwqwvlsGvwlqMzEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnhHsJ%2FbtqUZtUaMNX%2F5bGr7CzwqwvlsGvwlqMzEk%2Fimg.png&quot; data-origin-width=&quot;0&quot; data-origin-height=&quot;0&quot; data-ke-mobilestyle=&quot;widthContent&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;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Study/Bugbounty Study</category>
      <category>Bug Bounty</category>
      <category>File Upload</category>
      <category>SSRF</category>
      <category>vimeo</category>
      <author>Grini</author>
      <guid isPermaLink="true">https://grini25.tistory.com/208</guid>
      <comments>https://grini25.tistory.com/208#entry208comment</comments>
      <pubDate>Wed, 27 Jan 2021 20:53:00 +0900</pubDate>
    </item>
  </channel>
</rss>