web security academy 21

2026. 3. 17. 15:46ㆍ보안/Web security Academy

Lab: Reflected XSS into attribute with angle brackets HTML-encoded

This lab contains a reflected cross-site scripting vulnerability in the search blog functionality where angle brackets are HTML-encoded. To solve this lab, perform a cross-site scripting attack that injects an attribute and calls the alert function.

(이 랩에는 각도 괄호가 HTML로 인코딩된 검색 블로그 기능에 반영된 사이트 간 스크립팅 취약점이 포함되어 있습니다. 이 랩을 해결하려면 속성을 삽입하고 경고 함수를 호출하는 사이트 간 스크립팅 공격을 수행합니다.)

 

1. 웹페이지에서 입력할수 있는 칸이 URL 및 블로그 검색 창 이렇게 두가지가 있습니다 일단 웹페이지 코드에서 어떻게 집어넣어야 하는지 코드를 확인해봅시다

 

 <section class=search>
                        <form action=/ method=GET>
                            <input type=text placeholder='Search the blog...' name=search value="123">
                            <button type=submit class=button>Search</button>
                        </form>
</section>

 

해당 코드를 확인을 해보닌 검색창에 입력한 값을 value에서 집어 넣어줍니다 그러면 저희가 해볼만한것은 value값을 막고 alert를 실행 시키는 것입니다 이때 실험을 해본 결과 "<script>alert(1)</script>를 해본 결과 

 

           <section class=search>
               <form action=/ method=GET>
                  <input type=text placeholder='Search the blog...' name=search value=""&lt;script&gt;alert(1)&lt;/script&gt;">
                      <button type=submit class=button>Search</button>
             </form>

>괄호같은부분이 인코딩 되어서 input 밖으로 나오지 못하는 상황이 발생합니다 그러면 이부분은 아니기 때문에 다른 방법을 고민해봐야합니다

그러면 input에 있는 값들을 추가해주면 될것같다는 생각에 onerror를 생각을 했는데 >괄호가 먹히지 않기 때문에 다른 방법을 찾아보니 mouseover라는 속성이 있다는 것을 확인하고 

                    <section class=search>
                        <form action=/ method=GET>
                            <input type=text placeholder='Search the blog...' name=search value="" onmouseover="alert(1)">
                            <button type=submit class=button>Search</button>
                        </form>
                    </section>

값을 추가해주었습니다 

 

이제 검색창에 마우스를 올릴때마다 alert가 실행이 되는것을 확인했습니다

 

ps. mouserover와 비슷한 속성들을 찾아보니

1. 마우스 관련 이벤트 (Mouse Events)

사용자가 마우스를 움직이거나 클릭할 때 트리거됩니다.

속성(Attribute) 실행 타이밍 특징 및 활용 팁
onmouseover 요소 위에 마우스를 올렸을 때 가장 대중적인 페이로드.
onmouseenter 마우스가 요소 경계 안으로 들어올 때 onmouseover와 유사함.
onmousemove 요소 위에서 마우스를 움직일 때 추천. 마우스를 1px만 움직여도 즉시 실행되어 성공률이 높음.
onmousedown 마우스 버튼을 누르는 순간 클릭의 첫 단계에서 실행됨.
onmouseup 누른 마우스 버튼을 뗄 때 클릭을 마치는 순간 실행됨.
onclick 요소를 완전히 클릭했을 때 사용자의 직접적인 클릭 유도가 필요함.
onauxclick 휠 클릭이나 우클릭 시 일반 클릭 방어를 우회할 때 간혹 사용됨.

2. 키보드 관련 이벤트 (Keyboard Events)

입력창(input, textarea)에서 키 입력을 할 때 트리거됩니다.

속성(Attribute) 실행 타이밍 특징 및 활용 팁
onkeydown 키보드 키를 누르는 순간 어떤 키든 누르기만 하면 즉시 실행.
onkeyup 눌렀던 키를 뗄 때 입력이 완료되는 시점에 실행.
oninput 값이 변경될 때마다 텍스트를 입력하거나 삭제할 때 즉시 반응.

 

3. 포커스 및 상태 관련 이벤트 (Focus & Interaction)

상호작용의 '상태'가 변할 때 트리거됩니다.

속성(Attribute) 실행 타이밍 특징 및 활용 팁
onfocus 요소에 포커스가 잡힐 때 꿀조합: autofocus 속성과 함께 쓰면 자동 실행됨.
onblur 포커스를 잃고 나갈 때 다른 곳을 클릭하는 순간 실행.
onchange 내용이 바뀌고 포커스를 잃을 때 input의 경우 값이 변해야만 실행됨.

 

 

이상입니다

 

 

 

'보안 > Web security Academy' 카테고리의 다른 글

web security academy 23  (0) 2026.03.20
web security academy 22  (0) 2026.03.18
web security academy 20  (0) 2026.03.16
web security academy 19  (0) 2026.03.14
web security academy 18  (0) 2026.03.13