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=""<script>alert(1)</script>">
<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 |