<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>도카이트</title>
    <link>https://dyeonee.tistory.com/</link>
    <description>@ dodoh4t  [White Hat Hacker]
# BoB 10th - Security Consulting
# P4C 4th - Web Hacking</description>
    <language>ko</language>
    <pubDate>Tue, 21 Jul 2026 16:45:04 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>dodoh4t</managingEditor>
    <item>
      <title>[HawkIS] 어셈블리어로 문자열 출력하기</title>
      <link>https://dyeonee.tistory.com/147</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;[기초 사전학습] - CPU 구성 및 레지스터의 종류와 용도&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;어셈블리어&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;CPU의 Instruction을 직접 사용&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;하드웨어 의존적&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;CPU 구성&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;연산 장치(ALU, Arithmetic and Logic Unit)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;제어 장치(Control Unit)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;레지스터(Register)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;연산 장치&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;내부장치&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;가산기&lt;/b&gt; : 덧셈 연산 수행&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;보수기&lt;/b&gt; : 뺄셈 연산 수행, 1의 보수나 2의 보수 방식&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;시프터&lt;/b&gt; : 비트를 오른쪽이나 왼쪽으로 이동해 나눗셈과 곱셈 수행&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;관련 레지스터&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;누산기&lt;/b&gt; : 연산의 중간 결과 저장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;데이터 레지스터&lt;/b&gt; : 연산에 사용할 데이터 저장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;상태 레지스터&lt;/b&gt; : 연산 실행 결과로 나타나는 양수와 음수, 자리올림, 오버플로 상태 기억&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;제어 장치&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;내부장치&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;명령 해독기&lt;/b&gt; : 명령 레지스터에 있는 명령을 해독하여 부호기로 전송&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;부호기&lt;/b&gt; : 명령 해독기가 전송한 명령을 신호로 만들어 각 장치로 전송&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;주소 해독기&lt;/b&gt; : 명령 레지스터에 있는 주소를 해독하여 메모리의 실제 주소로 변환 후, 이를 데이터 레지스터에 저장&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;관련 레지스터&lt;/span&gt;&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;프로그램 카운터&lt;/b&gt; : 다음에 실행할 명령의 주소 저장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;명령 레지스터&lt;/b&gt; : 현재 실행 중인 명령을 저장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;메모리 주소 레지스터&lt;/b&gt; : 주기억장치의 번지를 저장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;메모리 버퍼 레지스터&lt;/b&gt; : 메모리 주소 레지스터에 저장된 주소의 실제 내용을 저장&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;레지스터의 종류와 용도 (16, 32bit)&lt;/span&gt;&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;범용 레지스터(General Register)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;: 연산 장치가 수행한 계산 결과의 임시 저장, 산술 및 논리 연산, 주소 색인 등 여러 목적으로 사용할 수 있는 레지스터&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;EAX, 누산기&lt;/span&gt;&lt;/b&gt; : 산술 연산에 사용, 함수의 결과 값 저장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;EBX, 베이스 레지스터&lt;/span&gt;&lt;/b&gt; : 특정 주소 저장, 주소 지정을 확대하는 인덱스로 사용&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;ECX, 카운트 레지스터&lt;/span&gt;&lt;/b&gt; : 반복적으로 실행되는 특정 명령에 사용, (루프 반복, 시프트 이동)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;EDX, 데이터 레지스터&lt;/span&gt;&lt;/b&gt; : 일반 자료를 저장 (입출력 동작에 사용)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;세그먼트 레지스터(Segment Register)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;: 각 세그먼트의 주소를 지정하는 레지스터&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;CS, 코드 세그먼트 레지스터&lt;/span&gt;&lt;/b&gt; : 실행할 기계 명령어가 저장된 메모리 주소를 지정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;DS, 데이터 세그먼트 레지스터&lt;/span&gt;&lt;/b&gt; : 프로그램에서 정의된 데이터, 상수, 작업 영역 메모리 주소 지정&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;SS, 스택 세그먼트 레지스터&lt;/span&gt;&lt;/b&gt; : 프로그램 스택 세그먼트의 시작 주소를 저장 메모리 상에 스택 구현을 가능하게 함&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;ES, FS, GS, 엑스트라 세그먼트 레지스터&lt;/span&gt;&lt;/b&gt; : 문자 연산과 추가 메모리를 지정하는데 사용하는 여분의 레지스터&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;// &lt;b&gt;세그먼트(Segment)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;: 프로그램에 정의한 메모리 상의 특정 영역으로 코드, 데이터, 스택 등을 포함. &lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;세그먼트는 메모리의 대부분에 위치할 수 있음.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;포인터 레지스터(Pointer Register)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;: 프로그램의 실행 과정에서 사용하는 주요 메모리 주소 값을 저장, 실제 메모리 상의 주소 참조&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;EBP, 베이스 포인터&lt;/span&gt;&lt;/b&gt; : SS 레지스터와 함께 사용하여 스택 안의 변수 값을 읽는데 사용.&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; 스택 세그먼트에서 현재 호출해서 사용하는 함수의 시작 주소 값을 저장 함수로 전달되는&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; 지역 변수 등을 참조할 때 기준이 되며, ESP 레지스터와 함께 써서 스택 프레임(Stack Frame)을&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; 형성하기도 한다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;ESP, 스택 포인터&lt;/span&gt;&lt;/b&gt; : SS 레지스터와 함께 사용하며, 스택의 가장 끝(하위) 주소를 가리킴 스택은 높은 주소에서 낮은 주소로&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;이동하면서 데이터를 저장하므로, 스택이 확장되면 스택 포인터도 높은 주소에서 낮은 주소로 값을 변경&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;EIP, 명령 포인터&lt;/span&gt;&lt;/b&gt; : 다음 명령어의 오프셋(상대 위치 주소)을 저장하며, 현재 실행 중인 코드 세그먼트에 속한&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; 현재 명령을 가리킴. CS 레지스터와 합쳐 다음에 수행할 명령 주소를 형성&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;인덱스 레지스터(Index Register)&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;: 데이터를 복사할 때 출발지와 목적지 주소를 가리키는 레지스터. 주로 메모리의 한 영역에서 다른 영역으로&lt;br /&gt;&amp;nbsp; 데이터를 연속적으로 복사할 때 사용&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;EDI, 목적지 인덱스&lt;/span&gt;&lt;/b&gt; : 목적지 주소 값 저장&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;ESI, 출발지 인덱스&lt;/span&gt;&lt;/b&gt; : 출발지 주소 값 저장&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;플래그 레지스터&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;: 32비트 크기를 가지고 있으며, 컴퓨터의 다양한 상태를 나타내는 비트를 포함&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;EFLAGS, 플래그 레지스터&lt;/span&gt;&lt;/b&gt; : 연산 결과 및 시스템 상태와 관련된 여러 가지 플래그 값 저장&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;** 사용 목적별 레지스터 맵핑&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;447&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TqfGt/btrVBRAmKzr/kuIDFzgEzPlRwGfDEXufY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TqfGt/btrVBRAmKzr/kuIDFzgEzPlRwGfDEXufY1/img.png&quot; data-alt=&quot;[사용 목적별 레지스터 맵핑]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TqfGt/btrVBRAmKzr/kuIDFzgEzPlRwGfDEXufY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTqfGt%2FbtrVBRAmKzr%2FkuIDFzgEzPlRwGfDEXufY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;447&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;447&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[사용 목적별 레지스터 맵핑]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;어셈블리어를 이용한 이름 출력&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;실습 환경&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Ubuntu 18.04.6 LTS (VM)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;시스템 정보&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Linux ubuntu 5.4.0-135-generic #152~18.04.2-Ubuntu SMP Tue Nov 29 08:23:49 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;1. nasm 설치&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;sudo apt-get install nasm
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;2. asm 파일 생성 및 수정&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;pre class=&quot;cpp&quot;&gt;&lt;code&gt;vi dodoh4t.asm
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;3. 코드 작성&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;pre class=&quot;awk&quot;&gt;&lt;code&gt;section .data
    msg: db &quot;Doyeon Kim (a.k.a. dodoh4t)&quot;,10
    len: equ $-msg
    
section .text
    global _start
_start:
    mov rax, 1     ;Syscall id 1 -&amp;gt; write
    mov rdi, 1     ;FD(File Descriptor) stdout
    mov rsi, msg   ;String address to write
    mov rdx, len   ;String length in bytes
    syscall        ;System call

_last:
    mov rax, 60    ;Syscall id 60 -&amp;gt; exit
    mov rdi, 0     ;Set exit code 0;
    syscall
&lt;/code&gt;&lt;/pre&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;section.data&lt;/span&gt;&lt;/b&gt; : 데이터 섹션. Static 변수, 상수를 지정 가능&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;msg, db, 10&lt;/span&gt;&lt;/b&gt; : msg는 변수명, db(define byte)는 타입, 10은 Escape Sequence(\n)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;equ $&lt;/span&gt;&lt;/b&gt; : len의 메모리 주소를 equ로 생성하여 -msg, 바로 전 코드에서 주소를 빼면 문자열 길이 확인 가능(byte)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;section.text&lt;/span&gt; &lt;/b&gt;: 명령어 주소에 대응하는 코드&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;global_start&lt;/span&gt;&lt;/b&gt; : 여러 파일을 컴파일 할 때 시작점(Entry Symbol)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;mov rax, 1&lt;/span&gt;&lt;/b&gt; : 1 값을 rax 레지스터에 저장 (1 : sys_write)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;mov rdi, 1&lt;/span&gt;&lt;/b&gt; : FD(File Descriptor, 1: Standard Output)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;mov rsi, msg&lt;/span&gt;&lt;/b&gt; : msg 변수의 주소를 가리키는 코드 행&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;mov rdx, len&lt;/span&gt;&lt;/b&gt; : 문자열의 길이(size_t count)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;mov rax, 60&lt;/span&gt;&lt;/b&gt; : 시스템콜 종료 (60 : exit)&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;mov rdi, 0&lt;/span&gt;&lt;/b&gt; : 에러 발생 X (return 0)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;종합&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;:: sys_write 를 호출하여 file descriptor 1인 stdout에 msg 변수를 문자열 개수만큼 출력&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;** Static 변수&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;: 프로그램 시작부터 끝까지 메모리에서 값을 유지하는 변수&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;4. 컴파일 및 링크&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;nasm -f elf64 -g dodoh4t.asm -o dodoh4t.o
ld -o dodoh4t dodoh4t.o
&lt;/code&gt;&lt;/pre&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;5. 실행 및 출력 값 확인&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;pre class=&quot;jboss-cli&quot;&gt;&lt;code&gt;./dodoh4t
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;658&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3f9zR/btrVA1ww4R5/RS6cRsFU5CmIXPQJzhlHg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3f9zR/btrVA1ww4R5/RS6cRsFU5CmIXPQJzhlHg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3f9zR/btrVA1ww4R5/RS6cRsFU5CmIXPQJzhlHg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3f9zR%2FbtrVA1ww4R5%2FRS6cRsFU5CmIXPQJzhlHg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;658&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;658&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;정상적으로 문자열 값이 출력되는 것을 확인할 수 있다 !&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>낙서장</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/147</guid>
      <comments>https://dyeonee.tistory.com/147#entry147comment</comments>
      <pubDate>Sun, 8 Jan 2023 19:25:21 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 58</title>
      <link>https://dyeonee.tistory.com/91</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;938&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6dZps/btrGbYf3p3P/ZxKAmhD8MdKUYD4aiSIRYK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6dZps/btrGbYf3p3P/ZxKAmhD8MdKUYD4aiSIRYK/img.png&quot; data-alt=&quot;[old 58 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6dZps/btrGbYf3p3P/ZxKAmhD8MdKUYD4aiSIRYK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6dZps%2FbtrGbYf3p3P%2FZxKAmhD8MdKUYD4aiSIRYK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;938&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;938&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 58 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 명령어를 실행할 수 있는(?) 화면이 보인다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- help 명령어를 실행한 결과 ls id flag help 명령어 4개가 출력되며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- flag 명령의 경우 admin만 실행 가능하다고 한다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 소스코드를 먼저 확인해봐야할 듯 하다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;소스코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;851&quot; data-origin-height=&quot;251&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cOqtRv/btrGaIkshml/IBKaHKVlTwtPhPKB6qxRJ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cOqtRv/btrGaIkshml/IBKaHKVlTwtPhPKB6qxRJ0/img.png&quot; data-alt=&quot;[old 58 - 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cOqtRv/btrGaIkshml/IBKaHKVlTwtPhPKB6qxRJ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcOqtRv%2FbtrGaIkshml%2FIBKaHKVlTwtPhPKB6qxRJ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;851&quot; height=&quot;251&quot; data-origin-width=&quot;851&quot; data-origin-height=&quot;251&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 58 - 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- username을 guest로 정의하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- socket.emit 함수를 통해 데이터를 전송하고, socket.on 함수를 통해 데이터를 수신받는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- socket.emit 함수의 cmd 이후 username 부분과 &amp;ldquo;:&amp;rdquo; 이후 뒷 부분은 수정하여 admin으로 flag가 실행되도록 유도한다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;socket.emit 코드 수정&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1263&quot; data-origin-height=&quot;798&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhZ8mW/btrF9hnZr2G/edCEeih0apvi0mC0GkAKOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhZ8mW/btrF9hnZr2G/edCEeih0apvi0mC0GkAKOk/img.png&quot; data-alt=&quot;[socket.emit 코드 수정]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhZ8mW/btrF9hnZr2G/edCEeih0apvi0mC0GkAKOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhZ8mW%2FbtrF9hnZr2G%2FedCEeih0apvi0mC0GkAKOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1263&quot; height=&quot;798&quot; data-origin-width=&quot;1263&quot; data-origin-height=&quot;798&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[socket.emit 코드 수정]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- +$(&amp;rsquo;m&amp;rsquo;).val() 부분을 삭제하고, &amp;lsquo;flag&amp;rsquo; 를 입력하여 admin으로 flag가 cmd에서 실행되도록 코드를 수정한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이후 command 입력창에 flag를 입력할 경우, FLAG 값이 출력된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 획득한 FLAG 값을 Auth 페이지에 입력하면 해당 문제를 solve 할 수 있다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/91</guid>
      <comments>https://dyeonee.tistory.com/91#entry91comment</comments>
      <pubDate>Mon, 20 Jun 2022 23:36:52 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 54</title>
      <link>https://dyeonee.tistory.com/90</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKcMYG/btrF8S2JHjw/sWFTIgReDoDrViMGW1Z1Kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKcMYG/btrF8S2JHjw/sWFTIgReDoDrViMGW1Z1Kk/img.png&quot; data-alt=&quot;[old 54 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKcMYG/btrF8S2JHjw/sWFTIgReDoDrViMGW1Z1Kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKcMYG%2FbtrF8S2JHjw%2FsWFTIgReDoDrViMGW1Z1Kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;296&quot; height=&quot;82&quot; data-origin-width=&quot;296&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 54 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Password is [ 문자 ] 부분이 JavaScript를 통해 빠르게 샤샤샥 지나간다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 육안으로는 FLAG 값을 외우기 힘들 정도로 빠른 속도로 지나간다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 소스코드를 확인해보도록 하자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;소스 코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1273&quot; data-origin-height=&quot;523&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/di6jBM/btrGaYgDKUh/lPTiMyiBMWhUN4oPMzCKuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/di6jBM/btrGaYgDKUh/lPTiMyiBMWhUN4oPMzCKuk/img.png&quot; data-alt=&quot;[old 54 - 소스 코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/di6jBM/btrGaYgDKUh/lPTiMyiBMWhUN4oPMzCKuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdi6jBM%2FbtrGaYgDKUh%2FlPTiMyiBMWhUN4oPMzCKuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1273&quot; height=&quot;523&quot; data-origin-width=&quot;1273&quot; data-origin-height=&quot;523&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 54 - 소스 코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- old 54 문제에서 JavaScript에 해당하는 소스코드는 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- run 함수와 answer 함수가 선언되어 있고 코드들이 쭉 나열되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- answer 부분이 결정적으로 FLAG 값을 불러와서 출력해주고 있는 부분인 것 같은데..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이번 문제는 코드를 해석하면서 수정해가며 풀이하지 않고, 개발자 도구의 &lt;b&gt;디버깅 기능&lt;/b&gt;을 통해 해결해보려 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Source 탭에서 run 함수의 시작 부분 행을 클릭하여 breakpoint를 설정한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;Source 탭 디버깅 기능을 통한 FLAG 값 획득&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

            &lt;figure class=&quot;unsupported component-kakaotv&quot; contenteditable=&quot;false&quot; style=&quot;background:#000;margin:16px 0;min-height:72px;padding:10px 16px;display:flex;align-items:center;justify-content:center;text-align:center;box-sizing:border-box;width:100%;max-width:100%;&quot;&gt;
                &lt;p contenteditable=&quot;false&quot; style=&quot;margin:0;color:#8a8a8a;font-size:13px;line-height:1.6;user-select:none;pointer-events:none;&quot;&gt;동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.&lt;/p&gt;
            &lt;/figure&gt;
        
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- run 함수의 선언 행에 Breakpoint 를 설정한 뒤 페이지를 새로고침한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이후 &lt;b&gt;Step over next function call (단축키 F10)&lt;/b&gt; 을 이용하여 다음 함수의 실행을 반복한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이후 후반의 answer 함수의 실행부터 FLAG 값이 한 글자씩 출력되며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- answer(1), answer(2,3,4 ..) 형태로 각 FLAG 자리값들을 알아낼 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 함수의 실행을 반복하며 FLAG 값을 획득 후 Auth 페이지에서 획득한 FLAG를 입력 시 문제를 solve할 수 있다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/90</guid>
      <comments>https://dyeonee.tistory.com/90#entry90comment</comments>
      <pubDate>Mon, 20 Jun 2022 23:34:30 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 51</title>
      <link>https://dyeonee.tistory.com/89</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c7nFJ0/btrF9hnWVTw/trvV8yebJQAAvftRWnbIg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c7nFJ0/btrF9hnWVTw/trvV8yebJQAAvftRWnbIg1/img.png&quot; data-alt=&quot;[old 51 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c7nFJ0/btrF9hnWVTw/trvV8yebJQAAvftRWnbIg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc7nFJ0%2FbtrF9hnWVTw%2FtrvV8yebJQAAvftRWnbIg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;424&quot; height=&quot;367&quot; data-origin-width=&quot;424&quot; data-origin-height=&quot;367&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 51 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Admin page 를 출력하며, ID와 PW를 입력할 수 있는 폼이 출력된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 소스코드를 확인해보도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;소스코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;184&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bw593E/btrF9BTZt8N/8MyhVEbrlrkWUK3CoUc5FK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bw593E/btrF9BTZt8N/8MyhVEbrlrkWUK3CoUc5FK/img.png&quot; data-alt=&quot;[old 51 - 소스 코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bw593E/btrF9BTZt8N/8MyhVEbrlrkWUK3CoUc5FK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbw593E%2FbtrF9BTZt8N%2F8MyhVEbrlrkWUK3CoUc5FK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;991&quot; height=&quot;184&quot; data-origin-width=&quot;991&quot; data-origin-height=&quot;184&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 51 - 소스 코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id 값에 대하여 addslashes 함수를 적용하고 있으며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- pw의 경우는 md5 함수가 적용되어 있고, 추가로 true 인자 값이 작성되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- admin 으로 로그인 성공하면 해당 문제가 solve 되는 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;md5 함수에 true 값 존재?&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;md5([입력 값],true) 형태의 함수는 실행 결과에 &lt;b&gt;&amp;lsquo;=&amp;rsquo; 문자열이 포함되면 해당 쿼리문이 참&lt;/b&gt;이 되는&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;취약점이 존재한다. 해당 소스코드를 예시로 살펴보면 입력받는 pw 값이 싱글 쿼터로 감싸져 있다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1656605812460&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pw='{$input_pw}'  // $input_pw = md5($_POST['pw'],true);

이때 md5(example,true)의 실행 결과로 '=' 값이 포함되어 있다면..
pw=''='' 형태가 되어 쿼리문에서의 결과가 참이 되는 것을 확인할 수 있다.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이러한 취약한 부분을 이용하여 무작위 정수 값을 md5 함수에 대입 후 해시화하여 &lt;b&gt;&amp;lsquo;=&amp;rsquo; 을 포함한 결과를 출력하는 정수 대입값을 pw 부분에 입력 시 쿼리 실행문이 참&lt;/b&gt;이 되어 로그인이 가능해진다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;lsquo;=&amp;rsquo; 을 포함한 값을 찾기 위해 Python의 hashlib 모듈을 이용해서 값을 찾아보도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;md5.py 작성 및 실행 결과&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1656605835648&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import hashlib

for i in range(0, 10000000):
    if b&quot;'='&quot; in hashlib.md5(str(i).encode()).digest():
        print('{}'.format(i))
        break&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;57&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXBpTc/btrF9QQU0kq/GBCXcnYSb65OHJPmwAiCF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXBpTc/btrF9QQU0kq/GBCXcnYSb65OHJPmwAiCF0/img.png&quot; data-alt=&quot;[md5.py &amp;amp;nbsp;작성]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXBpTc/btrF9QQU0kq/GBCXcnYSb65OHJPmwAiCF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXBpTc%2FbtrF9QQU0kq%2FGBCXcnYSb65OHJPmwAiCF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;729&quot; height=&quot;57&quot; data-origin-width=&quot;729&quot; data-origin-height=&quot;57&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[md5.py &amp;nbsp;작성]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 0부터 10000000 까지의 정수를 대입하여 md5 해시화를 진행한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이 중 &amp;lsquo;=&amp;rsquo; 을 포함하는 값을 print 하도록 for 문을 작성하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 실행 결과 &lt;b&gt;1839431&lt;/b&gt;을 출력하며 이는 md5 해시화 하였을 경우 &amp;lsquo;=&amp;rsquo; 값을 포함하는 정수이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 획득한 값을 이용해 메인 페이지에서 admin 계정으로 로그인을 시도하면.. &lt;b&gt;(ID : admin / PW : 1839431)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 성공적으로 문제를 solve 할 수 있다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/89</guid>
      <comments>https://dyeonee.tistory.com/89#entry89comment</comments>
      <pubDate>Mon, 20 Jun 2022 23:32:31 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 50</title>
      <link>https://dyeonee.tistory.com/88</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjjljj/btrF9RhYw0M/IYtoIcupsHK5iUUovR4ieK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjjljj/btrF9RhYw0M/IYtoIcupsHK5iUUovR4ieK/img.png&quot; data-alt=&quot;[old 50 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjjljj/btrF9RhYw0M/IYtoIcupsHK5iUUovR4ieK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcjjljj%2FbtrF9RhYw0M%2FIYtoIcupsHK5iUUovR4ieK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;404&quot; height=&quot;262&quot; data-origin-width=&quot;404&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 50 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- SQL Injection 문제이다. 최초 접속 시 id와 pw에 guest 값이 입력되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 소스 코드를 확인해보도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;소스 코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1053&quot; data-origin-height=&quot;311&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bN5nJo/btrGarDf5wQ/ECQl2O31CDpn5uRLdn4UMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bN5nJo/btrGarDf5wQ/ECQl2O31CDpn5uRLdn4UMk/img.png&quot; data-alt=&quot;[old 50 - 소스 코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bN5nJo/btrGarDf5wQ/ECQl2O31CDpn5uRLdn4UMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN5nJo%2FbtrGarDf5wQ%2FECQl2O31CDpn5uRLdn4UMk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1053&quot; height=&quot;311&quot; data-origin-width=&quot;1053&quot; data-origin-height=&quot;311&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 50 - 소스 코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id와 pw 값에 대해 &lt;b&gt;addslashes 함수가 적용&lt;/b&gt;되어 있으며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;mb_convert_encoding 함수&lt;/b&gt;를 통해 id 값에 대해 &lt;b&gt;euc-kr 을 utf-8 형식으로 인코딩&lt;/b&gt;한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 또한 &lt;b&gt;from과 pw, \, 공백, %, = 에 대해 preg_match 함수를 통해 필터링&lt;/b&gt;하고 있으며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id 값에 대해 &lt;b&gt;union 문자열을 대소문자 구별 없이 필터링&lt;/b&gt;하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- $result 의 lv 값이 3 이 되면 문제가 solve 되는 방식이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- lv 칼럼값을 출력하는 쿼리문이므로, union select를 이용해 lv이 3이 되도록 구문을 작성하면 될 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;실행되는 쿼리 구문을 살펴보았을 때, id=&amp;rsquo;/* and pw=md5(&amp;rsquo;*/union select 3#&amp;rsquo; 을 입력하여,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;lv이 3인 값을 출력하도록 유도하면 될 듯 하다. id 값에 싱글 쿼터와 주석의 시작 부분을 삽입하기에,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;이후 and pw=md5(&amp;rsquo; 부분 까지는 주석화가 되며, pw 값에 대해서는 union 문자열에 대한 필터링이&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;없으므로, union select 를 사용하여 값을 출력하게 유도해보자 !&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;주석 구문을 이용한 SQL Injection&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tXBz5/btrF9RCeml7/KfJgBHUwGrKs29GXPFPMEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tXBz5/btrF9RCeml7/KfJgBHUwGrKs29GXPFPMEk/img.png&quot; data-alt=&quot;[주석 구문을 이용한 SQL Injection]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tXBz5/btrF9RCeml7/KfJgBHUwGrKs29GXPFPMEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtXBz5%2FbtrF9RCeml7%2FKfJgBHUwGrKs29GXPFPMEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1104&quot; height=&quot;237&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[주석 구문을 이용한 SQL Injection]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 위 예제에서 사용한 구문에 대한 설명은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- ?id=%a1&amp;rsquo;&lt;b&gt;/*&amp;amp;pw=*/&lt;/b&gt;union select 3#&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id 값에 입력된 싱클 쿼터 이후 /* 주석을 통해 pw 값까지의 쿼리 구문을 주석화 시킨다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 싱글 쿼터 앞에 입력된 %a1 에 대해 아마 궁금한 점이 있을 것이다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;EUC-KR을 UTF-8로 인코딩 변환 시, addslashes 함수 우회 가능 취약점&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;PHP 에서 &lt;b&gt;멀티 바이트 문자(%a1~%fe)&lt;/b&gt; 처리 시 &lt;u&gt;멀티 바이트 문자 뒤에 \ 가 존재하는 경우&lt;/u&gt;,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;하나의 문자로 처리&lt;/b&gt;가 되는 문제가 있다. 즉 addslashes 함수로 인해 삽입된 &lt;b&gt;\ 앞에 의도적으로&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;멀티 바이트 문자를 삽입하면 \ 를 하나의 문자로 인식하여 무효화&lt;/b&gt;되어 addslashes 함수를 우회&lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 다시, SQL Injection 공격에 사용할 구문을 URL 인코딩 하여 작성한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- URL 인코딩 된 SQL Injection 페이로드는 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;?id=%a1%27%2F%2A&amp;amp;pw=%2A%2Funion%09select%093%23&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 공백에 대한 필터링의 경우 %09 (Tab) 을 이용하여 우회한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 페이로드 작성 후 페이지 이동 시, 성공적으로 문제를 solve 할 수 있다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/88</guid>
      <comments>https://dyeonee.tistory.com/88#entry88comment</comments>
      <pubDate>Mon, 20 Jun 2022 23:31:42 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 34</title>
      <link>https://dyeonee.tistory.com/87</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;542&quot; data-origin-height=&quot;157&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhxoYG/btrF9ZGFo9I/PI2WoR4fhXL3iIpZiT0vi1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhxoYG/btrF9ZGFo9I/PI2WoR4fhXL3iIpZiT0vi1/img.png&quot; data-alt=&quot;[old 34 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhxoYG/btrF9ZGFo9I/PI2WoR4fhXL3iIpZiT0vi1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhxoYG%2FbtrF9ZGFo9I%2FPI2WoR4fhXL3iIpZiT0vi1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;542&quot; height=&quot;157&quot; data-origin-width=&quot;542&quot; data-origin-height=&quot;157&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 34 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 문제 페이지에 최초 접속 시 debug me 창을 출력한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 확인 버튼을 클릭할 경우 페이지에는 아무 것도 표시되지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 소스코드를 확인해봐야할 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;페이지 소스코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1499&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8mGW1/btrGbeQSlAn/wo2Db7rofwVkpm2oYhmeOK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8mGW1/btrGbeQSlAn/wo2Db7rofwVkpm2oYhmeOK/img.png&quot; data-alt=&quot;[페이지 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8mGW1/btrGbeQSlAn/wo2Db7rofwVkpm2oYhmeOK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8mGW1%2FbtrGbeQSlAn%2Fwo2Db7rofwVkpm2oYhmeOK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1499&quot; height=&quot;271&quot; data-origin-width=&quot;1499&quot; data-origin-height=&quot;271&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[페이지 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 개발자 도구를 이용하여 페이지 소스코드를 확인해본 결과 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 일반적으로 알아보기 힘들게 JavaScript 가 난독화가 되어 있는 모습을 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 해당 코드 상태로는 코드에 대한 해석이 어려우므로 이전 문제 풀이때 종종 사용하였던&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- JavaScript 난독화 해제 사이트를 이용하여 코드의 가독성을 개선해보도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;a href=&quot;https://beautifier.io/&quot;&gt;https://beautifier.io/&lt;/a&gt; 사이트를 이용하여 해당 코드를 변환하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;JavaScript 난독화 해제&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;577&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnKeXs/btrGb8pp7AU/REFPORNJkM84DzaoU6A4q0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnKeXs/btrGb8pp7AU/REFPORNJkM84DzaoU6A4q0/img.png&quot; data-alt=&quot;[JavaScript 난독화 해제]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnKeXs/btrGb8pp7AU/REFPORNJkM84DzaoU6A4q0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnKeXs%2FbtrGb8pp7AU%2FREFPORNJkM84DzaoU6A4q0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1028&quot; height=&quot;577&quot; data-origin-width=&quot;1028&quot; data-origin-height=&quot;577&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[JavaScript 난독화 해제]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 코드를 복사하여 해당 사이트에 붙여넣기 후 Ctrl + Enter 를 입력하면 코드를 변환할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 변환된 전체 코드도 내용적으로 이해가 잘 되는 코드는 아니었다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 문제 풀이에 있어 눈길이 가는 부분을 코드를 내리며 쭉 확인하다가 setInterval 함수 부분이 눈에 들어왔다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- if 문을 통해 조건이 일치하면 location 함수가 실행되며, 조건이 거짓이 되는 경우 alert 가 출력된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 먼저 alert의 경우 어떤 내용인지 확인해보기 위해 해당 부분만 Console에서 따로 실행해보도록 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;else문 alert 실행&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;646&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgRqSk/btrGbuGfjne/0hiqkrzkn2so1Cc4Km4GW1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgRqSk/btrGbuGfjne/0hiqkrzkn2so1Cc4Km4GW1/img.png&quot; data-alt=&quot;[else문 alert 실행]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgRqSk/btrGbuGfjne/0hiqkrzkn2so1Cc4Km4GW1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgRqSk%2FbtrGbuGfjne%2F0hiqkrzkn2so1Cc4Km4GW1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;646&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;646&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[else문 alert 실행]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- else 문의 alert 를 단독으로 실행한 결과 페이지에 처음 접근했을 때 출력된 debug me 창이 출력되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- if 문의 조건이 만족되었을 때 실행되는 location 부분이 더 유력해지는 포인트인 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- if 문의 조건문이 참이 되었을 경우 실행되는 location 함수 부분을 따로 실행시켜보도록 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;if 문 location 부분 실행&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;678&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLpY3y/btrF9SHRaQG/zIFIZkVcSovCPGOTAUAetK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLpY3y/btrF9SHRaQG/zIFIZkVcSovCPGOTAUAetK/img.png&quot; data-alt=&quot;[if 문 location 부분 실행]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLpY3y/btrF9SHRaQG/zIFIZkVcSovCPGOTAUAetK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLpY3y%2FbtrF9SHRaQG%2FzIFIZkVcSovCPGOTAUAetK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1920&quot; height=&quot;678&quot; data-origin-width=&quot;1920&quot; data-origin-height=&quot;678&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[if 문 location 부분 실행]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- location 함수 부분을 단독으로 Console 에서 실행할 경우,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 문제가 성공적으로 solve 됨을 확인할 수 있다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/87</guid>
      <comments>https://dyeonee.tistory.com/87#entry87comment</comments>
      <pubDate>Mon, 20 Jun 2022 23:29:16 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 33</title>
      <link>https://dyeonee.tistory.com/86</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rIg5V/btrGaXhwOrm/a9oBuGRb1qsVyN7hlMOGik/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rIg5V/btrGaXhwOrm/a9oBuGRb1qsVyN7hlMOGik/img.png&quot; data-alt=&quot;[old 33 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rIg5V/btrGaXhwOrm/a9oBuGRb1qsVyN7hlMOGik/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrIg5V%2FbtrGaXhwOrm%2Fa9oBuGRb1qsVyN7hlMOGik%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;454&quot; height=&quot;169&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;169&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 33 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 첫 문제 페이지의 소스 코드이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- GET 파라미터 값으로 &lt;b&gt;get = hehe&lt;/b&gt;를 입력하면, 앵커 태그로 Next 링크가 출력된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Next 를 클릭하여 이동 시 lv2.php 페이지로 이동할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;lv2.php 소스코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;187&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKg4ho/btrF75OTqlI/sAtfxp4qQ2M50evfrE7601/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKg4ho/btrF75OTqlI/sAtfxp4qQ2M50evfrE7601/img.png&quot; data-alt=&quot;[lv2.php 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKg4ho/btrF75OTqlI/sAtfxp4qQ2M50evfrE7601/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKg4ho%2FbtrF75OTqlI%2FsAtfxp4qQ2M50evfrE7601%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;691&quot; height=&quot;187&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;187&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[lv2.php 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- hehe 를 참 좋아하는 것 같다.. 이번에는 POST 방식으로 hehe를 보내라고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Burp Suite를 이용하여 패킷을 POST 패킷 형태로 변조하여 Forward 시켜주도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;Burp Suite를 이용한 패킷 변조&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1876&quot; data-origin-height=&quot;930&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oI83O/btrGb8bNxQo/V8ZXOlFKMbRFyG0ayqpA8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oI83O/btrGb8bNxQo/V8ZXOlFKMbRFyG0ayqpA8k/img.png&quot; data-alt=&quot;[Burp Suite를 이용한 패킷 변조]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oI83O/btrGb8bNxQo/V8ZXOlFKMbRFyG0ayqpA8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoI83O%2FbtrGb8bNxQo%2FV8ZXOlFKMbRFyG0ayqpA8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1876&quot; height=&quot;930&quot; data-origin-width=&quot;1876&quot; data-origin-height=&quot;930&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[Burp Suite를 이용한 패킷 변조]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 페이지를 새로 고침한 뒤 새로고침으로 로드되는 GET 패킷을 Intercept 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Method 부분을 POST로 수정하고, Content-Length와 Content-Type 부분을 추가 작성한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 또한 Body 부분에 앞서 페이지 소스코드에서 확인한 조건에 맞게 값을 입력한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;REMOTE_ADDR 입력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;167&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cV7ozf/btrGaW31wm7/SKXPwGhoHIyuMu5jkfC7x0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cV7ozf/btrGaW31wm7/SKXPwGhoHIyuMu5jkfC7x0/img.png&quot; data-alt=&quot;[REMOTE_ADDR 입력]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cV7ozf/btrGaW31wm7/SKXPwGhoHIyuMu5jkfC7x0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcV7ozf%2FbtrGaW31wm7%2FSKXPwGhoHIyuMu5jkfC7x0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;611&quot; height=&quot;167&quot; data-origin-width=&quot;611&quot; data-origin-height=&quot;167&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[REMOTE_ADDR 입력]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 또(?) 문제가 등장했다.. 조금 귀찮아진다 여기서부터는..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- myip 파라미터 값으로 사용자의 remote_addr 즉 &lt;b&gt;외부 ip를 입력&lt;/b&gt;해줘야한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 사용자의 외부 ip의 경우 &lt;a href=&quot;https://www.findip.kr/&quot;&gt;https://www.findip.kr/&lt;/a&gt; 를 통해 쉽게 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- GET 파라미터 값으로 &lt;b&gt;myip=[사용자 외부 ip]&lt;/b&gt;를 입력하면 다음 단계로 넘어갈 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;md5(time()) 값 입력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;176&quot; data-origin-height=&quot;39&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1Hyad/btrF9hg1rUV/72wdkHukzoimf2yzHcYFZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1Hyad/btrF9hg1rUV/72wdkHukzoimf2yzHcYFZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1Hyad/btrF9hg1rUV/72wdkHukzoimf2yzHcYFZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1Hyad%2FbtrF9hg1rUV%2F72wdkHukzoimf2yzHcYFZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;176&quot; height=&quot;39&quot; data-origin-width=&quot;176&quot; data-origin-height=&quot;39&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qhnsS/btrGb6SANXs/frnqnyT3C1vIPXrUs5yWD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qhnsS/btrGb6SANXs/frnqnyT3C1vIPXrUs5yWD1/img.png&quot; data-alt=&quot;[md5(time()) 값 입력]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qhnsS/btrGb6SANXs/frnqnyT3C1vIPXrUs5yWD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqhnsS%2FbtrGb6SANXs%2FfrnqnyT3C1vIPXrUs5yWD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;543&quot; height=&quot;162&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[md5(time()) 값 입력]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 또(?) 문제가 등장했다.. 진짜 끝이 없다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이번에는 password 파라미터 값으로 md5(time()) 값을 입력해줘야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- hint 값에 대하여 md5 해시 암호화를 하여 password 값으로 입력해줘야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 그러나, time 의 경우 시간이 지날 수록 계속 값이 변화하여 처음 화면에서 출력한 값을 md5 해시화를 해서&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; 입력하면 시간이 지나가 문제를 해결할 수 없다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 따라서 넉넉하게 &lt;b&gt;hint 값에서 +30&lt;/b&gt; 정도를 한 값을 미리 계산하여 URL에 입력 후 시간이 맞을 때까지 새로고침해준다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- md5 의 경우 &lt;b&gt;Python의 hashlib 모듈&lt;/b&gt;을 이용하거나, &lt;b&gt;md5 해시 암호화를 해주는 웹 사이트&lt;/b&gt; 등을 이용하도록 한다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;GET, POST, COOKIE&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;155&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8XGiK/btrGaXIA5KI/pniiiEsCRajoLAVlAxwwyK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8XGiK/btrGaXIA5KI/pniiiEsCRajoLAVlAxwwyK/img.png&quot; data-alt=&quot;[GET, POST, COOKIE]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8XGiK/btrGaXIA5KI/pniiiEsCRajoLAVlAxwwyK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8XGiK%2FbtrGaXIA5KI%2FpniiiEsCRajoLAVlAxwwyK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;750&quot; height=&quot;155&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;155&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[GET, POST, COOKIE]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- GET 파라미터로 imget 값을, POST 파라미터로 impost 값을, COOKIE 값으로 imcookie를 요구한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 정말 가면 갈 수록 귀찮아지는 문제인 듯 하다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 다시 한 번 Burp Suite를 이용하여 패킷을 변조해주도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;imcookie 생성 및 패킷 변조&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1162&quot; data-origin-height=&quot;566&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/duA7Hl/btrF9gh4SCB/dQgzuOwmTDujuXNXKq1Zb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/duA7Hl/btrF9gh4SCB/dQgzuOwmTDujuXNXKq1Zb1/img.png&quot; data-alt=&quot;[imcookie 생성 및 패킷 변조]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/duA7Hl/btrF9gh4SCB/dQgzuOwmTDujuXNXKq1Zb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FduA7Hl%2FbtrF9gh4SCB%2FdQgzuOwmTDujuXNXKq1Zb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1162&quot; height=&quot;566&quot; data-origin-width=&quot;1162&quot; data-origin-height=&quot;566&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[imcookie 생성 및 패킷 변조]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Cookie 헤더에 &lt;b&gt;imcookie=1&lt;/b&gt; 을 작성하여 imcookie 값을 생성해주고,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Method는 POST 방식으로 변조 후, URL 뒤에 &lt;b&gt;?imget=1&lt;/b&gt; 을 추가 작성하여, GET 파라미터 조건도 만족시켜준다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 또한 앞서 했던 방법과 동일하게 Content-Length와 Content-Type 부분을 작성 후, Body 부분에 impost 값을 입력해준다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;cookie 값 및 POST 파라미터 값 요구&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1079&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yChxh/btrGb6SATBV/HsowMoSZdZKsyQCTO7Duo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yChxh/btrGb6SATBV/HsowMoSZdZKsyQCTO7Duo0/img.png&quot; data-alt=&quot;[cookie 값 및 POST 파라미터 값 요구]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yChxh/btrGb6SATBV/HsowMoSZdZKsyQCTO7Duo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyChxh%2FbtrGb6SATBV%2FHsowMoSZdZKsyQCTO7Duo0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1079&quot; height=&quot;165&quot; data-origin-width=&quot;1079&quot; data-origin-height=&quot;165&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[cookie 값 및 POST 파라미터 값 요구]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이쯤 되면 문제가 끝이 없어보인다. 또 나왔다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- test 쿠키 값으로 md5 해시화된 REMOTE_ADDR 값을 요구하고, POST 파라미터 값으로 md5 해시화된 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; HTTP_USER_AGENT 값을 요구하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;cookie 값 설정 및 kk 값 입력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;577&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OkUaY/btrF9CeaCn6/SrBTkowKGiaVtkzCrZBrvK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OkUaY/btrF9CeaCn6/SrBTkowKGiaVtkzCrZBrvK/img.png&quot; data-alt=&quot;[cookie 값 설정 및 kk 값 입력]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OkUaY/btrF9CeaCn6/SrBTkowKGiaVtkzCrZBrvK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOkUaY%2FbtrF9CeaCn6%2FSrBTkowKGiaVtkzCrZBrvK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1172&quot; height=&quot;577&quot; data-origin-width=&quot;1172&quot; data-origin-height=&quot;577&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[cookie 값 설정 및 kk 값 입력]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- test 쿠키 값으로 md5 해시화된 사용자의 외부 ip 값을 입력해주고, POST 파라미터 값으로 md5 해시화된 User-Agent 값을 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; 입력하여 패킷을 Forward 해주도록 한다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 오탈자에 주의하여 각 헤더와 값 부분을 입력해주도록 하자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;str_replace 적용 REMOTE_ADDR 입력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;173&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/czzWSy/btrGaqEg7fE/ju796qFBxfA3a0kyHZYLIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/czzWSy/btrGaqEg7fE/ju796qFBxfA3a0kyHZYLIk/img.png&quot; data-alt=&quot;[str_replace 적용 REMOTE_ADDR 입력]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/czzWSy/btrGaqEg7fE/ju796qFBxfA3a0kyHZYLIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FczzWSy%2FbtrGaqEg7fE%2Fju796qFBxfA3a0kyHZYLIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;734&quot; height=&quot;173&quot; data-origin-width=&quot;734&quot; data-origin-height=&quot;173&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[str_replace 적용 REMOTE_ADDR 입력]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- str_replace 함수를 통해 사용자의 외부 ip에 대해 &lt;b&gt;. 을 공백으로 치환&lt;/b&gt;하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- GET 파라미터 값으로 $_SERVER[&amp;rsquo;REMOTE_ADDR&amp;rsquo;]] = $_SERVER[&amp;rsquo;REMOTE_ADDR&amp;rsquo;] 을 받는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 따라서 파라미터 값 형식은 &lt;b&gt;?xxxxxxxxxxxx=xxxxxxxxxxxx&lt;/b&gt; 형식이 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 앞서 확인한 사용자의 외부 ip를 . 을 제외하고 그대로 입력해주면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;addr 값에 127.0.0.1 입력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;455&quot; data-origin-height=&quot;199&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v7x6X/btrF7678R76/G1fGmwwpJ1deNKIh9FUk70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v7x6X/btrF7678R76/G1fGmwwpJ1deNKIh9FUk70/img.png&quot; data-alt=&quot;[addr 값에 127.0.0.1 입력]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v7x6X/btrF7678R76/G1fGmwwpJ1deNKIh9FUk70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv7x6X%2FbtrF7678R76%2FG1fGmwwpJ1deNKIh9FUk70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;455&quot; height=&quot;199&quot; data-origin-width=&quot;455&quot; data-origin-height=&quot;199&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[addr 값에 127.0.0.1 입력]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 생각보다 갑자기 너무 간단해졌다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- GET 파라미터 값으로 addr 값을 입력받는 데, 이 값이 127.0.0.1 이 되면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;?addr=127.0.0.1&lt;/b&gt; 을 작성해주면 바로 넘어갈 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;$answer 값 입력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/KCUsm/btrF90etLuy/n6Pn4qkmM0MxsjOCYBKBh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/KCUsm/btrF90etLuy/n6Pn4qkmM0MxsjOCYBKBh0/img.png&quot; data-alt=&quot;[$answer 값 입력]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/KCUsm/btrF90etLuy/n6Pn4qkmM0MxsjOCYBKBh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FKCUsm%2FbtrF90etLuy%2Fn6Pn4qkmM0MxsjOCYBKBh0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;504&quot; height=&quot;229&quot; data-origin-width=&quot;504&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[$answer 값 입력]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- for 문을 통해 answer 변수를 선언하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 97부터 122까지 $i=$i+2를 반복하며 chr 함수를 통해 아스키 코드를 문자열로 입력하는 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- PHP Compiler 사이트를 통해 해당 for 문을 그대로 돌려서 빠르게 $answer 값을 확인해보자.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;PHP Compiler를 통한 $answer 값 확인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;547&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z7T3X/btrF5Pk0L8P/4DkOikU54DMLGTgZNY6DOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z7T3X/btrF5Pk0L8P/4DkOikU54DMLGTgZNY6DOk/img.png&quot; data-alt=&quot;[PHP Compiler를 통한 $answer 값 확인]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z7T3X/btrF5Pk0L8P/4DkOikU54DMLGTgZNY6DOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz7T3X%2FbtrF5Pk0L8P%2F4DkOikU54DMLGTgZNY6DOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1231&quot; height=&quot;547&quot; data-origin-width=&quot;1231&quot; data-origin-height=&quot;547&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[PHP Compiler를 통한 $answer 값 확인]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- PHP Compiler 웹 사이트를 이용하여 해당 for문을 빠르게 실행해보도록 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- $answer 변수 값을 확인할 수 있으며 해당 문자열을 복사하여 ans 값에 입력해주도록 한다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;참고) &lt;a href=&quot;https://www.w3schools.com/php/phptryit.asp?filename=tryphp_compiler&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://www.w3schools.com/php/phptryit.asp?filename=tryphp_compiler&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1656593242478&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;PHP Tryit Editor v1.2&quot; data-og-description=&quot;&amp;lt;!--?php $txt = &amp;quot;PHP&amp;quot;; echo &amp;quot;I love $txt!&amp;quot;; ?--&amp;gt;&quot; data-og-host=&quot;www.w3schools.com&quot; data-og-source-url=&quot;https://www.w3schools.com/php/phptryit.asp?filename=tryphp_compiler&quot; data-og-url=&quot;https://www.w3schools.com/php/phptryit.asp?filename=tryphp_compiler&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/S0j91/hyOVZSlxkt/jyeukwyda06X5HwFX973Hk/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200&quot;&gt;&lt;a href=&quot;https://www.w3schools.com/php/phptryit.asp?filename=tryphp_compiler&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.w3schools.com/php/phptryit.asp?filename=tryphp_compiler&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/S0j91/hyOVZSlxkt/jyeukwyda06X5HwFX973Hk/img.png?width=200&amp;amp;height=200&amp;amp;face=0_0_200_200');&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;PHP Tryit Editor v1.2&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;lt;!--?php $txt = &quot;PHP&quot;; echo &quot;I love $txt!&quot;; ?--&amp;gt;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.w3schools.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;answerip/{$answer}_{$ip}.php 접근&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;301&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m3dC6/btrF6JSo4vA/UTHLea3k7GKjmyrUhhTOTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m3dC6/btrF6JSo4vA/UTHLea3k7GKjmyrUhhTOTk/img.png&quot; data-alt=&quot;[answerip/{$answer}_{$ip}.php 접근]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m3dC6/btrF6JSo4vA/UTHLea3k7GKjmyrUhhTOTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm3dC6%2FbtrF6JSo4vA%2FUTHLea3k7GKjmyrUhhTOTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;696&quot; height=&quot;301&quot; data-origin-width=&quot;696&quot; data-origin-height=&quot;301&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[answerip/{$answer}_{$ip}.php 접근]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- $ip와 $answer 값을 알아내어 fopen 함수에 작성된 경로의 .php 페이지로 접근하면 될 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 그대로 앞서 사용한 PHP Compiler 를 이용해 $ip 변수에 자신의 외부 ip 주소를 입력하여 값을 알아내본다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;PHP Compiler를 이용한 $answer, $ip 값 획득&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1371&quot; data-origin-height=&quot;234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/N9ctN/btrF8QRuNlT/0ipoKYk9yUj4iyTg8DXKMK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/N9ctN/btrF8QRuNlT/0ipoKYk9yUj4iyTg8DXKMK/img.png&quot; data-alt=&quot;[PHP Compiler를 이용한 $answer, $ip 값 획득]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/N9ctN/btrF8QRuNlT/0ipoKYk9yUj4iyTg8DXKMK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FN9ctN%2FbtrF8QRuNlT%2F0ipoKYk9yUj4iyTg8DXKMK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1371&quot; height=&quot;234&quot; data-origin-width=&quot;1371&quot; data-origin-height=&quot;234&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[PHP Compiler를 이용한 $answer, $ip 값 획득]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 실행 결과로 &lt;b&gt;answerip/27553775775_5510755155&lt;/b&gt;를 출력함을 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- answerip/27553775775_5510755155.php 를 URL에 추가 입력하여 해당 php 페이지에 접근 시&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 성공적으로 문제를 solve 할 수 있다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/86</guid>
      <comments>https://dyeonee.tistory.com/86#entry86comment</comments>
      <pubDate>Mon, 20 Jun 2022 23:28:07 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 32</title>
      <link>https://dyeonee.tistory.com/85</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;643&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRmqIp/btrF3igzJdL/Y6Mw4KWIdMrb0fdMtWaxuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRmqIp/btrF3igzJdL/Y6Mw4KWIdMrb0fdMtWaxuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRmqIp/btrF3igzJdL/Y6Mw4KWIdMrb0fdMtWaxuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRmqIp%2FbtrF3igzJdL%2FY6Mw4KWIdMrb0fdMtWaxuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;570&quot; height=&quot;643&quot; data-origin-width=&quot;570&quot; data-origin-height=&quot;643&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;386&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dXvXTo/btrF3hvbWnq/p7NnAaO0srlDMMc2CHpAcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dXvXTo/btrF3hvbWnq/p7NnAaO0srlDMMc2CHpAcK/img.png&quot; data-alt=&quot;[old 32 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dXvXTo/btrF3hvbWnq/p7NnAaO0srlDMMc2CHpAcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdXvXTo%2FbtrF3hvbWnq%2Fp7NnAaO0srlDMMc2CHpAcK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;535&quot; height=&quot;386&quot; data-origin-width=&quot;535&quot; data-origin-height=&quot;386&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 32 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- userid와 각 랭킹들이 표시된 랭킹 화면이 길게 쭉 출력되어 있다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- NAME에는 각 user들의 id 들이 입력되어 있고 자신의 webhacking.kr ID를 검색해보면 하단에 귀엽게(?) 위치해있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 아이디를 클릭 시, Hit가 1 올라가며 그에 상응하는 랭크가 상승한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;hit 파라미터 값에 클릭한 아이디 노출&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1586&quot; data-origin-height=&quot;418&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKJylX/btrF3ZA1iuv/kK9vtgNQPWDPJxB8TToHU0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKJylX/btrF3ZA1iuv/kK9vtgNQPWDPJxB8TToHU0/img.png&quot; data-alt=&quot;[hit 파라미터 값에 클릭한 아이디 노출]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKJylX/btrF3ZA1iuv/kK9vtgNQPWDPJxB8TToHU0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKJylX%2FbtrF3ZA1iuv%2FkK9vtgNQPWDPJxB8TToHU0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1586&quot; height=&quot;418&quot; data-origin-width=&quot;1586&quot; data-origin-height=&quot;418&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[hit 파라미터 값에 클릭한 아이디 노출]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- vote 한 아이디에 대해 URL 상으로 hit 파라미터 값이 노출된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- vote는 한 번만 가능하며, 추가적으로 vote시 you already voted를 출력하며, hit를 +1 할 수 없다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이를 우회하여 자신의 id의 hit 를 100까지 상승시키면 solve 될 듯 하다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;vote_check 쿠키를 통한 중복 vote 검증&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;147&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byc4Tk/btrF5IkupCX/ImcKUJ56OBN46CQxotKPrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byc4Tk/btrF5IkupCX/ImcKUJ56OBN46CQxotKPrk/img.png&quot; data-alt=&quot;[vote_check 쿠키를 통한 중복 vote 검증]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byc4Tk/btrF5IkupCX/ImcKUJ56OBN46CQxotKPrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbyc4Tk%2FbtrF5IkupCX%2FImcKUJ56OBN46CQxotKPrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;843&quot; height=&quot;147&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;147&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[vote_check 쿠키를 통한 중복 vote 검증]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 투표 여부를 어떤 방식으로 검증할까? 생각해보던 중 가장 먼저 생각난 방식.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 바로 &lt;b&gt;쿠키를 통한 기투표 여부를 확인&lt;/b&gt;하는 것이다 !!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 예상대로 개발자 도구를 통해서 vote 후의 쿠키 상태를 보니, &lt;b&gt;vote_check 쿠키가 새로 생성&lt;/b&gt;되어있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 중복 vote에 대한 검증을 어떤 방식을 통해 진행하는지 알았으니, 이제 이를 우회하여 hit를 올려보자 !&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;Burp Suite를 통한 Vote Packet Intercept&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1879&quot; data-origin-height=&quot;795&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rJtpu/btrF7eb6Vx8/KZPDXdZYKEAucFAVg1Htc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rJtpu/btrF7eb6Vx8/KZPDXdZYKEAucFAVg1Htc1/img.png&quot; data-alt=&quot;[Burp Suite를 통한 Vote Packet Intercept]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rJtpu/btrF7eb6Vx8/KZPDXdZYKEAucFAVg1Htc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrJtpu%2FbtrF7eb6Vx8%2FKZPDXdZYKEAucFAVg1Htc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1879&quot; height=&quot;795&quot; data-origin-width=&quot;1879&quot; data-origin-height=&quot;795&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[Burp Suite를 통한 Vote Packet Intercept]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- vote 시 패킷을 Burp Suite 로 Intercept 하여 변조한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Cookie 헤더에 포함되어 있는 &lt;b&gt;vote_check 쿠키를 삭제&lt;/b&gt;하여 패킷을 Forward 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이후 랭킹을 확인해보면, already vote 창이 출력되지 않고 그대로 hit가 +1 되는 것을 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Hit를 100까지 반복적으로 올리기 위해 방금 변조한 vote 패킷을 &lt;b&gt;Repeater 기능을 이용하여 반복 전송&lt;/b&gt;한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;Repeater 기능을 통한 Packet 반복 전송&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;829&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfHstM/btrF4Eo2HCk/lvKNW4tVRnvRjcx8kFW0U0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfHstM/btrF4Eo2HCk/lvKNW4tVRnvRjcx8kFW0U0/img.png&quot; data-alt=&quot;[Repeater 기능을 통한 Packet 반복 전송]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfHstM/btrF4Eo2HCk/lvKNW4tVRnvRjcx8kFW0U0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfHstM%2FbtrF4Eo2HCk%2FlvKNW4tVRnvRjcx8kFW0U0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1219&quot; height=&quot;829&quot; data-origin-width=&quot;1219&quot; data-origin-height=&quot;829&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[Repeater 기능을 통한 Packet 반복 전송]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- vote 패킷을 Send to Repeater 를 클릭하여 Repeater 탭에 추가한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 앞서 변조한 내용과 동일하게 Cookie 헤더에서 vote_check 값을 삭제 후 Send 버튼을 &lt;u&gt;총 99번 반복&lt;/u&gt;하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 생각보다 노가다(?)성 작업이긴 하지만, 스트레스 풀겸 99번 마우스를 클릭 클릭하다보면 금방 완료된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;Hit 100 달성 및 solve&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;455&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/luOxd/btrF5PQ8Yyn/0tYoPPZqWnlgHrOtKKxM81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/luOxd/btrF5PQ8Yyn/0tYoPPZqWnlgHrOtKKxM81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/luOxd/btrF5PQ8Yyn/0tYoPPZqWnlgHrOtKKxM81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FluOxd%2FbtrF5PQ8Yyn%2F0tYoPPZqWnlgHrOtKKxM81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;495&quot; height=&quot;455&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;455&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Repeater를 통해 열심히 사용자 id의 Hit Count를 100까지 반복 증가시켜준다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Hit Count가 100이 달성되는 순간, 해당 문제가 solve 되는 것을 확인할 수 있다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/85</guid>
      <comments>https://dyeonee.tistory.com/85#entry85comment</comments>
      <pubDate>Mon, 20 Jun 2022 23:27:24 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 27</title>
      <link>https://dyeonee.tistory.com/84</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;324&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lWWEh/btrE3Ma8n1P/c1CoyB6DehsKm09kvXWhIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lWWEh/btrE3Ma8n1P/c1CoyB6DehsKm09kvXWhIk/img.png&quot; data-alt=&quot;[old 27 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lWWEh/btrE3Ma8n1P/c1CoyB6DehsKm09kvXWhIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlWWEh%2FbtrE3Ma8n1P%2Fc1CoyB6DehsKm09kvXWhIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;324&quot; height=&quot;152&quot; data-origin-width=&quot;324&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 27 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- SQL Injection 문제라고 친절히 알려주고 있다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 무작정 시도해보기 전에 쿼리문이 어떤 형식으로 작성되어 있는지 확인해야하므로,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 소스코드를 빠르게 살펴보도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;소스코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1063&quot; data-origin-height=&quot;434&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmdv2e/btrE5iGEpXc/azQVYwi4IcLpqzLuNuEUHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmdv2e/btrE5iGEpXc/azQVYwi4IcLpqzLuNuEUHk/img.png&quot; data-alt=&quot;[old 27 - 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmdv2e/btrE5iGEpXc/azQVYwi4IcLpqzLuNuEUHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcmdv2e%2FbtrE5iGEpXc%2FazQVYwi4IcLpqzLuNuEUHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1063&quot; height=&quot;434&quot; data-origin-width=&quot;1063&quot; data-origin-height=&quot;434&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 27 - 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- GET Method로 no 값을 입력받고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- no 값에 대해 &lt;b&gt;preg_match 함수를 통해 #, select, 공백, limit 등을 대소문자 구분없이 필터링&lt;/b&gt;한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- no 값에 대하여 별도의 쿼터가 감싸져있지 않았으며, 대신 &lt;b&gt;소괄호&lt;/b&gt;로 한 번 감싸져있다!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;id 값이 admin&lt;/b&gt;이 되는 경우, 해당 문제가 solve 된다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;입력폼 대신 URL에 바로 no 값을 작성하여 전송&lt;/b&gt;하도록 한다. 처음 문제 풀이를 시도하면서 입력폼에&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;값들을 입력하여 SQL Injection을 시도하였다. 공백을 Tab (%09)가 아닌 %20을 사용하여 시도했는데,&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;입력폼에서 시도한 경우는 no hack이 출력되지 않았다가, URL에서 직접 입력한 경우 no hack이 출력&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;되었다. 입력폼에 %20을 단독으로 입력하여 submit 후 URL을 살펴보니 %2520으로 출력됨을 확인&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;할 수 있었다.. 따라서 필터링에 걸리지도 않지만, query error 도 덤으로 따라온다..&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;웬만하면 이런 문제들을 풀 때 GET 방식으로 파라미터 값을 받는 형식이라면, &lt;b&gt;URL 주소창에서&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;직접 페이로드를 입력&lt;/b&gt;하는 것이 좋을 듯 하다..!!!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;앞의 구문을 상쇄하는 구문 작성&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1496&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GVCrc/btrE4mpwU02/s5gE1g3kEWEX9OOI0uCKq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GVCrc/btrE4mpwU02/s5gE1g3kEWEX9OOI0uCKq1/img.png&quot; data-alt=&quot;[앞의 구문을 상쇄하는 구문 작성]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GVCrc/btrE4mpwU02/s5gE1g3kEWEX9OOI0uCKq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGVCrc%2FbtrE4mpwU02%2Fs5gE1g3kEWEX9OOI0uCKq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1496&quot; height=&quot;240&quot; data-origin-width=&quot;1496&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[앞의 구문을 상쇄하는 구문 작성]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 위 예제에서 사용한 구문은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;no=2)%09or%09id%09like%09%27admin%27--%09&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 앞서 소스코드에서 확인했듯이, no 값이 소괄호로 감싸져 있었으므로 기존 싱글쿼터 close 처럼 &lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;소괄호를 강제로&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; 닫아주는 부분이 필요하다. (사실 소괄호 간과하고 문제 푸는데 시간 많이 날렸다&amp;hellip;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- no 값에 guest의 no 값인 1을 피해서, &lt;b&gt;2를 입력&lt;/b&gt;하고 &lt;b&gt;소괄후를 닫은 후 or 구문을 이용&lt;/b&gt;하여 앞에 작성된&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &lt;b&gt;id=&amp;rsquo;guest&amp;rsquo; 부분을 무시&lt;/b&gt;할 수 있도록 &lt;b&gt;or%09id%09like%09&amp;lsquo;admin&amp;rsquo;%27--%09&lt;/b&gt;를 작성한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &amp;lsquo;admin&amp;rsquo; 이후 주석부분도 %23을 사용했었으나, 필터링에 막혀서 &lt;b&gt;--%09를 사용하여 주석화&lt;/b&gt;하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 구문을 입력 후 전송하면, 성공적으로 문제가 solve 되는 것을 확인할 수 있다!&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/84</guid>
      <comments>https://dyeonee.tistory.com/84#entry84comment</comments>
      <pubDate>Fri, 17 Jun 2022 18:41:20 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 26</title>
      <link>https://dyeonee.tistory.com/83</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;소스코드&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEAJOD/btrEYhoDpWV/iW2BWq7PbZXlFK7nUjJKKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEAJOD/btrEYhoDpWV/iW2BWq7PbZXlFK7nUjJKKk/img.png&quot; data-alt=&quot;[old 26 - 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEAJOD/btrEYhoDpWV/iW2BWq7PbZXlFK7nUjJKKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEAJOD%2FbtrEYhoDpWV%2FiW2BWq7PbZXlFK7nUjJKKk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;430&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 26 - 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- old 26 문제의 경우 문제 화면이 별도로 존재하지 않아 문제 화면을 생략하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- preg_match 함수를 통해 id 파라미터 값에 입력되는 문자열 중 admin 을 필터링 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id 파라미터 값을 URL Decode 하였을 때 admin 이 되는 경우 문제가 solve 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 생각보다 단순하고 금방 풀 수 있을 듯 하다 !!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;admin 문자열을 URL 인코딩 값으로 삽입&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beHwcM/btrEZcUGecS/2WbsNZsCa7RclK3X0dynOk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beHwcM/btrEZcUGecS/2WbsNZsCa7RclK3X0dynOk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beHwcM/btrEZcUGecS/2WbsNZsCa7RclK3X0dynOk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeHwcM%2FbtrEZcUGecS%2F2WbsNZsCa7RclK3X0dynOk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;748&quot; height=&quot;146&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;146&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bKzha7/btrEZbuF5As/ibRURbxEGjfJpuKS9fCG60/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bKzha7/btrEZbuF5As/ibRURbxEGjfJpuKS9fCG60/img.png&quot; data-alt=&quot;[admin 문자열을 URL 인코딩 값으로 삽입]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bKzha7/btrEZbuF5As/ibRURbxEGjfJpuKS9fCG60/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKzha7%2FbtrEZbuF5As%2FibRURbxEGjfJpuKS9fCG60%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;704&quot; height=&quot;116&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[admin 문자열을 URL 인코딩 값으로 삽입]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id 파라미터 값으로 admin 문자열을 URL 인코딩하여 삽입한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- URL 인코딩 표는 검색을 통해 쉽게 참고할 수 있으며, 위 예제에서 입력한 값은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;%61%64%6d%69%6e&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 값을 입력 후, 엔터를 치면&amp;hellip;.!!! no! 를 출력하며, 문제가 solve 되지 않는다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- no! 가 출력된 페이지의 URL을 확인해보니 id 값이 admin으로 입력되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- PHP 단에서 urldecode 함수가 실행되기 이전에, &lt;b&gt;브라우저 단에서 URL 디코딩이 먼저 실행&lt;/b&gt;된 듯 하다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 브라우저 단에서의 URL 디코딩을 고려하여, admin 문자열에 대한 &lt;b&gt;URL 인코딩을 2번 중첩&lt;/b&gt;하여 값을 넣어보도록 한다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;admin 문자열 URL 인코딩 x 2&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;348&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mIHeO/btrEZMaac46/0kqHA7gZf4BCwKi0QMLDYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mIHeO/btrEZMaac46/0kqHA7gZf4BCwKi0QMLDYk/img.png&quot; data-alt=&quot;[admin 문자열 URL 인코딩 x 2]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mIHeO/btrEZMaac46/0kqHA7gZf4BCwKi0QMLDYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmIHeO%2FbtrEZMaac46%2F0kqHA7gZf4BCwKi0QMLDYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;835&quot; height=&quot;348&quot; data-origin-width=&quot;835&quot; data-origin-height=&quot;348&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[admin 문자열 URL 인코딩 x 2]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- admin 문자열에 대해 URL 인코딩을 한 값에 대하여 한번 더 URL 인코딩을 진행한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 위 예제에서 이용한 URL 인코딩 사이트는 아래와 같다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 획득한 URL 더블 인코딩 텍스트를 복사한 후..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;참고) &lt;a href=&quot;https://www.convertstring.com/ko/EncodeDecode/UrlEncode&quot;&gt;https://www.convertstring.com/ko/EncodeDecode/UrlEncode&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1655387354831&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;URL 인코딩 - 온라인 URL 인코더&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.convertstring.com&quot; data-og-source-url=&quot;https://www.convertstring.com/ko/EncodeDecode/UrlEncode&quot; data-og-url=&quot;https://www.convertstring.com/ko/EncodeDecode/UrlEncode&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.convertstring.com/ko/EncodeDecode/UrlEncode&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.convertstring.com/ko/EncodeDecode/UrlEncode&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;URL 인코딩 - 온라인 URL 인코더&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.convertstring.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;id 값에 URL 더블 인코딩 텍스트 삽입&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1576&quot; data-origin-height=&quot;241&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byhcYi/btrEWG3ADHn/GgBKx6EgvikMx9RGUh0dXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byhcYi/btrEWG3ADHn/GgBKx6EgvikMx9RGUh0dXK/img.png&quot; data-alt=&quot;[id 값에 URL 더블 인코딩 텍스트 삽입]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byhcYi/btrEWG3ADHn/GgBKx6EgvikMx9RGUh0dXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyhcYi%2FbtrEWG3ADHn%2FGgBKx6EgvikMx9RGUh0dXK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1576&quot; height=&quot;241&quot; data-origin-width=&quot;1576&quot; data-origin-height=&quot;241&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[id 값에 URL 더블 인코딩 텍스트 삽입]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;%2561%2564%256d%2569%256e&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id 값에 앞서 획득한 URL 더블 인코딩 텍스트를 삽입하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 성공적으로 문제가 solve 되는 것을 확인할 수 있다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/83</guid>
      <comments>https://dyeonee.tistory.com/83#entry83comment</comments>
      <pubDate>Thu, 16 Jun 2022 22:51:21 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 25</title>
      <link>https://dyeonee.tistory.com/82</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;959&quot; data-origin-height=&quot;401&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9WJ1N/btrEUOgn2gV/JNMiW1YKbxcquzp4ZaEDW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9WJ1N/btrEUOgn2gV/JNMiW1YKbxcquzp4ZaEDW0/img.png&quot; data-alt=&quot;[old 25 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9WJ1N/btrEUOgn2gV/JNMiW1YKbxcquzp4ZaEDW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9WJ1N%2FbtrEUOgn2gV%2FJNMiW1YKbxcquzp4ZaEDW0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;959&quot; height=&quot;401&quot; data-origin-width=&quot;959&quot; data-origin-height=&quot;401&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 25 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- ls 명령어가 출력된 것으로 보이는 화면이 출력되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- file 파라미터 값으로 hello 가 입력되어 있으며, textarea에 hello world가 출력되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- file 파라미터 값으로 ls 로 확인할 수 있는 파일명을 입력하면 파일 내용을 확인할 수 있는 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;LFI (Local File Inclusion) 취약점&lt;/b&gt;을 이용하여 풀이하는 문제인 것 같다 !!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 먼저 file 값으로 flag 를 입력해보도록 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;LFI 취약점에 관한 실습 내용은 아래 포스트를 참고하면 좋을 듯 하다 !&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1655381233614&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;[DVWA] File Inclusion (Low)&quot; data-og-description=&quot;File Inclusion Vulnerability 공격자가 악성 스크립트를 서버에 전달하여, 해당 페이지를 통해 전달한 악성 스크립트 또는 코드가 실행되도록 하는 취약점이다. 삽입 파일의 위치에 따라서 RFI(Remote File &quot; data-og-host=&quot;dyeonee.tistory.com&quot; data-og-source-url=&quot;https://dyeonee.tistory.com/19?category=1045737&quot; data-og-url=&quot;https://dyeonee.tistory.com/19&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dg9LEH/hyOMCo9xAt/tFYqIdu06yIKZGaQNLOzqk/img.png?width=600&amp;amp;height=370&amp;amp;face=0_0_600_370,https://scrap.kakaocdn.net/dn/qBUKK/hyOMML4DFa/F9a5L7ClbUekuWy6YGds3K/img.png?width=600&amp;amp;height=370&amp;amp;face=0_0_600_370,https://scrap.kakaocdn.net/dn/cim03F/hyONTW7F8m/clCbPD5k1qEYB6xRMmuZZ1/img.png?width=1588&amp;amp;height=764&amp;amp;face=0_0_1588_764&quot;&gt;&lt;a href=&quot;https://dyeonee.tistory.com/19?category=1045737&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dyeonee.tistory.com/19?category=1045737&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dg9LEH/hyOMCo9xAt/tFYqIdu06yIKZGaQNLOzqk/img.png?width=600&amp;amp;height=370&amp;amp;face=0_0_600_370,https://scrap.kakaocdn.net/dn/qBUKK/hyOMML4DFa/F9a5L7ClbUekuWy6YGds3K/img.png?width=600&amp;amp;height=370&amp;amp;face=0_0_600_370,https://scrap.kakaocdn.net/dn/cim03F/hyONTW7F8m/clCbPD5k1qEYB6xRMmuZZ1/img.png?width=1588&amp;amp;height=764&amp;amp;face=0_0_1588_764');&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;[DVWA] File Inclusion (Low)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;File Inclusion Vulnerability 공격자가 악성 스크립트를 서버에 전달하여, 해당 페이지를 통해 전달한 악성 스크립트 또는 코드가 실행되도록 하는 취약점이다. 삽입 파일의 위치에 따라서 RFI(Remote File&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dyeonee.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;file 값에 flag 입력&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;961&quot; data-origin-height=&quot;394&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3fzCi/btrEYIe31rx/KoyAuvcAQbvv0XiEyWK6t1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3fzCi/btrEYIe31rx/KoyAuvcAQbvv0XiEyWK6t1/img.png&quot; data-alt=&quot;[file 값에 flag 입력]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3fzCi/btrEYIe31rx/KoyAuvcAQbvv0XiEyWK6t1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3fzCi%2FbtrEYIe31rx%2FKoyAuvcAQbvv0XiEyWK6t1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;961&quot; height=&quot;394&quot; data-origin-width=&quot;961&quot; data-origin-height=&quot;394&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[file 값에 flag 입력]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- file 값에 flag를 입력하여 페이지 탐색 시 FLAG is in the code 라는 문자열이 출력된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- flag.php 코드 내에 FLAG 값이 존재하는 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 추가로 file 값에 index 를 넣어 index.php 의 결과도 확인해보았으나, 아무 것도 없었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- flag.php 의 코드 내용을 확인하기 위해서는 어떻게 해야 할까 ??&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;예전에 Dreamhack.io 의 웹 해킹 강의를 학습하면서 필기했던 내용인 PHP Wrapper가 떠올랐다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;PHP Wrapper 가 어떤 것이며, 어떻게 사용하는지 먼저 알아보자 !!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;출처 및 참고 : &lt;a href=&quot;http://dreamhack.io&quot;&gt;dreamhack.io&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1655381494118&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;해커들의 놀이터, Dreamhack&quot; data-og-description=&quot;해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향&quot; data-og-host=&quot;dreamhack.io&quot; data-og-source-url=&quot;http://dreamhack.io&quot; data-og-url=&quot;https://dreamhack.io&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bm5GN3/hyOMDawbFZ/tVTJeWi7gmDxVCKNLN4gVk/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/yZaZ3/hyONNo4dcZ/I3kUvOIg71ECWSYHgYlKkK/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/1JNnD/hyOMPaYqFr/WBXn2KJNnLmd77Zm560oO0/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400&quot;&gt;&lt;a href=&quot;http://dreamhack.io&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;http://dreamhack.io&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bm5GN3/hyOMDawbFZ/tVTJeWi7gmDxVCKNLN4gVk/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/yZaZ3/hyONNo4dcZ/I3kUvOIg71ECWSYHgYlKkK/img.png?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512,https://scrap.kakaocdn.net/dn/1JNnD/hyOMPaYqFr/WBXn2KJNnLmd77Zm560oO0/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;해커들의 놀이터, Dreamhack&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dreamhack.io&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;b&gt;PHP Wrapper&lt;/b&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;PHP는 파일 시스템 함수에서 URL style 프로토콜을 위한 wrapper들이 존재하는데, &lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;파일 시스템 관련 함수로 filename이 사용자의 입력이 될 경우 php wrapper를 &lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;사용해 개발자의 의도와 다른 행위를 발생시킬 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;php://filter : I/O 스트림에 특정 필터를 설정&lt;/span&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;read=&amp;lt;filter&amp;gt; : read 시 사용할 필터&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;write=&amp;lt;filter&amp;gt; : write 시 사용할 필터&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;resource=&amp;lt;stream name&amp;gt; : 필터링을 설정할 stream 정보&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;pre class=&quot;vim&quot;&gt;&lt;code&gt;# /etc/passwd 를 대문자로 read
php://filter/read=string.toupper/resource=/etc/passwd

# 데이터 출력 시 대문자로 처리
php://filter/write=string.toupper/resource=example.txt,&quot;Hello World&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;php에서 include시 php 태그가 존재하면 php가 실행되고 해당 코드는 출력되지 않는다. &lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;따라서, base64 등의&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;인코딩을 통해 php tag를 인코딩 시켜 코드가 실행되지 않고 출력되게 하여 소&lt;/span&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;스코드를 노출시키는 방법을 자주 사용한다.&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1655381714705&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;php://filter/read=convert.base64-encode/resource=filename.php&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;PHP Wrapper를 이용한 base64-encode 값 획득&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;965&quot; data-origin-height=&quot;397&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Pkey0/btrEXkGiQVc/9ybNLHF3zPMVacqVzEW8XK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Pkey0/btrEXkGiQVc/9ybNLHF3zPMVacqVzEW8XK/img.png&quot; data-alt=&quot;[PHP Wrapper를 이용한 base64-encode 값 획득]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Pkey0/btrEXkGiQVc/9ybNLHF3zPMVacqVzEW8XK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPkey0%2FbtrEXkGiQVc%2F9ybNLHF3zPMVacqVzEW8XK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;965&quot; height=&quot;397&quot; data-origin-width=&quot;965&quot; data-origin-height=&quot;397&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[PHP Wrapper를 이용한 base64-encode 값 획득]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;PHP Wrapper의 filter&lt;/b&gt; 기능을 이용하여 flag.php를 &lt;b&gt;base64-encode로 변환하여 read&lt;/b&gt; 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 위 예제에 사용한 구문은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;php://filter/read=convert.base64-encode/resource=flag&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- flag.php 의 내용이 base64 방식으로 encode 되어 textarea에 출력되었다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- base64 decode 사이트를 이용하여 해당 내용을 디코딩하여 확인해보도록 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;참고) base64 encode / decode 사이트&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1655381376631&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;Base64 Decode and Encode - Online&quot; data-og-description=&quot;Decode from Base64 format or encode into it with various advanced options. Our site has an easy to use online tool to convert your data.&quot; data-og-host=&quot;www.base64decode.org&quot; data-og-source-url=&quot;https://www.base64decode.org/&quot; data-og-url=&quot;https://www.base64decode.org/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/be5alh/hyOMLTYra6/ARKXQRfnuKKwQ9MQ46RCyk/img.png?width=600&amp;amp;height=315&amp;amp;face=228_192_257_224&quot;&gt;&lt;a href=&quot;https://www.base64decode.org/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.base64decode.org/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/be5alh/hyOMLTYra6/ARKXQRfnuKKwQ9MQ46RCyk/img.png?width=600&amp;amp;height=315&amp;amp;face=228_192_257_224');&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;Base64 Decode and Encode - Online&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Decode from Base64 format or encode into it with various advanced options. Our site has an easy to use online tool to convert your data.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.base64decode.org&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;FLAG 값 획득&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1110&quot; data-origin-height=&quot;679&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FCtuL/btrEX9w3W0n/9aNsOT7LsYclyTNkH1oZg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FCtuL/btrEX9w3W0n/9aNsOT7LsYclyTNkH1oZg1/img.png&quot; data-alt=&quot;[FLAG 값 획득]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FCtuL/btrEX9w3W0n/9aNsOT7LsYclyTNkH1oZg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFCtuL%2FbtrEX9w3W0n%2F9aNsOT7LsYclyTNkH1oZg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1110&quot; height=&quot;679&quot; data-origin-width=&quot;1110&quot; data-origin-height=&quot;679&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[FLAG 값 획득]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 앞서 획득한 base64로 인코딩된 값을 사이트에 붙여넣기 후 decode 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- flag.php 의 소스코드를 확인할 수 있으며 $flag 변수 값으로 FLAG 값이 작성되어 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- FLAG 값을 복사하여 webhacking.kr 메인 화면의 좌측 Auth 탭으로 이동하여&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- FLAG 입력란에 해당 FLAG 값을 붙여넣기 후 auth 해주면 문제가 solve 된다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/82</guid>
      <comments>https://dyeonee.tistory.com/82#entry82comment</comments>
      <pubDate>Thu, 16 Jun 2022 21:17:14 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 24</title>
      <link>https://dyeonee.tistory.com/81</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1193&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bo7dJc/btrEXjUKVse/0KfDFB36tYcaEwuToZOCD1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bo7dJc/btrEXjUKVse/0KfDFB36tYcaEwuToZOCD1/img.png&quot; data-alt=&quot;[old 24 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bo7dJc/btrEXjUKVse/0KfDFB36tYcaEwuToZOCD1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbo7dJc%2FbtrEXjUKVse%2F0KfDFB36tYcaEwuToZOCD1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1193&quot; height=&quot;211&quot; data-origin-width=&quot;1193&quot; data-origin-height=&quot;211&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 24 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- client ip와 user-agent 를 나태는 듯한 agent 정보를 출력하고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- Wrong IP ! 를 출력하며 IP 가 잘못됐다고 알려주고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 해당 화면만 보아서는 어떤 문제인지 잘 알기 힘드므로 바로 소스코드를 확인해보자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;소스코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;415&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lsyZI/btrEUQeaYyW/IzaOTMKkajGnbkknUHKTkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lsyZI/btrEUQeaYyW/IzaOTMKkajGnbkknUHKTkk/img.png&quot; data-alt=&quot;[old 24 - 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lsyZI/btrEUQeaYyW/IzaOTMKkajGnbkknUHKTkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlsyZI%2FbtrEUQeaYyW%2FIzaOTMKkajGnbkknUHKTkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;973&quot; height=&quot;415&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;415&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 24 - 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- view-source 를 클릭하여 해당 문제 페이지의 소스코드를 확인한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;extract 함수를 사용하여 $_SERVER와 $_COOKIE 를 변수화&lt;/b&gt; 하고 있으며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;$ip는 $REMOTE_ADDR&lt;/b&gt;로, &lt;b&gt;$agent는 $HTTP_USER_AGENT&lt;/b&gt; 로 정의되고 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 또한 $REMOTE_ADDR 즉 &lt;b&gt;$ip 값에 대해 htmlspecialchars 함수가 적용&lt;/b&gt;되어 있으며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;str_replace 함수를 통해&lt;/b&gt; 설정한 문자들에 대해 두 번째 인자값으로 &lt;b&gt;치환&lt;/b&gt;을 진행한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- str_replcae 함수를 거치고 나서 치환된 값이 127.0.0.1 과 일치하면,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 해당 문제가 solve 되는 구조인 듯 하다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 결론적으로 문제를 풀기 위해 건드려야되는 부분은 $ip 이므로, $agent는 신경쓰지 않는다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 먼저, extract 함수와 htmlspecialchars 함수에 대해 알아보자&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt; PHP - extract 함수&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;: 배열 속의 키 값들을 변수화하는 함수&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1655376292604&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# extract_ex.php

&amp;lt;?php
$a[x] = 1;
$a[y] = 2;
extract($a);

echo &quot;x = $x&quot;;
echo &quot;y = $y&quot;;
?&amp;gt;

# result extract_ex.php

x = 1
x = 2&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- $_GET 이나 $_POST 함수를 extract 함수를 이용해 변수화하여 사용할 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 미리 선언된 변수 값에 대해 $_GET, $_POST 로 받아오는 값으로 덮어쓰기 될 수 있음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;htmlspecialchars 함수&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp;: HTML 태그에 사용되는 특수문자가 포함된 문장을 입력하고 화면으로 출력 시, 해당 문장에 포함된&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;nbsp; &amp;nbsp;특수문자가 HTML 태그가 아닌, 문자열에 존재하는 특수문자로 출력되도록 하는 함수&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;amp; &amp;rarr; &amp;amp;amp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;ldquo;&amp;rdquo; &amp;rarr; &amp;amp;quot;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;lsquo;&amp;rsquo; &amp;rarr; &amp;amp;#039;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;lt; &amp;rarr; &amp;amp;lt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&amp;gt; &amp;rarr; &amp;gt; &amp;amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;소스코드 분석&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;415&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jz5Ng/btrEXjULdeU/z5kXktgZoUE6KHFK6kJijK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jz5Ng/btrEXjULdeU/z5kXktgZoUE6KHFK6kJijK/img.png&quot; data-alt=&quot;[old 24 - 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jz5Ng/btrEXjULdeU/z5kXktgZoUE6KHFK6kJijK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJz5Ng%2FbtrEXjULdeU%2Fz5kXktgZoUE6KHFK6kJijK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;973&quot; height=&quot;415&quot; data-origin-width=&quot;973&quot; data-origin-height=&quot;415&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 24 - 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 앞에 작성한 내용들을 생략하고, 코드에 대한 내용들을 살펴보면 ..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- $ip 변수는 $REMOTE_ADDR이며, 이는 또한 &lt;b&gt;extract($_COOKIE)를 통해서 쿠키값으로 덮어쓰기가 가능&lt;/b&gt;하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 즉 REMOTE_ADDR이라는 쿠키를 생성하여 str_replace 함수를 거치고 나서의 쿠키값이&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 127.0.0.1이 되도록 쿠키값을 수정해주면 되는 문제이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- str_replace 함수에 대한 우회 방법은 dvwa 실습 및 웹 워게임 포스팅에서 작성한 바가 있으므로, 참고하면 좋을 듯 하다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 새로 REMOTE_ADDR 쿠키를 생성하여 값을 넣어주도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;REMOTE_ADDR 쿠키 생성&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;82&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/daYvj3/btrEX168JPr/m8vRuFwBi6fKx6v6tf2QY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/daYvj3/btrEX168JPr/m8vRuFwBi6fKx6v6tf2QY0/img.png&quot; data-alt=&quot;[REMOTE_ADDR 쿠키 생성]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/daYvj3/btrEX168JPr/m8vRuFwBi6fKx6v6tf2QY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaYvj3%2FbtrEX168JPr%2Fm8vRuFwBi6fKx6v6tf2QY0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;843&quot; height=&quot;82&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;82&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[REMOTE_ADDR 쿠키 생성]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- str_replace 함수의 치환을 거쳐 127.0.0.1 이 되게하는 쿠키값은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;112277&amp;hellip;.00&amp;hellip;.00&amp;hellip;.1&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 쿠키를 다음 예제와 같이 생성 후 old 24 문제 페이지로 이동 시 성공적으로 문제가 solve 된다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/81</guid>
      <comments>https://dyeonee.tistory.com/81#entry81comment</comments>
      <pubDate>Thu, 16 Jun 2022 19:50:09 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 23</title>
      <link>https://dyeonee.tistory.com/80</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bG6b0t/btrEXFpxaIH/nvdVOFJUaSMxgAnIka3uv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bG6b0t/btrEXFpxaIH/nvdVOFJUaSMxgAnIka3uv1/img.png&quot; data-alt=&quot;[old 23 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bG6b0t/btrEXFpxaIH/nvdVOFJUaSMxgAnIka3uv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbG6b0t%2FbtrEXFpxaIH%2FnvdVOFJUaSMxgAnIka3uv1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;427&quot; height=&quot;162&quot; data-origin-width=&quot;427&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 23 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 우리의 미션은 &amp;lt;script&amp;gt; 태그를 이용해 alert(1) 을 띄우는 것이라고 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- XSS (Cross Site Scripting) 문제인듯 하다 ??&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 먼저 아래 알려준 바와 같이 &amp;lt;script&amp;gt;alert(1);&amp;lt;/script&amp;gt;를 입력하여 제출해보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- no hack 문자열을 출력하며, XSS가 먹히지 않는 모습을 볼 수 있다. (캡쳐 생략)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 소스코드를 확인해봐야할 듯 하다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;소스코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZwTMe/btrEZDKNrRo/n5q8isR5aleY1NKRgkERA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZwTMe/btrEZDKNrRo/n5q8isR5aleY1NKRgkERA0/img.png&quot; data-alt=&quot;[old 23 - 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZwTMe/btrEZDKNrRo/n5q8isR5aleY1NKRgkERA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZwTMe%2FbtrEZDKNrRo%2Fn5q8isR5aleY1NKRgkERA0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;728&quot; height=&quot;346&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 23 - 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;- 소스코드를 확인해보았으나, 뭐 딱히 얻을 수 있는 힌트가 없었다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;- 일단 값들을 대입해보면서 어떤 경우에 no hack이 뜨는지 확인해봐야할 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;입력폼이 아닌 URL에 값 대입&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnK41y/btrEUPMV5Nr/YLZ42WN2KtAaaw7Vls2pyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnK41y/btrEUPMV5Nr/YLZ42WN2KtAaaw7Vls2pyk/img.png&quot; data-alt=&quot;[URL 주소창 상에서의 값 대입]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnK41y/btrEUPMV5Nr/YLZ42WN2KtAaaw7Vls2pyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnK41y%2FbtrEUPMV5Nr%2FYLZ42WN2KtAaaw7Vls2pyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;823&quot; height=&quot;248&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;248&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[URL 주소창 상에서의 값 대입]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 먼저 태그 부호에 대해 값을 삽입해보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- no hack 출력 없이 정상적으로 각 부호들이 출력되며, &lt;b&gt;/ (슬래시) 부호도 잘 출력&lt;/b&gt;된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 또한 &lt;b&gt;; (세미콜론) 도 필터링 없이 성공적으로 출력&lt;/b&gt;된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- script, alert 문자열에 관한 필터링이 존재할 수도 있으므로 시도해보자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;script, alert 문자열 필터링 여부 테스트&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGaA76/btrEXPTjvZk/qFaVoYV6kkDgHlkBiCOwT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGaA76/btrEXPTjvZk/qFaVoYV6kkDgHlkBiCOwT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGaA76/btrEXPTjvZk/qFaVoYV6kkDgHlkBiCOwT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGaA76%2FbtrEXPTjvZk%2FqFaVoYV6kkDgHlkBiCOwT0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;723&quot; height=&quot;242&quot; data-origin-width=&quot;723&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BAEAV/btrEVZ3oMiO/G2MBMccmpzu1pqM5Rb9070/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BAEAV/btrEVZ3oMiO/G2MBMccmpzu1pqM5Rb9070/img.png&quot; data-alt=&quot;[script, alert 문자열 필터링 여부 테스트]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BAEAV/btrEVZ3oMiO/G2MBMccmpzu1pqM5Rb9070/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBAEAV%2FbtrEVZ3oMiO%2FG2MBMccmpzu1pqM5Rb9070%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;698&quot; height=&quot;237&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[script, alert 문자열 필터링 여부 테스트]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- script 또는 alert 을 삽입하였을 경우 no hack을 출력하며 필터링된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 해당 문자열에 대한 필터링이 존재하는듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 문자열 전체에 대한 필터링인지 또는 특정 부분까지만의 필터링인지 확인해보기 위해서,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- script, alert 단어에서 한 글자씩 줄여가며 값을 대입해보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;자릿 수 감소 영문 문자열 대입을 통한 필터링 조건 확인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciIilZ/btrEZFokpHj/ZHrMkz50l2N6m5x1kYEk1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciIilZ/btrEZFokpHj/ZHrMkz50l2N6m5x1kYEk1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciIilZ/btrEZFokpHj/ZHrMkz50l2N6m5x1kYEk1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciIilZ%2FbtrEZFokpHj%2FZHrMkz50l2N6m5x1kYEk1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;237&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;240&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgnMgn/btrEXFpxLzG/b7PXXQZsctiZ9hkjJF8aFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgnMgn/btrEXFpxLzG/b7PXXQZsctiZ9hkjJF8aFK/img.png&quot; data-alt=&quot;[자릿 수 감소 영문 문자열 대입을 통한 필터링 조건 확인]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgnMgn/btrEXFpxLzG/b7PXXQZsctiZ9hkjJF8aFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgnMgn%2FbtrEXFpxLzG%2Fb7PXXQZsctiZ9hkjJF8aFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;649&quot; height=&quot;240&quot; data-origin-width=&quot;649&quot; data-origin-height=&quot;240&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[자릿 수 감소 영문 문자열 대입을 통한 필터링 조건 확인]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- script 에서 맨 끝 자리 문자부터 한 글자씩 삭제하며 값을 대입해보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 최종적으로 &lt;b&gt;s 한 글자를 대입했을 경우에 필터링이 되지 않는다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- alert 도 동일하게 al 까지는 필터링이 동작하며, &lt;b&gt;a 한 글자만 대입하였을 경우는 필터링이 동작하지 않는다.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이후 추가적으로 다른 알파벳과 특수문자, 숫자들을 이용하여 테스트 해보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;특수문자, 숫자 대입을 통한 필터링 조건 확인&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;237&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mfJ9m/btrEYgQnrjC/VGY9velXcwUwUUVAuhxPz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mfJ9m/btrEYgQnrjC/VGY9velXcwUwUUVAuhxPz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mfJ9m/btrEYgQnrjC/VGY9velXcwUwUUVAuhxPz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmfJ9m%2FbtrEYgQnrjC%2FVGY9velXcwUwUUVAuhxPz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;804&quot; height=&quot;251&quot; data-origin-width=&quot;759&quot; data-origin-height=&quot;237&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;228&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxwot1/btrEXPTjHOK/VXd5BQhBR9oBvApv1NgBFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxwot1/btrEXPTjHOK/VXd5BQhBR9oBvApv1NgBFk/img.png&quot; data-alt=&quot;[특수문자, 숫자 대입을 통한 필터링 조건 확인]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxwot1/btrEXPTjHOK/VXd5BQhBR9oBvApv1NgBFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcxwot1%2FbtrEXPTjHOK%2FVXd5BQhBR9oBvApv1NgBFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;801&quot; height=&quot;178&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;228&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[특수문자, 숫자 대입을 통한 필터링 조건 확인]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 특수문자와 숫자들은 문자열 길이에 대한 필터링이 존재하지 않으며, 알파벳에 대해서만 존재하는 점을 알 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 즉 해당 문제를 풀기 위해서는 &lt;b&gt;영문 문자열에 대한 문자열 길이 필터링을 우회&lt;/b&gt;하여 mission을 성공시켜야한다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;%00 (NULL) 삽입을 통한 XSS&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1585&quot; data-origin-height=&quot;231&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bc6tGe/btrEXVTbu6n/quukUE7JchZqrGI7VsuLL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bc6tGe/btrEXVTbu6n/quukUE7JchZqrGI7VsuLL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bc6tGe/btrEXVTbu6n/quukUE7JchZqrGI7VsuLL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbc6tGe%2FbtrEXVTbu6n%2FquukUE7JchZqrGI7VsuLL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1585&quot; height=&quot;231&quot; data-origin-width=&quot;1585&quot; data-origin-height=&quot;231&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 문자열 길이 필터링에 대한 우회, 특정 문자열에 대한 필터링 우회 방법으로 &lt;b&gt;%00 (NULL) 삽입&lt;/b&gt;이 떠올랐다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 종종 웹 관련 워게임 문제들에서 NULL 을 삽입하여 해결하는 문제들이 있으므로 미리 알고 가면 좋을 듯 하다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 위 예제에서 작성하여 대입한 구문은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;&amp;lt;%00s%00c%00r%00i%00p%00t&amp;gt;a%00l%00e%00r%00t(1);&amp;lt;/%00s%00c%00r%00i%00p%00t&amp;gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 영문 문자열 길이 필터링을 우회하여 alert 함수를 실행할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- alert이 출력되고 확인 버튼을 누르면, 성공적으로 문제가 solve 된다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/80</guid>
      <comments>https://dyeonee.tistory.com/80#entry80comment</comments>
      <pubDate>Thu, 16 Jun 2022 18:43:29 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 20</title>
      <link>https://dyeonee.tistory.com/79</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1078&quot; data-origin-height=&quot;171&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dlZuBX/btrESlLRWyi/pwMoGVRwLbwDpDXKFhNgK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dlZuBX/btrESlLRWyi/pwMoGVRwLbwDpDXKFhNgK1/img.png&quot; data-alt=&quot;[old 20 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dlZuBX/btrESlLRWyi/pwMoGVRwLbwDpDXKFhNgK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdlZuBX%2FbtrESlLRWyi%2FpwMoGVRwLbwDpDXKFhNgK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1078&quot; height=&quot;171&quot; data-origin-width=&quot;1078&quot; data-origin-height=&quot;171&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 20 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- nickname과 comment, captcha를 입력할 수 있는 입력폼들이 보인다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 상단에 time limit : 2 second 를 보아, &lt;b&gt;모든 내용들을 2초 안에 submit&lt;/b&gt; 해야하는듯 하다..&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 폼에 대한 값들이 submit 되는 로직을 소스코드를 보며 살펴보도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;소스코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;423&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ppuLD/btrESmcVIpD/M6AuY6FHg3cja5MIOMdsBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ppuLD/btrESmcVIpD/M6AuY6FHg3cja5MIOMdsBK/img.png&quot; data-alt=&quot;[old 20 - 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ppuLD/btrESmcVIpD/M6AuY6FHg3cja5MIOMdsBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FppuLD%2FbtrESmcVIpD%2FM6AuY6FHg3cja5MIOMdsBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1364&quot; height=&quot;423&quot; data-origin-width=&quot;1364&quot; data-origin-height=&quot;423&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 20 - 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- ck 함수 부분에서 입력값들에 대한 검증이 이루어지는 것을 확인할 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 각 항목에 대하여 &lt;b&gt;값이 공백&lt;/b&gt;일 경우, &lt;b&gt;커서를 해당 항목을 입력하는 폼에 focus&lt;/b&gt; 시키며&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- captcha 항목의 경우는 &lt;b&gt;captcha_.value와 일치하지 않을 경우&lt;/b&gt;에도 입력폼에 커서를 focus 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 해당 코드들을 조금만 수정하면 역으로 값을 대입하는 용도로 사용할 수 있다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;ck 함수 내 코드 Customizing&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;725&quot; data-origin-height=&quot;182&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZDrFs/btrESDyGYJC/xabrYjQVRGAhjj3DuUjGSK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZDrFs/btrESDyGYJC/xabrYjQVRGAhjj3DuUjGSK/img.png&quot; data-alt=&quot;[ck 함수 내 코드 Customizing]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZDrFs/btrESDyGYJC/xabrYjQVRGAhjj3DuUjGSK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZDrFs%2FbtrESDyGYJC%2FxabrYjQVRGAhjj3DuUjGSK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;725&quot; height=&quot;182&quot; data-origin-width=&quot;725&quot; data-origin-height=&quot;182&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[ck 함수 내 코드 Customizing]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- ck 함수 내 코드들에 대해 &lt;b&gt;if문을 제거하고 비교 연산자를 등호로 수정&lt;/b&gt;하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id와 cmt 값에 대하여 원하는 입력값을 대입하도록 작성하였으며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- captcha의 경우 &lt;b&gt;captcha.value 값에 captcha_.value 값을 대입&lt;/b&gt;하도록 작성하였다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 그리고 submit 하여 바로 해당 입력값들을 전송한다 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 2초 안에 submit을 완료해야하므로, Console 탭에 미리 해당 코드들을 작성해준 뒤&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 빠르게 새로고침하여 코드를 실행하면 문제를 solve 할 수 있다 !&lt;/span&gt;&lt;/p&gt;</description>
      <category>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/79</guid>
      <comments>https://dyeonee.tistory.com/79#entry79comment</comments>
      <pubDate>Thu, 16 Jun 2022 01:56:13 +0900</pubDate>
    </item>
    <item>
      <title>[Wargame] Webhacking.kr - old 19</title>
      <link>https://dyeonee.tistory.com/78</link>
      <description>&lt;h4 style=&quot;text-align: center;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;문제 화면&lt;/span&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;111&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bh0jxA/btrER2eHRq5/BZXzjVUU8YBcZ1ZwV85jk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bh0jxA/btrER2eHRq5/BZXzjVUU8YBcZ1ZwV85jk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bh0jxA/btrER2eHRq5/BZXzjVUU8YBcZ1ZwV85jk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbh0jxA%2FbtrER2eHRq5%2FBZXzjVUU8YBcZ1ZwV85jk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;832&quot; height=&quot;111&quot; data-origin-width=&quot;832&quot; data-origin-height=&quot;111&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;97&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMNHxo/btrETRJIeX0/qh3zvzsv6ZCi1k1WE2bXoK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMNHxo/btrETRJIeX0/qh3zvzsv6ZCi1k1WE2bXoK/img.png&quot; data-alt=&quot;[old 19 - 문제 화면]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMNHxo/btrETRJIeX0/qh3zvzsv6ZCi1k1WE2bXoK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMNHxo%2FbtrETRJIeX0%2Fqh3zvzsv6ZCi1k1WE2bXoK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;634&quot; height=&quot;97&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;97&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 19 - 문제 화면]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id 입력폼의 value 값으로 admin이 작성되어 있으며, 수정할 수 없다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 제출 버튼을 눌러 submit 할 경우 you are not admin 문자열을 출력한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- submit 시 URL에 id 값이 보이는 것을 보아, GET 방식으로 form 데이터가 전송되는 것을 알 수 있다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 소스코드도 확인해도록 하자 !&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;소스코드&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;354&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EfXBr/btrESDk9fgZ/GtK3pI4Llyrdk83XczHDk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EfXBr/btrESDk9fgZ/GtK3pI4Llyrdk83XczHDk1/img.png&quot; data-alt=&quot;[old 19 - 소스코드]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EfXBr/btrESDk9fgZ/GtK3pI4Llyrdk83XczHDk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEfXBr%2FbtrESDk9fgZ%2FGtK3pI4Llyrdk83XczHDk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;816&quot; height=&quot;354&quot; data-origin-width=&quot;816&quot; data-origin-height=&quot;354&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[old 19 - 소스코드]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 코드들이 짧고 간결한게 아주 아주 좋다..!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 사실 볼만한 부분이 &amp;lt;form&amp;gt; 태그 부분 뿐이므로, 4줄에 대해서만 확인하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- id 값은 value로 admin을 가지고 있으며, 최대 길이는 5, 사이즈는 5이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 얼추 어떤 내용인지 확인했으므로, URL 상에서 id 값을 수정하여 admin으로 로그인을 시도해보자!&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot; data-token-index=&quot;0&quot; data-reactroot=&quot;&quot;&gt;id 파라미터 값 수정&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1578&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NpCm6/btrETouiIE6/QAkXvcmVlyIKE36GKd9k0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NpCm6/btrETouiIE6/QAkXvcmVlyIKE36GKd9k0K/img.png&quot; data-alt=&quot;[id 파라미터 값 수정]&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NpCm6/btrETouiIE6/QAkXvcmVlyIKE36GKd9k0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNpCm6%2FbtrETouiIE6%2FQAkXvcmVlyIKE36GKd9k0K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1578&quot; height=&quot;333&quot; data-origin-width=&quot;1578&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;[id 파라미터 값 수정]&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- admin으로 로그인하기 위해 시도할 수 있는 방법들을 전부 시도해보았다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 가장 먼저는 admin 뒤에 %00 (NULL) 을 추가해 &lt;b&gt;admin%00&lt;/b&gt;로 시도해보았으나, &lt;b&gt;실패&lt;/b&gt;했다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이후 &lt;b&gt;SQL Injection&lt;/b&gt; 시 사용되는 &lt;b&gt;싱글 쿼터(&amp;rsquo;)&lt;/b&gt;를 admin 뒤에 삽입했더니 문제가 solve 되었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 위 예제에서 사용한 구문은 다음과 같다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- &lt;b&gt;id=admin&amp;rsquo;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이외에도 &lt;b&gt;admin&amp;rdquo;&lt;/b&gt;, &lt;b&gt;admin--&lt;/b&gt;, &lt;b&gt;admin%23&lt;/b&gt;, &lt;b&gt;admin&amp;rsquo;--&lt;/b&gt; 등 다양한 구문들이 공격에 성공하였으며,&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;- 이 점들을 미루어 보았을 때 SQL Injection 공격에 대한 대응이 이루어지지 않는 듯 하다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;SQL Injection에 대한 여러 가지 내용들은 Lord of SQL Injection 포스팅에서 많이 다루었다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;SQL Injection에 대해 더 알고 싶거나, 자세한 내용들이 궁금하다면 LoS 카테고리&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic';&quot;&gt;&lt;a href=&quot;https://dyeonee.tistory.com/category/Wargame/Lord%20of%20SQL%20Injection&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://dyeonee.tistory.com/category/Wargame/Lord of SQL Injection&lt;/a&gt;&lt;/span&gt;를 참고하면 좋을듯 하다 !!&lt;/p&gt;
&lt;figure id=&quot;og_1655309421169&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;'Wargame/Lord of SQL Injection' 카테고리의 글 목록&quot; data-og-description=&quot;차세대 보안 리더 양성 프로그램 Best of The Best 10기 보안 컨설팅 트랙&quot; data-og-host=&quot;dyeonee.tistory.com&quot; data-og-source-url=&quot;https://dyeonee.tistory.com/category/Wargame/Lord%20of%20SQL%20Injection&quot; data-og-url=&quot;https://dyeonee.tistory.com/category/Wargame/Lord%20of%20SQL%20Injection&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/j9LjB/hyOLeoVipJ/61qAK1WAnQhh0otUHeArHK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/rq9DZ/hyOK7XDnBR/6J20IirDC27K6adzC0gJLk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bBWp5Q/hyOLbZ2jwo/eYgJzgeGkOgHHXmMb2ust0/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400&quot;&gt;&lt;a href=&quot;https://dyeonee.tistory.com/category/Wargame/Lord%20of%20SQL%20Injection&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dyeonee.tistory.com/category/Wargame/Lord%20of%20SQL%20Injection&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/j9LjB/hyOLeoVipJ/61qAK1WAnQhh0otUHeArHK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/rq9DZ/hyOK7XDnBR/6J20IirDC27K6adzC0gJLk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bBWp5Q/hyOLbZ2jwo/eYgJzgeGkOgHHXmMb2ust0/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400');&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;'Wargame/Lord of SQL Injection' 카테고리의 글 목록&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;차세대 보안 리더 양성 프로그램 Best of The Best 10기 보안 컨설팅 트랙&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dyeonee.tistory.com&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>Wargame/Webhacking.kr</category>
      <category>TeamH4C</category>
      <category>wargame</category>
      <category>Web Hacking</category>
      <category>webhacking.kr</category>
      <category>빡공팟 4기</category>
      <category>워게임</category>
      <category>웹 해킹</category>
      <category>정보보안</category>
      <category>정보보호</category>
      <author>dodoh4t</author>
      <guid isPermaLink="true">https://dyeonee.tistory.com/78</guid>
      <comments>https://dyeonee.tistory.com/78#entry78comment</comments>
      <pubDate>Thu, 16 Jun 2022 01:12:42 +0900</pubDate>
    </item>
  </channel>
</rss>